출처 : http://bikblog.egloos.com/3505548


문명 5같은 노트북?

많은 사람들이 기다렸던 새로운 맥북에어의 출시. 드디어 우리에게 도착했다. 이미 국외의 다양한 사람들이 작동 동영상과 리뷰를 올렸지만, 한국적 현실에서의 리뷰가 필요하고, 바로 그것이 이 포스팅의 작성 이유 중 첫번째, 맥북에어의 판매량에 비해 리뷰가 많지 않다는 것이 두번째 이유다. 아마도 시드마이어의 게임 ‘문명5’처럼, 가지고 노는 것이 너무 재미있어 한 번 빠지면 헤어나오지 못하는 것 아닐까?
모두의 워너비 제품
사실 맥북에어는 누구나 가지고 싶어하는 노트북이다. 노트북 좀 안다는 사람은 정말 괜찮은 성능과 그동안 많은 제조사가 하지 못했던, 이보다 더 잘할 수는 없을 것 같은 ‘끝장의 마감 퀄리티’에 감동한다. 반면 노트북을 잘 모르는 사람들이라면, 얇기와 두께 등 조금 더 일반적인 요소들과 함께 애플의 맥북 - 흔히 비싸다고 생각하는 - 이지만 여타 맥북에 비해 조금만 무리하면(?) 얻을 수 있는 상대적으로 저렴한 가격에 관심을 가질 것이다. 그동안 성능과 마감, 얇기와 두께 그리고 가격까지, 절대 화해 혹은 화합할 수 없는 이 세가지 조건들 모두를 기분좋게 만족시킨 제품은 얼마나 될까? 이 조건들의 교집합 안에 맥북에어가 들어 있다는 것. 지금까지 어느 제조사도 하지 못했던 것을 애플은 해냈다.
남녀 관계에서 - 대부분 아니라고 하지만 솔직히는 - 첫인상이 미치는 영향은 얼마나큰가. 그래서 첫인상이 좋다는 것은, 첫만남이나 대시(?)를 성공시킬 확률을 높이지만, 그만큼 불리한 점도 있다. 너무 좋은 첫인상은 상대방에게 그만큼 큰 기대를 쌓게 만드니까. 제품도 비슷하다. 정말 좋은 디자인은 첫 눈에 반하게 만들지만, 기능과 성능이 뒷받침되지 못한다면 소비자는 ‘그럼 그렇지’란 냉랭한 한 마디와 함께 다른 제품에 사랑을 주러 떠난다. 인간관계와 많이 닮은 제품과 인간과의 관계다. 맥북에어는 눈에 딱 들어오는 디자인에서 기대감을 가지게 하고, 성능에서 기대감을 증폭시키고, 배려와 편의성에서 기대감을 폭발시킨다. 사람들의 마음을 사로잡는 제품이라면 이래야 한다.
자. 이제 다른 님들...
뛰어난 휴대성 및 울트라씬 드립은 그만~

맥북에어의 가장 얇은 곳 0.3cm, 가장 두꺼운 곳은 1.7cm, 무게는 1.06kg이다. 솔까말 2kg 언저리 무게를 가진 노트북들의 홍보문구는 죄다 “뛰어난 휴대성” 드립이다. 개인적으로 이런 보도자료를 볼때 마다 홍보대행사가 이런 말도 안되는 문구를 작성하게 만든 수입사나 제조사의 담당자(솔직히 홍보대행사는 잘못 없다. 있다면 직원들 월급을 주기 위해 시키는 일을 했다는 것)에게 그 노트북 들고 하루종일 다녀보라 하고 싶다. 이짓 5일만 하면, 체력 좀 약한 분들은 주말 내내 몸살로 못 일어날거다. 2kg 언저리 무게의 노트북이 휴대성을 가지게 되는 것은 힘좋고 덩치큰 서양인들 이야기다.
맘에 안드는 거 하나더. 그놈의 울트라-씬 프로세서 탑재로 얇다는 드립. 프로세서만 울트라-씬이면 뭐하나. 폼팩터(내부구조와 설계)가 그대로면, 두께와 무게를 획기적으로 줄이는 것은 불가능하다. 맨날 입으로만 “혁신적인, 트렌드 어쩌고, 럭셔리, 고급스러움” 이란 단어를 달고 살고, 그런 꿈을 꾸는 것만으로는 멋진 제품을 만들 수 없다. 말로는 하버드가 아니라 안드로메다 초초일류대를 못가겠나. 처음 위 이미지를 보고 놀랐다. 저 정도의 설계를 했고 두께를 몇 mm만 늘려 그만큼 많은 배터리 셀을 넣었다면, 최대 5시간(11인치의 경우, 13인치는 7시간)의 사용시간은 더 늘어났을 것이지만, 애플은 그렇게 하지 않았다. 또한 가장 두꺼운 곳이 1.7cm라지만, 옆면을 보면 그 정도도 안되 보인다. 실제로는 상판과 하판의 중심이 볼록한데, 이는 누르는 힘에 약한 알루미늄 재질의 강도를 높이기 위해서였을 것이다. 1.7cm지만 그 정도로 안 보이게 만드는 디자인 상의 트릭은 애플이 최고인것 같다. 다른 제조사들도 말로만 얇다고 하지말고., 얇게 보일 수 있게 디자인 좀 하시라.
디자인은 형태가 아닌 디테일의 싸움
맥북에어의 왼쪽에는 맥세이프라 불리는 전원어댑터와 USB포트, 이어폰잭과 마이크 홀이 있다. USB포트의 위아래 여유공간을 보라. 만약 USB포트의 규격이 지금보다 작았다면, 스티브 잡스는 개발자들을 더 쥐어짰을 거다. 그리고 마이크 홀의 마감을 보시라. 알루미늄을 저 정도로 가공할 수 있는 기술은 쉬운게 아니다. 디자인은 단순히 형태라 생각하는 제조사는 반성하시라. 디자인은 형태가 아닌 이런 디테일에서 자신과의 싸움이다.
정당한 부족함
오른쪽에는 USB포트와 미니 디스플레이포트가 있다. 이 포트는 VGA포트 대신이다. VGA 포트를 이쪽에 달았다면 저 두께가 안나왔을 테니 온당한 설정이다(물론 애플의 비싼 액세서리 가격은, 제품 자체의 깔끔한 마감을 고려해도 비싸긴 하지만). 13인치 모델은 여기에 SD메모리 슬롯이 달려 있다. 분명한 단점은 왼쪽, 오른쪽 USB포트 공히 충전을 위해 맥세이프를 붙이거나 미니디스플레이포트를 연결하면 USB메모리나 케이블 중 크기가 큰 것은 연결할 수 없다는 것이다. 물론 극단적인 두께를 자랑하니 이럴수 밖에 없었을 거다. 저 상태에서 USB포트가 아래로 내려오는 것은 거의 불가능(사진에서 USB포트와 옆면의 간격을 보시라)할테니 어댑터 포트와 미니 디스플레이 포트를 위쪽으로 올려야 하지만 이 역시 쉬운 일은 아니었을 것이다.
바닥면은 맥의 최근작 노트북에 비해 좀 지저분(?)하다. T3사이즈의 별나사가 그대로 노출되어 있기 때문. 실제로 이 별나사를 다 풀변 바로 커버를 벗겨낼 수 있다. 여기까지 봤을 때 드는 의문은 ‘방열구는 어디 있을까’였다.
후면의 검은테 속에는 블루투스와 와이파이 안테나가 들어 있다. 상판의 윗부분이 정석적 배치지만, 너무 얇기 때문에 어쩔 수 없었을 거다. 물론 수신률이 떨어지지는 않는다. 그리고 맥북에어를 조금 빡세게 돌리면 이 검은테와 상판 사이의 틈에서 뜨거운 바람이 나온다. 여타제품처럼 자랑스럽게, 그리고 보란듯이 - 냉각이 잘 되서 키보드가 시원할 것처럼, 하지만 실제로 키보드까지 뜨거워지는 - 방열구를 보여주지 않았다. 또한 팬이 작동해도 왼쪽 위 부분(대략 숫자 키보드 정도 까지만)만 열기가 느껴진다. 뜨거운 키보드를 타이핑해야 한다는 것은 얼마나 괴로운 일인가. 이 부분 역시 맥북에어는 합격점이다.
처음 여는 것이 어렵다?
사실 이번 맥북에어는 상판을 여는 것부터 좀 어렵다. 금새 익숙해지긴 하지만, 이 부분의 두께가 0.3mm 밖에 안되기 때문이다. 상판을 열면 등장하는 키보드는 13인치 모델을 기준으로 가장 윗줄에 자리잡은 키의 크기가 거의 1/3으로 줄었고, 가장 아래쪽의 Fn과 커서키의 크기가 미묘하게 줄었다. 하지만 문자와 숫자 키의 크기와 배열, 간격은 13인치 모델과 동일해 편하게 타이핑할 수 있다.
또한 별도의 전원 버튼을 두지 않고 키보드 오른쪽 위에 전원 버튼을 넣었다. 역시 제품의 두께가 너무 얇아 물리적인 버튼을 만드는 것이 어려웠기 때문이었을 거다. 또한 두께가 얇아졌기에 키가 눌리는 깊이가 살짝 얕아지긴 했지만, 불편할 정도는 아니다. 지금 이 리뷰도 맥북에어에서 작성되고 있으니까.



PC에서 가장 중요한 것은 성능이다. 물론 디자인이 중요한 사용자도 있겠지만, 이는 노트북에서 무게와 두께와 성능과의 관계에 비해 헐렁한 링크다. PC라면 까짓 100Kg의 무게여도 상관없다. 놓고 쓰는 거니까. 하지만 들고 다녀야 하는 노트북에서는 - 물론 노트북을 집에서만 쓴다면 상관 없지만, 그럴거면 성능 좋은 PC사는게 장땡 - 크기와 무게까지 성능의 요소에 포함되어야 한다. 얼만큼 얇은 두께와 가벼운 무게에서 어떤 성능을 낼 수 있느냐가 중요한 것. 당연히 맥북에어보다 저렴하고 성능 좋은 제품도 있다. 하지만 '이 정도의 두께와 무게에서 유사한 성능을 낼 수 있는 제품'은 없다(있다면 알려주시기 바란다). 결국 노트북의 '가격대 성능비'를 이야기 할때는 성능의 절대적인 기준이 아니라, 무게와 두께를 포함한 "총제적 성능"을 이야기 해야 한다. 또한 이것이 많은 사람들이 맥북에어를 들이거나 탐하는 이유기도 하다.

디자인의 트릭
11인치 모델의 화면 해상도는 1366x768로 적당한 편(물론 개인적인 기준에서). 다만 시야각은 썩 좋은 편이 아니라는 것은 아쉬운점. 사실 상판의 두께를 감안한면 이 정도의 액정 퀄리티도 고마워해야 하지 않을까란 생각이 든다. 액정이 얇기로 소문난 바이오 Z시리즈 보다 더 얇다. 자세히 살펴보면, 애플로고를 중심으로 상판은 볼록하게 솟아있다. 하지만 전체적인 모양은 얇아보인다. 분명 얇게 보이기 위한 트릭이지만, 이 정도는 애교로 봐줄 수 있는 수준.
강요된 감동은 감동이 아니다
bikbloger가 사용하던 eeePC 901은 터치패드가 너무 커 타이핑을 하다 살짝만 건드려도 엉뚱한 곳으로 커서가 튀었다. 물론 이 문제를 해결해주는 패치가 있지만, 이런 사후약방문은 제대로 못 만들었다는 거 인증이다. 맥북에어의 트랙패드 역시 만만치 않게 크지만 이런 문제는 생기지 않는다. 가끔 어떤 제조사들은 이런 문제를 방지하기 위해 터치패드의 위치를 왼쪽으로 확 치우치게 디자인한다. 이런 제조사들은 이 맥북에어를 분석 - 이미 하고들 있겠지만 - 하면 쉽게 답을 얻을 수 있을 거다.
# 각각의 기능이 어떻게 작동하는지 보여주는 간단한 비디오가 있다. 적어도 이 정도는 되어야 사용자가 감동하는 시대다. 감동은 강요가 아닌 자발적인 것이다. 흔히들 소비자를 감동시키는 것이 어렵다고 하는데, 그렇지 않다. 소비자는 자기가 생각하지 못한 것을 발견하게 되었을때 감동한다. 하지 말라고 해도 자발적으로.

4개의 손가락까지 인식하는 트랙패드
맥북에어의 트랙패드는 마치 아이폰이나 아이패드처럼 멀티터치는 물론, 4점 터치까지 인식한다. 그래서 사진을 보면서 아이폰처럼 확대/축소를 시키거나 회전 시키는 것이 가능하다. 또한 손가락 3개를 올리고 좌우로 쓸어주면 웹브라우저에서 이전/다음 페이지로 인식한다. 개인적으로 가장 자주쓰는 기능은 손가락 4개로 컨트롤 할 수 있는 기능들. 손가락 4개를 트랙패드에 놓고 위로 밀어주면 활성화된 창들이 위나 옆으로 도망가면서 바탕화면을 보여준다. 아래로 내리면 각각의 화면을 썸네일로 보여주는 엑스포제, 왼쪽이나 오른쪽으로 밀어주면 윈도우의 Alt-tab처럼 작동한다.

전통적으로 맥북시리즈들은 클릭은 트랙패드를 눌러야 한다. 마우스 오른쪽 버튼은 손가락 두개를 대고 눌러준다. 이때 나는 딸깍소리가 신경쓰이거나, 소리가 나면 안되거나 윈도우 머신에 익숙한 사람이라면 시스템환경설정에서 트랙패드를 선택해 ‘1개의 손가락 메뉴’ 중 “탭하여 클릭하기”를 선택하면 된다. 아주 작은 배려도 놓치지 않는 애플이다. 물론 여러 개의 화면으로 나눠서 쓸 수 있는 Space 역시 그대로.
서브급으로는 차고 넘치는 성능
일전의 맥북에어 포스팅에서 ‘스타크래프트 2’가 돌아간다는 것과 64GB의 용량이 충분한지, 시스템 메모리는 2GB와 4GB중 어떤 것을 택해야 하는지에 대해 포스팅 했다. 그리고 추가적으로 포토샵은 대략 6초 정도면 뜬다.(게다가 RAW 파일을 읽어 들이는 속도는 코어 i5 맥북프로 보다 빠르다) 이 정도면 성능에 대해서는 충분한 답이 될 것 같다. 3D 랜더링? 맥북에어 말고 다른 제품에도 그런 가혹한(?) 테스트를 하는지 궁금하다. 1세대 맥북에어의 경우, 일반적인 환경에서도 사용하기 어려운 하드웨어 성능을 간접적으로 경험했던지라 이번 맥북에어는 필시 4GB의 메모리가 필수란 생각을 했다.

집에서 사용하고 있는 아이맥 24인치는 인텔 코어2듀오(2.6GHz)에 4GB메모리로 돌리고 있는데, 얼마전 2GB메모리가 인식이 안되는 사태가 발생했다. 그 이후 패러렐로 윈도우 7을 띄우면 버벅이고, 스타크래프트 2 역시 끊기는 문제가 생겼다. 이런 경험 때문에 맥북에어는 필히 4GB 메모리가 필수라는 생각을 했다. 하지만... 기우였다. bikbloger의 포스팅에 mrkiss님이 남겨주신 댓글 ;

저는 사진 않고 프리스비가서 한시간가량 써봤는데요. 11인치 2기가 모델이었구요. 사파리에 창 열개 띄우고 유튜브 비디오 두개 돌리고, 제가 본중에 가장 벅찬 프로그램인 거라지밴드 레슨을 돌리면서 아이무비에서도 편집창에서 영화를 돌리고 키노트를 실행시켜서 메모리가 2기가 가득차고 스와핑이 1기가인 상태에서도 전혀 느려지지가 않더군요. 제 맥북에서는 단지 거라지밴드만 실행시킬때도 가끔 퍼포먼스 튜닝을 하라는 메시지가 뜨곤 했더든요. 맥북에어는 SSD를 거의 메모리처럼 사용하는듯 싶습니다. 4기가로 확장 하신분께 염장 지르는 말로 들릴지 모르지만 사실이니까요 ^^

페러렐 설치 여부가 위 상황에서의 변수가 될 수도 있겠지만, 맥북에어는 2GB로도 충분한것 같다. 어떻게 2배 이상의 프로세싱 파워를 붙인 아이맥보다 맥북에어가 더 쾌적할 수 있을까? 답은 플래시메모리다. 이제 하드디스크의 시대는 종말을 기다려야 하는지도 모른다. 어찌되었건 맥북에어는 지름직한 물건이다.
맥북에어는 전원버튼을 끌 필요가 없다. 그냥 쓰다가 상판을 닫아주면 대기모드에 들어간다. 대기모드도 전력을 소모하긴 하지만, 무려 한달을 버틴다. 여기에 여타 노트북들처럼 커넥터에 전원 어댑터를 꽂는 것이 아니라, 커넥터를 자석의 자성을 이용해 포트에 붙이는 방식인 맥세이프 덕에 어댑터를 연결해 사용하다 누군가 케이블에 발이 걸려도, 노트북이 바닥으로 추락하는 일은 없다. 여기에 노트북 사용자는 물론, 아이폰4 사용자(3G가 아닌 Wi-Fi에 연결된 상태에서)와 화상통화를 할 수 있는 페이스타임(Facetime)도 있다. 아이폰4 사용자가 맥북에어 사용자를 호출할 때는 메일로, 맥북에어 사용자가 아이폰4 사용자를 호출할 때는 휴대폰 번호로 호출한다.

bikbloger는 많은 노트북을 써왔고, 가지고 있다. 그리고 애플의 노트북은 이번 맥북에어가 처음이다. 하지만 쓰면 쓸수록, 알면 알수록 감탄하고 있는 중이다. 아마 많은 맥북에어 사용자 역시 마찬가지일 것이다. 다른 제조사가 하드디스크에 전착하고 SSD를 대단하다고 떠들어 댈때, 애플은 플래시 메모리로 앞서간다. 맥북에어는 그들의 말처럼 아이패드에서 많이 배운 것 같다. 이제는 다른 제조사가 맥북에어에게 배워야 할 차례다.

맥북에어의 명암
장점
- 서브급임을 잊게 만드는 엄청난 성능
- 이 이상은 어려울 것 같은 전대미문의 두께와 무게
- 애플 제품임을 감안하면 상대적으로 저렴한 가격
- 맥OS가 가지고 있는 다양한 장점들

단점
- 맥북에어와는 어울리지 않는 크기와 무게의 어댑터
(물론 이는 제조사별로 상이한 안전 규격을 적용하기 때문이지만)
- 모니터나 TV로 화면을 빼려면 미니디스플레이 어댑터 구매 필수
- 유선랜 포트 부재(물론 wi-fi는 802.11 n 지원)
- 이전 세대의 제품에 비해 싸졌지만, 여전히 선택을 저어하게 만드는 가격.

-----------------------------------------------------------------------------

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지


----
[여기서 부터 살다 포스팅~]

맥북에어 몇가지를 포기했고 몇가지는 기존의 노트북을 훨씬 뛰어넘었다.

땡기네 -0-

[2011/02/11] 결국 맥북에어를 질렀습니다.

막상 사고보니 위의 퍼온 리뷰의 장단점은 저랑 많은 차이가 보이네요;;

저는 13인치 램추가하고, 매직마우스도 같이 구매를 했습니다.

추가로
애플스토어에서 Apple USB Ethernet Adapter,
옥션에서 접지케이블 구매...

생각하지 못했던 단점은 접지 문제로 인한 알루미늄 바디에 흐르는 미세 전류....

전기장판 위에서 벽을 손끝이나 손등으로 댓을때의 느낌이랄까 먼가 설명이 안돼는 미세한 전류의 느낌
(아프거나 하진 않지만.. 왠지 계속 손대고 있으면 피곤할거같은.. 신경쓰이는...)

좀 불쾌할 정도여서 검색해보니 무슨 우리나라 탓이네 애플탓이네 말이 많더군요.. 접지 케이블을 구매하면

해결된다고 하여 옥션에서 접지케이블을 19000원에 구매.. 하지만... 여전한 느낌...

사무실에선 괜춘한데 꼭 집에가면 그러니 -ㅅ-;;

여하튼 일단은 만족합니다.

들고다니기좋고~ 가볍고 미려한디자인 이지만...

그전부터 눈 여겨 보던 매직마우스는 실망을 금치 못했습니다.

일단 가로세로의 이동시의 유격이 차이가 심하고 먼가 미세하지 못하며.. 마우스윗부분이 텃치를 가능하게 한건좋았지만

텃치 할때의 마우스는 밀려버리고.. 잡고서 포인터 이동할때의 그립감은 아주 낮았습니다..

결론은 매직마우스는 8만 9천원의 값어치가 전혀 없더군요..

절대 비추.. 매직마우스

디자인 하나는 미려합니다... 문제는 디자인만 미려하다는게 문제겠죠..






  1. Favicon of http://hanslee79.tistory.com BlogIcon 우히우하하 2011.02.08 09:18 신고

    자세하고 멋진 리뷰기 잘 보고 갑니다.~~`

□ 개요

   o Internet Explorer mshtml.dll 라이브러리가 재귀적으로 CSS @import 규칙을 포함하는 웹 페이지를 처리하는 과정에서 원격코드실행 취약점이 발생 [1, 3, 4, 6]

   o 공격자는 웹 페이지 은닉, 스팸 메일, 메신저의 링크 등을 통해 특수하게 조작된 콘텐트로 구성된 악의적인 웹 사이트에 방문하도록 사용자를 유도하여 악성코드를 유포 가능

   o 해당 취약점의 개념증명코드[2, 7]가 공개되었으므로 인터넷 사용자의 주의가 요구됨

 

□ 해당 시스템

   o 영향 받는 소프트웨어 [1]

     - Internet Explorer 6

     - Internet Explorer 7

     - Internet Explorer 8

       모든 운영체제의 모든 Internet Explorer 버전이 취약할 것으로 추정

          (DEP ASLR 우회 가능[6])

 

□ 임시 권고 사항

   o 현재 해당 취약점에 대한 보안업데이트는 발표되지 않았음

   o KrCERT/CC MS 보안업데이트 사이트[5]를 주기적으로 확인하여 해당 취약점에 대한 보안업데이트 발표 시 신속히 최신 업데이트를 적용하거나 자동업데이트를 설정

     자동업데이트 설정 방법: 시작제어판보안센터자동업데이트자동(권장) 선택

   o 취약점에 의한 피해를 줄이기 위하여 사용자는 다음과 같은 사항을 준수해야함

     - 파일공유 기능 등을 사용하지 않으면 비활성화하고 개인방화벽을 반드시 사용

     - 사용하고 있는 백신프로그램의 최신 업데이트를 유지하고, 실시간 감시기능을 활성화

     - 신뢰되지 않는 웹 사이트의 방문 자제

     - 출처가 불분명한 이메일의 링크 클릭하거나 첨부파일 열어보기 자제

 

□ 용어 정리

   o CSS (Cascading Style Sheet) : 웹페이지에 포함된 여백이나 글자의 크기 및 색깔 등의 각종 스타일을 기술하는 언어

   o @import : 외부 CSS 파일을 참조하는 URL을 지정하는 규칙

   o mshtml.dll : Internet Explorer의 핵심 모듈로서 HTML, CSS 등을 처리함

   o DEP (Data Execution Prevention, 데이터 실행 방지) : 프로그램의 비실행영역 메모리에서 코드가 실행되지 않도록 함으로써 악성코드 및 다른 보안 위험으로부터 손상되지 않게 해주는 보안 기능

   o ASLR (Address Space Layout Randomization) : 주소 공간 레이아웃을 불규칙하게 배치하는 보안 기능

 

□ 기타 문의사항

   o 보안업데이트는 언제 발표되나요?

     - 해당 보안업데이트의 발표 일정은 미정이나, 발표 시 KrCERT/CC 홈페이지를 통해 신속히 공지할 예정입니다.

   o 한국인터넷진흥원 인터넷침해대응센터: 국번없이 118

 

[참고사이트]

[1] http://www.vupen.com/english/advisories/2010/3156

[2] http://www.exploit-db.com/exploits/15746/

[3] http://www.breakingpointsystems.com/community/blog/ie-vulnerability/

[4] http://www.wooyun.org/bugs/wooyun-2010-0885

[5] http://update.microsoft.com/microsoftupdate/v6/default.aspx?ln=ko

[6] http://www.offensive-security.com/offsec/internet-explorer-css-0day-on-windows-7/

[7] http://www.metasploit.com/modules/exploit/windows/browser/ms11_xxx_ie_css_import

----------------------------------------------------------------------------------------------------------

출처 : 보호나라  2010-12-22  (http://www.boho.or.kr/dataroom/data_05_dtl.jsp?u_id=118&page=0&TempNum=124&page_id=6)

진심이 느껴진다 !!

멋지다~

화이팅!!!
 

출처 : varietybox.tistory.com

  1. benje 2011.07.09 11:46 신고

    주인장님 잘보고갑니다 자료를 올려주셔서 감사합니다

얼핏보기엔 그냥 커피 머신이지만...

로봇으로 변신하면서~ 어떤커피를 먹겠냐고 물어보는 머신

아시모 기술을 적용한 로봇

이제 슬슬 로봇이 친숙해 질때도 됐는데, 아이폰 만큼 힛트 칠만한 개인용 로봇이 나온다면 급변 할듯 하다.



이 정도면 세계어디를 내놔도 부끄럽지 않은 음식인듯!!

'퍼담기' 카테고리의 다른 글

[로봇] 트렌스포머 커피머신  (0) 2010.12.06
무한도전 비빔밥 광고  (0) 2010.11.26
아이폰/아이패드/아이팟 터치용 모바일웹 개발팁 12개  (0) 2010.10.28
sendmail  (0) 2010.08.16
Stoyan Stefanov씨는 아이폰/아이팟 터치에서 제공하는 사파리 브라우저(이하 모바일 사파리)용 웹페이지를 구축할 때 알아두면 유용한 팁 12가지를 작성했습니다. 아시다시피 모바일 사파리는 데스크탑용 브라우저와 견주어도 손색없을 정도의 풀브라우징을 지원하며, 작은 화면에서 효과적으로 컨텐츠를 조작 및 조회할 수 있도록 추가적인 특수한 API를 제공하고 있습니다. 지금부터 소개할 12가지 팁과 트릭은 기존의 사이트를 모바일 사파리에 최적화하거나, 새롭게 구축할 때 유용하게 사용할 수 있을 것입니다.

1. 관련 문서와 아이폰 시뮬레이터

Peter-Paul Koch씨는 모바일 사파리를 가지고 연구하기 시작했을 무렵에는 그 어디에도 관련 개발 문서를 찾을수 없었다고 불평했습니다. 애플은 한참이 지나서야 모바일 사파리 브라우저의 명세인 iPhone-specific web development information 문서를 공개했습니다.

모바일 사파리용 웹사이트를 만들기 위해서 아이폰이나 아이팟 터치를 꼭 가지고 있어야 하는 것은 아닙니다. 아이폰 SDK(맥 버전만 제공됨)에서 제공하는 시뮬레이터로도 테스트 할 수 있으니까요. 이것을 설치하기 위해서는 애플측에 아이폰 개발자로 등록절차를 거친 후 SDK를 다운로드해야 합니다. 설치에 성공했다면 아래의 경로에서 아이폰 시뮬레이터를 찾을 수 있습니다.
/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications

2. 작은 화면용 CSS

PC 또는 맥과 아이폰의 분명한 차이점은 아이폰이 훨씬 작은 화면을 가지고 있다는 점입니다. 만약 이미 데스크탑 브라우저에서 잘 작동하는 웹사이트가 있다면 모바일 사파리로의 가장 간단한 최적화 방법은 아래와 같은 전용 스타일시트를 추가하는 것입니다.
<!--[if !IE]>-->
<link  
   rel="stylesheet"  
   href="small-screen.css"  
   type="text/css"  
   media="only screen and (max-device-width: 480px)"  
/>
<!--<![endif]-->

<link> 요소는 최대 너비가 480픽셀인 기기를 타깃으로 지정한 media query를 사용하여 스타일시트를 로드합니다. 이 크기는 아이폰을 가로로 보았을 때의 크기입니다. IE 조건부 코멘트는 IE 버전 5.5 또는 이하 버전이 여기에 해당하며 이 브라우저들은 media query를 지원하지 않기 때문에 우회하도록 하기 위한 것입니다. 몇가지 예제를 살펴봅시다.

예제 1에는 두가지 색상을 가진 박스가 작성되어 있습니다. 하나는 빨간색 박스이고 다른하나는 파란색 박스입니다. common.css에는 모든 브라우저를 위한 파란색 박스 스타일이 포함되어 있습니다. small-screen.css는 모바일 사파리에만 적용되는 빨간색 박스 스타일이 포함되어 있습니다. 예제를 아이폰에서 실행하면 빨간색 박스를 볼 수 있고 데스크탑에서는 파란색 박스를 볼 수 있을 것입니다.

만약 하나의 스타일시트만 사용하고 싶다면, 아래와 같이 @media 블럭을 사용하여 아이폰만을 위한 스타일을 추가 할 수 있습니다.
@media only screen and (max-device-width: 480px) {
  #test-block { 
    background: red;
  }
}

예제 2에서는 인라인 스타일 예제를 보여주고 있습니다. onestyleforall.css 스타일시트에서 @media 블럭 안에 박스의 배경을 빨간색으로 지정하는 코드를 발견할 수 있습니다.

3. 뷰포트 <meta> 요소

모바일 사파리는 기본으로 큰 화면을 가진 데스크탑 브라우저 처럼 페이지를 렌더링 합니다. 이를테면 너비가 980픽셀인 페이지를 작은 화면에 맞추기 위해서 컨텐츠의 스케일을 줄이고 있는 것입니다. 결과적으로 사용자에게는 아주 작고 읽기 어려운 문자들로 가득찬 페이지를 제공하게 되며 관심있는 부분을 보기 위해 확대해야 합니다. 웹페이지 자체에는 문제가 없어 보이지만 당신이 웹 애플리케이션을 설계하는 입장에서는 이러한 일을 받아들이기가 쉽지 않을 것입니다.

다행히도 이것은 아래와 같이 <meta> 요소에 viewport 속성을 사용하여 바로 잡을 수 있습니다.
<meta name="viewport" content="width=device-width" />

이는 너비가 980픽셀을 축소하여 그려지는 대신에 아이폰의 가로 크기를 사용할 수 있도록 합니다. 다음 두 예제를 통하여 직접 비교할 수 있습니다.

1. 예제 3에서는 <meta> 요소에 viewport 속성을 사용하지 않은 기본 단락입니다. 여기에 사용된 문자는 거의 보이지 않습니다.
2. 예제 4에서는 <meta> 요소에 viewport 속성을 포함하고 있습니다. 기기의 가로 크기는 320픽셀로 문자를 보기가 더욱 편해졌습니다.


또 다른 방법으로는 원하는 값으로 화면이 축소되도록 기기의 가로 크기를 device-width에 지정하는 것입니다. 예를 들어, 당신의 블로그가 800 x 600픽셀 화면에 맞는 가로 750픽셀 레이아웃으로 고정되어있다고 가정해 봅시다. 예제 5에서는 부가적인 빈공간을 없애기 위해, 화면영역 <meta>요소를 사용하여 가로 크기를 780픽셀로 지정하였습니다.
<meta name="viewport" content="width=780" />

예제 6에서는 이 <meta> 요소에 viewport 속성을 가진 고정 레이아웃을 볼 수 있습니다.

<meta> 요소의 viewport 속성 내용은 여러개의 콤마로 구분하여 기본 스케일 값, 줌 레벨, 스케일링 가능 여부 등을 기입할 수 있습니다. 일반적인 값들은 다음과 같습니다.
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />

모바일 사파리의 가로는 기기의 최대 가로 크기로 지정되었고 줌 레벨을 1로 지정하여 사용자가 컨텐츠를 확대/축소하는 것을 방지하고 있습니다. 마치 모바일 사파리에 최적화된 웹사이트처럼 보이게 할 수 있는 것이죠.

4. 기울기(Orientation) 변화

당신의 웹 페이지 또는 애플리케이션들은 아이폰의 기울기에 따라 세로형과 가로형 이 두가지 방향으로 모드를 전환해 가며 볼 수 있습니다. 모바일 사파리에서는 자바스크립트를 사용하여 window.orientation 프로퍼티에 접근 할 수 있으며 아래와 같은 값을 가지고 있습니다.

  • 0 : 일반적인 세로 화면(홈 버튼이 아래에 있음)
  • -90 : 시계 방향으로 회전된 가로 화면(홈 버튼이 좌측에 있음)
  • 90 : 시계 반대 방향으로 회전된 가로 화면(홈 버튼이 우측에 있음)
  • 180 : 180도 뒤집힌 화면(홈 버튼이 위에 있음)

사용자가 기기를 회전할 때 이벤트를 발생시키기 위해서 orientationchange를 사용할 수 있습니다. 다음은 가로/세로 방향이 변할때마다 alert을 실행하는 예제입니다.
window.onorientationchange = function() {
  alert(window.orientation);
}

예제 7에서는 위 코드가 어떻게 작동하는지 볼 수 있습니다. alert이 실행되기 위해서는 아이폰을 회전시켜야 합니다. 아이폰 시뮬레이터에서는 하드웨어 메뉴에서 기기를 회전하는 메뉴를 찾을 수 있습니다.



5. 스타일시트의 기울기 명세

기울기에 대하여 조금 더 알아봅시다. 때때로 방향에 따라서 컨텐츠가 가진 스타일을 별도로 지정할 필요가 있을 지도 모릅니다. 이를 위해서는 아래와 같은 세가지 간단한 단계가 필요합니다.

1. 마크업에서 <body> 요소에 클래스를 추가합니다.(예: portrait와 landscape)
2. 스타일시트에 body.portraitbody.landscape에 관련된 서로 다른 스타일을 지정합니다.
3. 자바스크립트를 사용하여 회전이 발생할때마다 <body> 요소의 클래스 값을 변경합니다.

첫번째 단계는 아래처럼 기본 클래스를 추가하는 것입니다.
<body class="portrait">

그리고 스타일을 추가 합니다.
body.portrait p {
   color: red;
}

body.landscape p {
   color: blue;
}

끝으로 다음과 같은 자바스크립트 코드들이 필요합니다.

1. 최초 클래스 이름을 정의하기 위한 'load' 이벤트 리스너 추가
2. 아이폰의 회전을 감지하기 위한 'orientationchange' 이벤트 리스너
3. 'orientationchange' 이벤트가 발생할때마다 클래스명을 바꿔주는 함수

아래 코드는 위 이벤트 리스너들 할당한 것입니다.
window.addEventListener('load', setOrientation, false);
window.addEventListener('orientationchange', setOrientation, false);

다음은 <body> 요소에 클래스명을 변경하기 위한 setOrientation 함수입니다.
function setOrientation() {
  var orient = Math.abs(window.orientation) === 90 ? 'landscape' : 'portrait';
  var cl = document.body.className;
  cl = cl.replace(/portrait|landscape/, orient);
  document.body.className = cl;
}

예제 8은 방향에 따라 지정된 스타일이 보여지고 있습니다.



6. 툴바 감추기

최초 모파일 사파리에 페이지가 로드되기 시작하면 URL 툴바가 보이고 페이지를 아래로 스크롤하면 URL 툴바는 사라지는 것을 알 수 있습니다.



만약 모바일 사파리에 최적화된 웹 애플리케이션을 만들고 싶다면 페이지 로드가 완료 된 후 곧장 툴바를 없애고 싶을 것입니다. 이 문제를 해결하기 위해서는 window.scrollTo메서드를 사용하여 1픽셀 아래로 페이지를 스크롤하여 해결할 수 있습니다.
window.addEventListener('load', function(){
  setTimeout(scrollTo, 0, 0, 1);
}, false);

예제 9는 아래처럼 보이게 됩니다.



페이지가 너무 짧아서 스크롤 할 내용이 없다면 어떻게 해야죠? 이럴땐 <meta>요소를 추가하세요. viewport 속성에 높이 값을 지정하여 페이지가 스크롤 될 수 있게 합니다.
<meta name="viewport" content="height=device-height,width=device-width" />

7. 둥근 모서리들

특정한 박스를 둥글게 만들어야 한다면 데스크탑용 브라우저에서 작업했던 방식으로 할 수도 있습니다. 하지만 단지 사파리 브라우저만을 위한 것이라면 -webkit-border-radius CSS속성을 사용할 수 있고 비슷한 방법으로 파이어폭스에서도 -moz-border-radius를 사용할 수 있습니다. 파이어폭스나 사파리에 border-radius CSS 속성을 사용하고 IE나 오페라일 때에는 보통 사각형으로 보이게 할 수도 있겠습니다.
.box {
   -webkit-border-radius: 5px;
   -moz-border-radius: 5px;
   background: #ddd;
   border: 1px solid #aaa;
}

예제 10번에서는 이 CSS속성들을 이용하여 <div>요소의 가장자리를 둥글게 만들었습니다.



8. 터치 이벤트

아이폰은 마우스가 아닌 손가락으로 제어합니다. 터치하고 탭하기 위해 여러개 손가락을 사용할 수도 있습니다. 아이폰에서는 마우스 이벤트 대신에 다음과 같은 터치 이벤트를 사용할 수 있습니다.

  • touchstart
  • touchend
  • touchmove
  • touchcancel (시스템이 터치한 것을 취소하는 경우)

위와 같은 이벤트를 사용할 때 리스너는 event 객체를 전달 받습니다. event 객체는 다음과 같은 중요한 프로퍼티를 가지고 있습니다.

  • touches : 복수로 화면에 터치되는 각 손가락들에 대한 터치 이벤트 모음들. 이 객체들은 페이지에 터치되는 좌표들의 값을 가지고 있습니다.
  • targetTouches : 터치할 때 발생합니다. 그러나 전체 페이지가 아닌 타깃 요소에만 반응합니다.

다음은 터치를 이용한 드래그와 드랍에 대한 간다한 예제입니다. 빈 페이지에 놓여진 박스에 손가락을 올려놓고 드래그 되도록 할 것입니다. 다음 코드는 touchmove 이벤트를 등록하여 손가락으로 움직일 때마다 박스의 포지션을 업데이트 합니다.
 window.addEventListener('load', function() {
 
  var b = document.getElementById('box'),
      xbox = b.offsetWidth  / 2, // half the box width
      ybox = b.offsetHeight / 2, // half the box height
      bstyle = b.style; // cached access to the style object
 
  b.addEventListener('touchmove', function(event) {
    event.preventDefault(); // the default behaviour is scrolling
    bstyle.left =  event.targetTouches[0].pageX - xbox + 'px';
    bstyle.top  =  event.targetTouches[0].pageY - ybox + 'px';
  }, false);
     
}, false);

touchmove 이벤트 리스너는 최초 손가락 움직임에는 반응하지 않습니다. 이것은 모바일 사파리의 페이지를 스크롤 컨트롤과 중복되기 때문입니다. event.targetTouches는 타깃 <div> 요소 위에 있는 각 손가락에 대한 데이터 목록들을 가지고 있습니다. 우리는 그중 하나에 대한 것만 필요하므로 event.targetTouches을 사용합니다. pageX는 손가락 위치의 x 좌표값입니다. 손가락이 박스의 중간에 위치할 수 있게 하기 위해 <div>의 가로 크기의 반을 x 좌표값에서 뺐습니다.

예제 11번은 위 코드로 작성되었습니다.

9. 제스처들

아이폰에는 손가락 하나 이상의 동작에 대한 제스쳐가 있습니다. 스케일링(줌-인과 줌-아웃) 그리고 회전 입니다. 기기에 터치하고 있는 각 손가락에 대한 정보를 가지고 있는 touchestargetTouches 이벤트에 관하여 우리는 이미 배웠습니다. 줌과 팬(파노라마)과 같은 제스쳐를 다루기 위해서도 위와 같은 이벤트들을 사용할 수 있지만, 조금 더 편리한 제스처 이벤트 들이 있습니다. 다음을 살펴 봅니다.

  • gesturestart
  • gestureend
  • gesturechange

다음 예제에서 gesturechange 이벤트에 반응하고 WebKit 전용 CSS 스타일 프로퍼티인 webkitTransform을 사용하여 div를 스케일링도 해보고 회전도 시켜볼 것입니다. 마찬가지로 이벤트 리스너는 이벤트 객체를 넘겨 받습니다. 이벤트 객체는 다음과 같은 프로퍼티를 가지고 있습니다.

  • event.scale : 값 1은 스케일링이 전혀 없습니다. 값이 1보다 작을 때는 줌-아웃(<div> 요소를 작게 만듦)이며 줌-인일때 1보다 값이 큽니다.
  • event.rotate - 이것은 회전 각도입니다.

아래 코드는 이전에 살펴봤던 터치 앤 드래그 코드와 매우 흡사합니다.
window.addEventListener('load', function() {
  var b = document.getElementById('box'),
      bstyle = b.style;
  b.addEventListener('gesturechange', function(event) {
    event.preventDefault();
    bstyle.webkitTransform = 'scale(' + event.scale + ') ' +
                             'rotate('+ event.rotation + 'deg)';
  }, false);
}, false);

예제 12번은 위 코드에 대한 액션을 보여줍니다. <div>요소를 스케일링하고 회전할 수 있습니다.

만약에 아이폰 시뮬레이터로 이 예제를 확인 하는 경우, 옵션키를 활성화 하면 손가락 모양의 두 회색 점이 나타날 것입니다. 마우스를 드래그하여 그 점들을 좁히거나 늘릴 수 있습니다.



10. 특수한 링크들

아이폰에서 전화번호가 나온 페이지를 조회하다가 이 전화번호를 일일이 타이핑하지 않고 클릭만으로 전화가 걸린다면 얼마나 좋을까요? 모바일 사파리에서는 이것이 가능합니다. 전화번호 링크를 생성하기를 원한다면 tel: 스키마를 사용할 수 있습니다.
<a href="tel:12345678900">Call me</a>

SMS 문자도 문제없습니다. 아이폰 텍스트 메세지 어플에 연결되는 sms: 스키마를 사용하세요.
<a href="sms:12345678900">Send me a text</a>

다음은 특별한 URI 스키마를 사용하지는 않지만 때때로 어떠한 링크들은 아이폰에서는 특별한 액션을 취하기도 합니다.
  • 아이튠즈 스토어 링크는 아이튠즈와 연결됩니다.
  • 구글맵 링크는 지도 애플리케이션과 연결됩니다.
  • 유튜브 링크는 유튜브 애플리케이션과 연결됩니다.
  • 이메일 주소 링크는 메일 애플리케이션에 연결됩니다.

11. 홈 아이콘

기쁘게도 어떠한 방문자가 당신의 사이트를 홈스크린(아이폰애플리케이션 실행 화면)으로 등록하고 싶어할 지도 모릅니다. 일반적으로 당신의 사이트를 홈스크린으로 추가하면, 아이폰은 당신의 사이트를 스크린샷해서 아이콘처럼 사용할 것입니다. 하지만 이보다는 아이폰에 최적화된 개인 아이콘을 제공하는 것이 더 좋지 않을까요?

그렇게 하기 위해서, 57x57픽셀의 PNG 파일을 만들고 apple-touch-icon.png라고 이름 짓습니다. 그리고 패비콘과 마찬가지로 웹서버의 root에 그 이미지를 넣으면 됩니다. 아이폰은 자동으로 이미지를 글로시하게 효과를 주고 라운드 박스로 만들기 때문에 일부러 제작할 필요까지는 없습니다.



<link> 요소를 사용하여 그 아이콘의 파일 이름이나 위치를 변경할 수도 있습니다. CDN처럼 다른 웹서버에서 이미지를 호스트하는 경우라면 <link> 요소에 아이콘의 위치를 지정하기 위해 다음과 같이 작성하세요.
<link rel="apple-touch-icon" href="http://www.example.com/my-filename.png" />

12. 디버깅: 소스 보기와 콘솔

아이폰에서 어떻게 소스를 볼 수 있을까요? 불행하게도 모바일 사파리만으로는 불가능합니다. 하지만 다행스럽게도 북마클릿은 모바일 사파리에서도 사용할 수 있기 때문에 소스를 조회하는 기능을 가진 북마클릿을 사용 할 수 있습니다.

자바스크립트document.documentElement.innerHTML를 사용하여 페이지의 소스를 출력할 수 있고 이러한 내용을 북마클릿으로 만들어 새 창으로 소스를 볼 수 있습니다. iPHoneWebDev에서는 이미 이런 소스보기 관련 북마클릿를 여럿 제공하고 있으며 이 밖에도 모바일 사파리의 디스플레이를 최적화 하는데 도움을 주는 다른 것들도 많습니다. 이 북마클릿을 사용하기 위해서는 데스크탑용 사파리에서 즐겨찾기에 추가하고 아이튠즈로 동기화하면 됩니다.

모바일 사파리는 디버깅 콘솔을 가지고 있습니다. 환경설정 > 사파리 > 개발자용 > 디버그 콘솔 옵션을 활성화하면 아이폰에서 디버깅 콘솔을 작동시킬 수 있습니다. 자 이제 디버그 콘솔이 사파리 브라우저 URL 툴바 아래에 나타날 것입니다. 페이지에 대한 에러를 보여주고 자바스크립트에서 디버그 메세지를 작성하기 위해 콘솔객체가 사용될 겻입니다.
console.log('Something');
console.error('Oops');
console.warning('Beware!');

이 것을 끝으로 흥분되고 도전할 만한 새로운 아이폰애플리케이션 개발에 조금이나마 도음이 되셨으면 좋겠습니다. 당신만의 특별한 아이디어로 승부하여 이루고자 하는 것들을 모두 이뤄내시길 바랍니다.
------------------------------------------------------------------------------------------------------------
출처 : http://firejune.com/1506

'퍼담기' 카테고리의 다른 글

무한도전 비빔밥 광고  (0) 2010.11.26
아이폰/아이패드/아이팟 터치용 모바일웹 개발팁 12개  (0) 2010.10.28
sendmail  (0) 2010.08.16
Pots Of Gold  (0) 2010.06.21

sendmail 이야기

1. sendmail이란?

인터넷을 조금이라도 써 보신분은 sendmail이란 말을 들어보셨을 껍니다. 아니 요즘 같이 책들이 많이 나왔을때는 인터넷을 쓰지 않으셔도 sendmail이란 말은 들어보셨을 지도 모릅니다. 아마 대부분의 사람들은 과연 sendmail이 무엇이길래 사람들의 입에 오르내리는지?, 꼭 써야 하는건지? 라는 생각을 해 보셨을텐데요 여기에서는 sendmail이 무엇이며 어떻게 설치하고 sendmail에서 야기되는 몇가지 문제점들에 대해 이야기를 해 보도록 하겠습니다.

우선 sendmail은 인터넷에서 전자메일을 전송하기 위해 사용되는 프로그램이라고 생각하시면 됩니다. 그럼 이렇게 대답하시는 분들이 계실꺼예요. "어! 저는 전자메일을 보내고 받는데 Netscape Messanger를 쓰는데요! 그럼 sendmail은 몰라도 되겠네요!" 하지만 지금까지 모르셨을지 모르지만 Netscape Messanger같은 메일프로그램을 사용하시더라도 sendmail은 사용해 오셨을 겁니다. 전자메일 시스템에서 사용되는 용어중 Netscape Messanger와 같은 프로그램은 MUA(Mail User Agent)라고 부릅니다. 그에 비해 sendmail은 MTA(Mail Transfer Agent)라고 부릅니다.

우선 인터넷으로 편지를 보냈을때 어떤 경로로 전달되는지 알아보도록 하죠. 여기에서 메일서버로 taegu.ac.kr를 사용하는 whjang이라는 사용자가 kebi.com 컴퓨터에 있는 peach란 사용자에게 메일을 보낸다고 가정해보죠. 우선 사용하는 MUA(여기에서는 Netscape Messanger, 줄여서 NM이라고 부르겠습니다.)는 메일서버의 25번 포트에 접속을 합니다. 메일서버의 25번 포트에서는 MTA(여기에서 설명하는 sendmail이 해당됩니다. 이하 sendmail이라고 언급하겠습니다.)가 대기하고 있다가 NM이 보내고자 하는 메일을 받습니다. 그러면 sendmail은 스풀디렉토리(시스템 마다 조금씩 틀립니다. 제가 사용하는 Solaris 2.x에서는 /var/spool/mqueue를 사용합니다.)에 메일을 저장해 둔 후 kebi.com의 25번 포트로 접속합니다. kebi.com에도 sendmail이 25번 포트에서 대기하고 있겠죠. 정상적으로 접속을 한 후 taegu.ac.kr에 있는 sendmail은 kebi.com에 있는 sendmail에게 메일을 전송한 후 자신의 스풀에 저장된 메일을 삭제합니다. taegu.ac.kr에 있는 sendmail은 더이상 할 일이 없는거죠. 만일 kebi.com에 이상이 있어서 접속할 수 없다면 어떻게 될까요? taegu.ac.kr에 있는 sendmail은 메일을 스풀 디렉토리에 계속 가지고 있으며 수시로 접속을 시도합니다. 그러다가 며칠이 지나도 보낼 수 없다면 처음에 메일을 보낸 사람에게 메일을 보낼 수 없다고 되돌려 줍니다.

이제 메일을 받은 kebi.com에 있는 sendmail이 하는일을 차례대로 살펴보죠. 메일을 받은 sendmail은 메일의 도착지가 자신인지 확인을 합니다.(sendmail.cw파일 참조) 만일 도착지가 자신이 아니라면 도착지로 메일을 다시 전송합니다. (이 경우에는 아래에 설명드리겠지만 relay를 허용하는 호스트로만 전달할 수 있습니다. 그렇지 않은경우에는 에러를 출력합니다.) 만일 자신이 메일의 도착지라면 메일을 MDA(Mail Delivery Agent)에게 넘겨줍니다. MDA는 메일을 MTA로부터 받아서 메일박스등에 저장하거나 원하는 필터링을 할 수 있는 프로그램입니다. 보통 기본적으로 사용하는 MDA프로그램은 /bin/mail이며, 한글 처리를 위해 procmail을 이용하는 서버도 많이 있습니다. 메일을 받은 MDA는 필터링 과정을 거친 후 사용자의 메일박스에 저장합니다.

이제 메일의 전송은 완료되었습니다. 사용자는 mutt나 pine등의 MUA를 이용하여 메일을 확인할 수 있으며 외부에서 메일을 확인하는 경우 POP3나 IMAP프로토콜을 이용하여 메일박스를 가져갈 수 있습니다. POP3나 IMAP에 관한 내용은 본 글의 범위를 벗어나므로 설명은 하지 않겠습니다.

이상에서 보듯이 sendmail은 MTA의 역활을 합니다. 사용자로부터 메일을 전달받아 다른 컴퓨터의 MTA에게 넘겨주고, 다른 MTA로 부터 받은 메일을 MDA에게 넘겨주는 인터넷 전자메일의 가장 중심부에 위치하고 있습니다. 물론 MTA에는 다양한 프로그램이 있지만 sendmail은 카테고리 킬러(해당분야의 다른 프로그램들은 아예 잊혀져 버릴 만한 경쟁력을 갖추고 자신의 지위를 확고히 하는 최고 수준의 프로그램)가 될 수 있는 능력을 갖추었고, 현재 UNIX기반 메일서버의 거의 대부분이 MTA로 sendmail을 쓰고 있습니다.

2. 컴파일 및 설치

2.1 가져오기

http://www.sendmail.org에서 배포하는 sendmail의 배포판은 1998년 10월 31일 현재 8.9.1a이 최신입니다. (이는 sendmail 8.9.1과 8.9.1a로의 패치로 이루어져 있습니다.) 우선 파일을 다운로드 받아서 풀어둡니다.

temp $ gzip -dc sendmail.8.9.1.tar.gz | tar xvf -

temp $ cd sendmail-8.9.1/src

src $ patch < ../../sendmail.8.9.1a.patch

** Solaris등에 기본적으로 들어있는 patch를 사용하면 잘 되지 않습니다. GNU patch를 설치하셔서 사용하시기 바랍니다.

2.2 컴파일

주의**) http://www.sendmail.org/compiling.html에서는 src디렉토리에서 직접 make를 이용해서 컴파일 하지 말도록 하고 있습니다. 이 대신 Build 쉘스크립트를 사용하도록 권하고 있습니다.

가장 쉬운 방법은 Build스크립트를 사용하는 것입니다. 단순히 sh Build 라고 치면 컴파일 작업을 수행합니다. (기존에 sendmail을 설치했던 사람들중에는 makesendmail 스크립트를 사용한 사람들이 많은데 이는 Build 스크립트와 동일한 프로그램을 가리키고 있으므로 Build를 사용해도 무방합니다. 따라서 makesendmail대신에 Build를 사용하기를 권합니다.)

sendmail 8.9.1 $ cd src

src $ sh Build

Configuration: os=SunOS, rel=5.6, rbase=5, rroot=5.6, arch=sun4, sfx=

Using M4=/usr/ccs/bin/m4

Creating obj.SunOS.5.6.sun4 using ../BuildTools/OS/SunOS.5.6

Making dependencies in obj.SunOS.5.6.sun4

gcc -M -I.  -DNDBM -DNIS -DNISPLUS -DMAP_REGEX -DSOLARIS=20600  *.c >> Makefile

Making in obj.SunOS.5.6.sun4

gcc -O -I.  -DNDBM -DNIS -DNISPLUS -DMAP_REGEX -DSOLARIS=20600    -c alias.c -o alias.o

위의 메시지를 잠시 살펴보면 현재 시스템이 사용하고 있는 운영체제(os)는 SunOS이며 release는 5.6임을 알 수 있습니다. 또한 시스템의 아키텍쳐는 sun4입니다. 나중에 sendmail.cf파일을 만들때 사용하는 m4는 /usr/ccs/bin/m4를 사용하고 현재 디렉토리 아래에 obj.SunOS.5.6.sun4 디렉토리에 바이너리 파일들을 생성하며 컴파일 때 사용하는 파일은 ../BuildTools/OS/SunOS.5.6 임을 알 수 있습니다.

우선 Makefile에 소스파일의 의존관계를 추가하고 본격적인 컴파일을 시작합니다. (의존관계의 생성에 관한 내용은 Makefile에 관련된 자료를 참고하기 바랍니다.)

sendmail은 다양한 설정을 가지는데 주로 매크로를 사용하여 설정합니다. 위에서 사용된 -DNBDM -DNIS -DNISPLUS -DMAP_REGEX등이 그것입니다. 이것 이외에도 많은 매크로가 있으며 여기에서는 그중에서 중요한것만 설명하겠습니다.

  • -DNEWDB : Berkeley DB패키지를 사용할 때 사용합니다. sendmail에서는 alias와 일반적인 맵(map)을 위해서 DB패키지를 이용하는데 이 DB패키지 중 Berkeley DB패키지를 사용함을 의미하는 매크로입니다. 만일 설치하고자 하는 시스템에 Berkeley DB패키지가 설치되어 있지 않다면 http://www.sleepycat.com에서 최신 버전의 패키지를 가져다 설치하시기 바랍니다. sendmail에서는 DB패키지로 Berkeley DB를 사용기를 권하고 있습니다. 물론 다른 패키지를 사용할 수 있으나 Berkeley DB패키지를 구해서 설치하는게 여러모로 좋습니다. 필자도 처음에 gdbm을 사용하다가 Berkeley DB로 바꾸었습니다.
  • -DNDBM : DB패키지로 옛날에 사용되었던 NDBM패키지를 사용할 때 사용합니다. (NDBM매크로를 정의했을때 gdbm라이브러리를 링크합니다.) 이 NDBM패키지는 더 이상 사용되지 않으며 따라서 설치자는 NDBM대신에 NEWDB를 사용하는게 좋습니다.
  • -DNIS, -DNISPLUS : 각각 NIS와 NIS+를 지원하기 위해 사용합니다. 만일 시스템에서 NIS와 NIS+를 지원한다면 이 매크로를 정의해서 쓰는게 좋습니다.
  • -DMAP_REGEX : 스팸메일등을 필터링할 때 정규식(Regular Expression)을 사용할 수 있도록 합니다. 이 매크로를 사용하려면 POSIX의 regex()루틴이 있거나, FSF에서 만든 regexp 라이브러리가 설치되어 있어야 합니다.

이 매크로들은 여러개를 한꺼번에 정의해서 사용할 수 있습니다. (심지어는 -DNEWDB와 -DNDBM도 한꺼번에 정의해서 사용할 수 있습니다. 물론 이 경우에는 처음에 NDBM으로 만들어진 alias파일을 읽어 Berkeley DB형태로 바꾸고 Berkeley DB형태로 계속 사용합니다.) 하지만 -DNDBM은 쓰지 말기를 필자는 추천합니다. 그리고 만일 -DNEWDB가 Build 스크립트에 의해서 자동적으로 추가되지 않았다면 직접 Makefile을 수정해서 추가하도록 합니다.

이렇게 Makefile을 수정한 경우 새로 컴파일 하는 것이 좋습니다. 만일 프로그램에 익숙하다면 필자가 직접 언급하지 않아도 잘 알겠지만, 그렇지 않은 경우 -DNEWDB와 같이 매크로를 수정했다면 모든 이진파일인 *.o와 sendmail바이너리를 삭제한 후 다시 Build를 실행하고, -ldb등으로 라이브러리를 추가했다면 sendmail바이너리만 삭제한 후 다시 Build를 실행하면 됩니다.

만일 Solaris 2.6을 사용한다면 -DNEWDB -DNIS -DNISPLUS -DMAP_REGEX를 MAPDEF에 정의하고, LIBS는 -lresolv -lsocket -lnsl -lkstat -ldb을 사용하는 것을 추천합니다. 필자는 Solaris 2.6에서 위와같이 설정한 후 잘 쓰고 있습니다. 물론 이 설정을 사용해서 컴파일 하려면 Berkeley DB가 이미 설치되어 있어야 합니다. 아직 Berkeley DB패키지를 설치하지 않았다면 우선 그것부터 설치하시기 바랍니다.

2.3 설치 및 sendmail.cf생성

프로그램의 생성이 끝나면 obj.$os.$rel.$arch 디렉토리(예를들어 필자의 경우 SunOS.5.6.sun4)에 들어가서 수퍼유저의 권한으로 make install을 실행하면 매뉴얼등의 파일이 인스톨 됩니다. 기본적으로 sendmail 바이너리는 /usr/lib/ 디렉토리에 설치됩니다. 설치된 sendmail바이너리의 모드와 소유자등은 아래와 같아야 합니다.

/ $ ls -l /usr/lib/sendmail

-r-sr-x--x   1 root     bin       412896  6월  5일  18:04 /usr/lib/sendmail

만일 위와 다르다면 아래와 같이 입력하여 정확하게 만드시기 바랍니다.

/ $ chown root /usr/lib/sendmail

/ $ chgrp bin /usr/lib/sendmail

/ $ chmod 4555 /usr/lib/sendmail

** GNU groff가 없는 시스템에서는 메뉴얼을 만들때 에러가 납니다. GNU groff를 설치하면 깔끔하게(?) 해결이 되지만, 여의치 않을때는 메뉴얼을 설치하지 않고 sendmail바이너리를 수작업으로 설치하여도 상관이 없습니다.

이제 sendmail 바이너리 파일은 설치를 했으므로 sendmail.cf 파일을 만들어야 합니다. sendmail.cf파일은 직접 수정할 수 있으나 m4를 이용해서 생성하는게 쉽습니다. cf/cf 디렉토리에는 다양한 mc파일이 있으므로 자신의 시스템에 가장 적당한 mc파일을 선택합니다. 예를들어 필자의 경우는 Solaris 2.6이므로 genric-solaris2.mc 파일을 사용했습니다. 이 mc파일을 이용해서 sendmail.cf파일을 생성하는 방법은 아래와 같습니다.

sendmail $ cd cf/cf

cf $ m4 ../m4/cf.m4 generic-solaris2.mc > sendmail.cf

이 sendmail.cf를 /etc/mail 에 복사한 후 /etc/sendmail.cf를 /etc/mail/sendmail.cf로 심볼릭 링크를 생성합니다. (ln -s /etc/mail/sendmail.cf /etc/sendmail.cf)

** Linux의 경우에는 mc파일이 없습니다. 이때는 다른 mc파일에서 OSTYPE만 linux로 변경한 후 생성하면 됩니다. Linux에서 local mailer로 procmail을 사용하는 시스템에서 일반적인 mc파일은 아래와 같습니다.

VERSIONID(`linux for smtp-only setup with procmail for korean mail`)dnl

OSTYPE(linux)dnl

FEATURE(nouucp)dnl

FEATURE(local_procmail)dnl

FEATURE(access_db)dnl

MAILER(local)dnl

MAILER(smtp)dnl

3. 추가적인 작업들

3.1 sendmail.cw의 생성

/etc/mail/sendmail.cw에 메일을 받을 수 있는 호스트 이름을 적습니다. 이곳에 적은 이름으로 메일이 들어오면 더 이상 다른곳으로 메일을 보내지 않고 MDA(Mail Delivery Agent, 메일을 MTA에게서 받아 메일박스에 저장하는 프로그램)로 전달합니다. 보통 FQDN(Fully Qualified Domain Name)을 적고 만일 여러개의 호스트 이름을 사용한다면 모두 적어줘야 합니다.

/ $ cd /etc/mail

mail $ cat sendmail.cw

hostname.domain.com

hostname2.domain.com

3.2 디렉토리 모드변환

sendmail 8.9.x 에서는 보안상 몇가지 디렉토리의 모드를 검사해서 적당하지 않다면 sendmail자체가 실행이 안됩니다. 따라서 아래와 같이 입력해 주어야 합니다. 자세한 내용은 DontBlameSendmail and Enhanced File Security를 참고하시기 바랍니다.

/ $ chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

/ $ chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

이것 외에도 유저디렉토리에 그룹이 쓰기가능하거나, other가 쓰기 가능하다면 .forward가 작동하지 않습니다. 만일 일반 사용자의 .forward파일이 작동하지 않으면 그 사용자 홈 디렉토리의 모드를 확인하시기 바랍니다.

3.3 /etc/hosts파일

참고로 /etc/hosts 파일의 형태가 대부분 아래와 같이 되어있습니다.

/ $ cat /etc/hosts

127.0.0.1       localhost       

155.230.28.125  khaki   loghost

155.230.28.115  purple

하지만 이 파일을 아래와 같이 수정하시기 바랍니다. (차이점은 아시겠죠? ^^)

/ $ cat /etc/hosts

127.0.0.1       localhost       

155.230.28.125  khaki.ce.kyungpook.ac.kr        khaki   loghost

155.230.28.115  purple.ce.kyungpook.ac.kr       purple

3.4 테스트

이렇게 설정을 모두 마치셨다면 다음과 같이 해서 에러 메시지가 없는지를 확인해 보시기 바랍니다.

/ $ /usr/lib/sendmail -bi

이 때 에러 메시지가 없어야 합니다. 만일 에러 메시지가 났다면 /var/log/syslog 화일의 뒷부분을 보시기 바랍니다. 만일 별 문제가 없다면 이제 sendmail을 다시 띄우시면 됩니다.

3.5 데몬 띄우기

/ $ /usr/lib/sendmail -bd -q1h

그리고 반드시 /var/log/syslog 를 확인하시고, 메일을 보내고 받는 테스트를 지금 바로 해 주세요. 그리고 /var/log/syslog 에 에러 메시지가 있는지도 살펴 보시기 바랍니다.

4. 한글지원

메일에서 사용되는 SMTP프로토콜은 기본적으로 7bit문자만을 기반으로 제작되었습니다. 하지만 한글의 경우 EUC-KR로 표현하면 8bit를 사용하기 때문에 문제가 생길 수 있습니다. 따라서 메일에서 사용하기 위해 한글의 7bit 표현방법인 ISO-2022-kr(RFC 1557)이 만들어 졌고 메일의 본문에 사용되었습니다(헤더에는 EUC-KR을 B나 Q인코딩 방법으로 인코딩해서 사용했습니다.). 하지만 대부분의 프로그램에서는 한글을 8bit표현방법인 EUC-KR을 사용했으므로 이 두 표현간의 변환을 해 주는 프로그램이 필요했습니다. 이 작업은 크게 MTA, MDA, MUA에서 해 줄 수 있습니다. MTA에서 변환을 해 주는 대표적인 프로그램이 sendmail 8.6.12h2입니다. 이 프로그램은 프로그램으로부터 8bit표현을 입력으로 받아서 다른 곳으로 전송할때 ISO-2022-kr로 변환한 후 전송을 하고, 네트웍을 통해 받은 ISO-2022-kr로 표현된 메일을 EUC-KR로 변환 후 메일박스에 저장하도록 만들어 졌습니다. 그래서 몇년전까지만 해도 대부분의 메일서버에서 sendmail 8.6.12h2를 사용했었습니다.

하지만 SMTP 프로토콜이 8bit문자를 지원하는 ESMTP 프로토콜로 변하면서 본문에서도 ISO-2022-kr대신에 EUC-KR을 사용하도록 표준이 바뀌었습니다. 하지만 이 안을 정식 표준으로 공표하지 않았고, 아직까지 인터넷에는 ISO-2022-kr 로 표현된 메일이 돌아다니기 때문에 이 메일을 EUC-KR로 변환해 주는 작업이 추가적으로 필요하게 되었습니다.

ISO-2022-kr을 EUC-KR로 변환해 주는 프로그램들은 UNIX환경에서는 많이 만들어 졌습니다. hconv와 hmconv가 대표적인 프로그램입니다. 이제 관리자가 해 줘야 하는일은 sendmail이 받은 메일을 메일박스로 저장하기 전에 이 프로그램을 통과하게 만들어서 ISO-2022-kr을 EUC-KR로 변환만 해 주면 되게 되었습니다. 이렇게 필터링을 가능하게 해 주는 대표적인 프로그램이 procmail입니다.

여기에서는 procmail을 이용하여 한글 메일을 처리하는 과정을 설명드리겠습니다. 여기에서 알아두셔야 할 내용중에 중요한 내용으로 MDA에 대한 이해입니다. MDA(Mail Delivery Agent)는 MTA(Mail Transfer Agent, 대표적인 예는 sendmail입니다.)가 받은 메일의 최종적인 도착지가 현재 호스트인경우(sendmail의 경우 sendmail.cw를 참고하여 결정합니다.) 메일을 MDA에게 넘겨줍니다. 보통 시스템의 기본적인 MDA는 /bin/mail입니다. procmail은 /bin/mail대신에 사용할 수 있는 프로그램으로 필터링 기능이 강력하여 한글처리에 이용할 수 있습니다.

또 잘못 이해하시는 분들중에 procmail자체가 한글 디코딩을 해준다고 알고 계신분들이 많습니다. 이것은 잘못된 것입니다. 실재로 procmail도 한글 디코딩을 위해 다른 프로그램(보통 hcode나 hmconv를 이용합니다.)을 이용합니다. procmail이 하는일은 단순히 어떤 헤더가 있을때 적당한 프로그램을 불러 한글 디코딩을 해 줍니다.

따라서 procmail뿐만 아니라 한글 디코딩을 위한 프로그램을 설치하셔야 합니다. 여기에서는 hcode를 사용하도록 하겠습니다.

hcode는 ftp://ftp.kaist.ac.kr/hangul/code/hcode/에서 구할 수 있습니다. 가져온 프로그램을 적당한 디렉토리에 풀고 소스 디렉토리에서 단순히 make를 입력하면 컴파일이 완료됩니다. 컴파일 결과로 생긴 hcode를 /usr/local/bin 에 복사해 둡니다.(다른 디렉토리도 상관없습니다.)

그다음 procmail을 설치합니다. procmail은 대부분의 ftp서버에서 구할 수 있습니다. (저의 경우 ftp://ftp.kreonet.re.kr/pub/tools/mail/procmail/에서 구했습니다.) 프로그램을 구한 후 디렉토리에서 make를 입력한 후 메시지에 나온대로 대답하면 설치할 수 있습니다. 만들어진 procmail을 역시 /usr/local/bin에 설치합니다.

그런다음 /etc/procmailrc를 아래와 같이 만들어 둡니다.

LOGFILE=/var/log/procmail

VERBOSE=no

PATH=/usr/local/bin:/usr/bin:/bin

SHELL=/bin/sh 



:0 B

*^.\$\)C

{

  :0 fbw

  |hmconv -u



  :0 fhw

  * ^Content-Type: text/plain

  |formail -c -I "Content-Type: text/plain; charset=EUC-KR" -I \

  "Content-Transfer-Encoding: 8bit"



  :0 Efhw

  * ^Content-Type: text/html

  |formail -c -I "Content-Type: text/html; charset=EUC-KR" -I \

  "Content-Transfer-Encoding: 8bit"



  :0 Efhw

  * !^Content-Type:

  |formail  -c -I "Content-Type: text/plain; charset=EUC-KR" -I \

  "Content-Transfer-Encoding: 8bit"



  # Note that '-c' flag has been added to formail invocation.

  # It concatenates a  header of multiple lines into a single line

  # so that a bug in 'hcode -dk -m' dealing with RFC 2047 encoded header

  # has less 'harmful' effect.



  :0 fhw

  | formail -A  \

  "X-Automatic-Korean-Mail-Conversion: iso-2022-kr to euc-kr" 



}



DROPPRIVS=yes



:0 fhw

*Content-Type:.+; charset="?EUC-KR

| formail -c | hcode -dk -m 



:0 Efhw

*^(Subject|From|Cc):.*=\?EUC-KR\?(B|Q)\?

| formail -c | hcode -dk -m

그다음 sendmail에서 MDA로 procmail을 사용할 수 있도록 sendmail.cf파일을 수정해 줘야 합니다. sendmail.cf파일에서 Mlocal부분을 찾아서 아래와 같이 수정하시면 됩니다.

Mlocal,         P=/usr/local/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=10/30, R=20/40,

                T=DNS/RFC822/X-Unix,

                A=procmail -Y -a $h -d $u

하지만 이 방법보다는 mc파일에 FEATURE(local_procmail)을 추가하여 sendmail.cf를 생성하는 방법이 좋습니다.

제가 여기에서는 간단하게 설명을 드렸지만 좀더 자세한 내용이 필요하신 분은 신정식님의 Sendmail 8.8.x 이후 판과 Procmail을 이용한 한글 메일 처리를 참고하시기 바랍니다.

이 작업이 귀찮게 느껴지신다면 위에서 하는작업과 동일한 일을 하는 한글 sendmail을 설치하시면 됩니다. 하지만 한글 sendmail은 영문 sendmail에 비해 버전도 낮고, 또다른 오류가 생길 확률이 높기때문에 위의 방법을 사용하시기 바랍니다.

5. sendmail.cf에 관한 얘기

sendmail프로그램은 그 자체로 매우 복잡한 프로그램입니다. 또한 프로그램의 설정파일인 sendmail.cf자체도 복잡하기 그지 없습니다. ^^ 이 프로그램에 대한 얘기는 여기에서 설명하기 힘드므로 (솔직히 기존의 글보다 더 잘 설명할 자신도 없습니다. ^^) 이상로님의 http://trade.chonbuk.ac.kr/~leesl/mail/를 참고하시거나 sendmail의 저자가 직접 저술한 책(책 제목이 금방 떠오르지 않네요. 그냥 sendmail이지 싶은데.. ^^)을 참고하시기 바랍니다.

복잡한 설정이 싫다면 위에서 만들었던 m4를 이용해서 만든 sendmail.cf를 그대로 이용하셔도 됩니다.

6. Third Party Relay

6.1 Third Party Relay란?

Third Party Relay란 간단하게 말해서 SMTP서버의 사용자가 아닌 사람(보통 스팸을 뿌리기 위한 악의로)이 SMTP서버를 이용하는 것입니다. 따라서 A 컴퓨터의 SMTP서버를 C 컴퓨터에 있는 사용자가 B 컴퓨터로 메일을 보내기 위해 이용하는경우를 말합니다. 좀더 자세한 설명은 What is Third-Party Mail Relay?를 참고하시기 바랍니다.

아직까지 많은 서버들이 Third Party Relay를 허용하고 있으며, 이때문에 자신이 관리하는 호스트가 스팸 사이트로 인식되는것도 모르고 있는 경우가 허다합니다. 우선 자신이 관리하는 호스트의 SMTP서버가 Third Party Relay를 허용하는지를 체크하려면 Is My Mailer Vulnerable?에서 하실 수 있습니다. 꼭 해보시기 바랍니다.

6.2 설정방법

sendmail 8.7.x 이하

Third Party Relay를 막으려면 적어도 sendmail 8.8.x 가 되어야 합니다. 따라서 최신의 sendmail로 업그레이드를 하시기 바랍니다.

sendmail 8.8.x

sendmail.cf에 아래와 같은 Rule set을 넣고 sendmail.cR파일에 relay를 허용하는 호스트의 FQDN이나 IP address를 입력하면 됩니다. ( http://www.sendmail.org/antispam.html에서는 IP address를 권하고 있습니다.)

FR-o /etc/sendmail.cR



Scheck_rcpt

# anything terminating locally is ok

R< $+ @ $=w >           $@ OK

R< $+ @ $=R >           $@ OK



# anything originating locally is ok

R$*                     $: $(dequote "" $&{client_name} $)

R$=w                    $@ OK

R$=R                    $@ OK

R$@                     $@ OK



# anything else is bogus

R$*                     $#error $: "550 Relaying Denied"

그리고 /etc/sendmail.cR의 설정은 아래와 유사하게 하시면 됩니다.

/ $ cat /etc/sendmail.cR

155.230.28.117

155.230.28.118

sendmail 8.9.x

sendmail 8.9.x에서는 기본적으로 third party relay를 금지하고 있습니다. 만일 third party relay를 허용하려면 promiscuous_relay FEATURE를 mc파일에 추가하고 sendmail.cf를 생성하면 됩니다. (하지만 이렇게 할 사람이 있나요? ^^)

따라서 sendmail 8.9.x에서는 sendmail.cf에 특별한 수정없이 relay에 관한 파일만 수정하면 됩니다. 아래에서는 사용하고 있는 도메인 이름이 company.co.kr 이고, 호스트 이름이 myhost, ip address가 203.123.45.67 인 경우라고 가정합니다.

/etc/mail/access : 누가 이 메일 서버를 릴레이 서버로 지정해서 사용할 수 있는가, 어떤 주소에서 오는 메일은 거절할 것인가를 설정하는 파일입니다.

mail $ cat access

203.123.45      RELAY

209.1.2.3       RELAY

cyberpromo.com  REJECT

이렇게 설정한 경우 myhost와 같은 서브넷에 있는 컴퓨터들와 209.1.2.3을 사용하는 컴퓨터에서만 myhost.company.co.kr을 SMTP 서버로 지정해서 메일을 보낼 수 있습니다. 그리고 cyberpromo.com과 cyperpromo.com 도메인에 속하는 모든 호스트에서 오는 메일은 거절합니다. 일단 이 화일을 만드셨다면 이제는 DB 화일을 만드셔야 합니다.

/ $ cd /etc/mail

mail $ makemap hash access < access

그리고 /etc/mail/access 화일을 수정을 할 때마다 반드시 이 작업을 해 주셔야 합니다. 하지만 이 작업을 후에 sendmail을 죽이고 다시 띄울 필요는 없습니다.

그리고 access파일을 사용할 경우에는 sendmail.cf를 생성할 때 mc파일에 FEATURE(access_db)를 추가해야 합니다.

또한 makemap의 버전이 낮은경우 작동을 하지 않는 경우가 있습니다. 이때는 sendmail 패키지와 함께 딸려나오는 makemap을 컴파일 한 후 시도해 보시기 바랍니다. makemap도 sendmail과 마찬가지로 -DNEWDB를 선택해 주셔야 합니다.

/etc/mail/relay-domains : 위의 /etc/mail/access에서 지정한 곳 외에서 메일 서버로 지정하는 경우에도, relay-domains 에 등록한 도메인의 호스트에 대해서는 허용합니다. relay-domains와 access파일의 큰 차이점의 하나는 access파일의 경우 수정후 sendmail을 다시 실행할 필요가 없지만 relay-domains파일은 수정후 sendmail을 다시 실행해야 바뀐 내용을 인식합니다. 편한 파일을 하나 정해서 사용하시면 됩니다. 저의 경우 access파일은 RELAY-FROM에 해당하는 호스트에 relay-domains는 RELAY-TO에 해당하는 호스트를 설정합니다.

mail $ cat relay-domains

company.co.kr

이 경우 company.co.kr 도메인에서 오는 메일은 모두 중계를 허용합니다. 만일 이 메일 서버로만 오는 메일을 받고 싶다면(대부분의 경우가 여기에 속합니다) access 화일과 relay-domains 화일을 0바이트짜리 화일로 만들면 됩니다.

이렇게 설정한 후 SMTP서버가 third party relay를 허용하는지 테스트해 보시기 바랍니다.

7. 난 SPAM이 싫어요!

인터넷이 생활 깊숙히 들어가면 갈수록 편해지는 점이 있는것처럼 가끔은 사람을 짜증나게(?) 만드는 일들이 있습니다. 메일도 마찬가지인데요. 그중에서 사람을 열받게(?) 만드는 대표적인 메일은 스팸메일입니다. 따라서 메일서버의 관리자라면 스패머(Spammer, 스팸메일을 보내는 사람)가 보내는 스팸메일을 차단할 수 있어야 합니다. 여기에서는 스팸메일이 무엇이고, 어떻게 막을것인가에 관한 얘기를 하고자 합니다.

7.1 SPAM 메일이란?

가능한 빨리 추가할께요. 죄송 ^^

7.2 SPAM 메일을 막으려면?

만일 님이 관리하고 있는 메일서버의 사용자한명이 info@cyberpromo.com 에서 계속 SPAM메일을 보낸다고 항의를 해 온다면 /etc/mail/access 에 아래와 같이 추가하고 makemap으로 access DB를 재 생성하세요.

info@cyberpromo.com REJECT

근데 좀 지나보니 info2@cyberpromo.com 으로 이름을 바꾸어서 SPAM메일을 계속 보내는군요. 열받아서 cyberpromo.com 에서 오는 메일을 모두 거부하고 싶다면 아래와 같이 추가하세요.

cyberpromo.com REJECT

좀 지나고 생각을 해 보니 그냥 거부만 하니까 너무 싱겁군요. 메시지를 하나 띄워주고 싶다면 아래와 같이 access파일을 만드세요.

cyberpromo.com 550 Spammers couldn't see sunlight here

이제 좀 시원하군요. ^^

8. 가상 호스트

다음과 같은 상황을 가정해 보죠. 갑은 현재 을과 병에게 호스트를 임대해 주고 있습니다. 한대의 유닉스 시스템에 각각 ul.co.kr과 byung.co.kr이라는 도메인을 할당해서 웹서비스와 메일서비스를 해 주고 있습니다. 현재 웹서비스는 apache서버의 가상 호스트기능을 이용해서 잘 서비스를 하고 있었는데 갑자기 을과 병이 webmaster라는 메일계정을 똑같이 요구했습니다. 즉 을은 webmaster@ul.co.kr을 병은 webmaster@byung.co.kr을 요구했죠. 갑은 고민을 합니다. 어떻게 할까? 만일 이글을 보고 계신분이 갑과 같은 상황이라면 어떻게 해결을 했을까요?

sendmail에서는 이와 같은 문제를 해결하기 위해 가상 호스트를 제공합니다. 자세한 내용은 Virtual Hosting with Sendmail을 참고하시기 바랍니다. 여기에서는 간단하게 설명을 드리겠습니다.

위와 같은경우 이미 Name Server에는 정상적으로 설정되어 있을것이므로 Name Server 설정방법은 생략하겠습니다. 우선 sendmail.cf를 다시 만들어야 합니다. 이미 만들었던 mc파일에 FEATURE(virtusertable, hash /etc/mail/virtusertable)을 추가하고 sendmail.cf를 다시 생성하시기 바랍니다.(이 글에서는 sendmail이 사용하는 DB는 Berkeley DB라고 가정합니다.)

이제 을이 사용하는 계정인 webul을 만듭니다.(이름은 상관이 없습니다. 여기에서는 편의상 제가 이렇게 지었습니다.) 그리고 병이 사용하는 webbyung을 만듭니다. 그다음 /etc/mail/virtusertable.src 파일을 아래와 같이 만듭니다.

webmaster@ul.co.kr    webul

webmaster@byung.co.kr webbyung

그다음 makemap으로 아래와 같이 DB파일을 만들면 됩니다.

makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable.src

이렇게 해 두면 webmaster@ul.co.kr으로 오는 메일은 을에게 webmaster@byung.ac.kr로 오는메일은 병에게 갈 수 있습니다. 어때요? 간단하죠? virtusertable을 이용하면 위와 같은 단순한 기능외에도 다양한 기능을 사용할 수 있습니다. 자세한 내용은 위에서 언급했던 Virtual Hosting with Sendmail을 참고하시기 바랍니다.

9. 문제 해결

사용자명에 대문자가 들어있는경우 메일을 받으려면?

sendmail을 MTA로 사용하시는 경우에 sendmail.cf의 Mlocal로 시작하는 부분에 보시면 F=이라고 된 부분이 있습니다. 이곳에 u를 추가하면 대문자로 된 계정에서도 메일을 받아볼 수 있습니다. 하지만 계정에는 대문자를 안 쓰시는게 좋습니다. (특히 NIS+를 쓸경우 말썽을 많이 부립니다.)

.forward가 작동하지 않습니다.

Sendmail 8.9.x 부터는 sendmail이 읽어들이는 파일의 모드를 검사합니다. 예를들어 .forward가 있는 디렉토리(일반적으로 홈 디렉토리)의 모드가 그룹에게 쓰기가능하도록 설정되어 있으면 .forward파일자체를 읽지않습니다. 이때문에 .forward가 작동하지 않는다고 투덜대는 사람들이 많습니다. 지금 사용하고 계신 sendmail이 8.9.0이상이라면 자신의 홈디렉토리와 그 상위디렉토리가 그룹에게 쓰기가능하도록 되어있는지 확인해 보시기 바랍니다. 자세한 얘기는 DontBlameSendmail and Enhanced File Security를 참고하시기 바랍니다.

뉴스그룹에 김경욱님이 아래와 같은 글을 올려주셨습니다. 역시 .forward가 작동하지 않는경우를 설명하고 있습니다. 참고하세요.

sendmail.cf에서, .forward에 영향을 미치는 부분은 두군데입니다.



# Forward file search path

O ForwardPath=$z/.forward.$w:$z/.forward



$z (/etc/passwd를 lookup 해서 얻은 유저 디렉토리의 path) 밑의

.forward가 ForwardPath로 잡혀 있습니다. 이 옵션을 disable(#)시키면

forwarding이 되지 않습니다.



다음, 여기서 $z 값을 얻기 위해서 Local delivery agent는 /etc/passwd를

lookup 합니다. 그러나 Mlocal에서 F=w flag가 없으면 Mlocal은

/etc/passwd 를 lookup 하지 않습니다.



Mlocal,         P=/usr/local/bin/procmail, F=lsDFMAw5:/|@qSPfhn9,

S=10/30, R=20/ 40,

                T=DNS/RFC822/X-Unix,

                A=procmail -Y -a $h -d $u



위 두가지 사항을 확인해 보세요.



--

김경욱

access가 작동하지 않습니다.

일단 sendmail.cf를 만든 mc에 FEATURE(access_db, hash -o /etc/mail/access)를 추가하셨는지 검사해 보시고 만일 넣지 않았었다면 추가한 후 다시 sendmail을 생성해 보시기 바랍니다.

가끔 makemap의 버전이 낮아서 안되는 경우가 있습니다. 위와같이 했는경우에도 작동하지 않는다면 sendmail에 같이 들어있는 makemap을 컴파일해서 사용하시면 됩니다. (makemap에서도 사용할 DB등을 명시합니다. sendmail의 컴파일과 동일하게 하시면 됩니다.)

10. 참고글

1. 이석찬님의 Solaris 2.5.1용 sendmail 8.9.0 패키지의 README파일

2. http://www.sendmail.org/compiling.html

3. 이상로님의 Sendmail and Hangul Code

4. 이상로님의 프락메일에 관하여(On procmail)

5. 신정식님의 Sendmail 8.8.x와 Procmail을 이용한 한글 메일 처리

출처 : http://blog.naver.com/nillwow?Redirect=Log&logNo=8161854

I don't wanna waste a lifetime chasing pots of gold

I don't wanna miss the sunshine standing in the cold

I don't wanna be the one who's left behind

I wanna catch a glimpse of life

 
C'mon darlin', now we've started something that we've both gotta want to see right through

But I know darlin' that I would rather give it up than waste these precious moments with you, baby that won't do


Cos I don't wanna waste a lifetime chasing pots of gold

I don't wanna miss the sunshine standing in the cold

I don't wanna be the one who's left behind

I wanna catch a glimpse of life

No i don't wanna be the one who lets you down

With you I couldn't bear to live without

'퍼담기' 카테고리의 다른 글

sendmail  (0) 2010.08.16
Pots Of Gold  (0) 2010.06.21
용영지운 이기이 안남재정 오정성 동기보영 강조형 승리!  (0) 2010.06.17
벅스뮤직 이벤트 아이패드 쏜대요~  (0) 2010.06.10
이청/박주/박성/이
영표/성용/동국
정환/김일/김성/김
범석/이수/정
진/염훈/김경/김
민수/용형/김
렬/차두

사용자 삽입 이미지

 
 
 
==============================================================================

맥북은 비추~

노트북에 시디롬이 없다면 안습...

하지만 별로 쓰고싶지는 않지만 발상이 재미있다

가격은 3000원에 팔고있다는..

광고글 아님 -ㅅ-;

출처 : funshop.co.kr
최근 지인으로부터 갑자기 링크주소가 온다거나 파일전송이 되어지면 반드시 확인후 사용해야겠다~

특정 메신져등을통해 전파되는 이러한 링크(파일)은 접속자의 컴퓨터를 재부팅으로 유도하여 메신져 아이디 패스워드를 유출 한다고 하니 주의 해야겠네 -_-;;

메신져 사용시 갑자기 재부팅 된다거나 재부팅을 유도하는 경우 반드시 백신을 통해 검사를 해봐야겠다.

하지만 이러한 놈들은 소스를 조금만 수정해도 백신을 회피할수있으니;;;

이거야 원 어디 무서워서 메신져 쓰겠나 ㅋ

사내 메신져외 타 메신져 삭제조치로 낼름 지워서 그나마 다행이긴한데 ㅋ

출처 : 보안뉴스 (http://www.boannews.com/media/view.asp?page=&gpage=&idx=20369&search=&find=&kind=1)

암호화와 OLTP 성능 보전 방안

해커에게 고객DB 털렸다면

데이터 암호화후 적절한 조치를 취하지 않을 경우 투명성 및 기능성을 확보하는데 어려움이 따를 수 있다. 적절한 조치를 취하지 않을 경우 발생하는 OLTP 업무 질의의 투명성 및 성능 저하를 살펴보고 이를 극복하기 위해 적용 가능한 방안을 논해 보고자 한다.

데이터베이스 관리자는 데이터가 암호화 된 이후에도 기존의 응용 프로그램을 수정하지 않기를 바라며(투명성), 또한 이러한 응용 프로그램의 성능이 저하되는 것을 원하지 않을 것이다(기능성). 하지만 간단한 데이터를 암호화 하더라도 암호화 값의 이진 속성에 따라 테이블의 정의까지 달라지는 경우가 발생하게 된다.

 

테이블의 암호화를 적용하고 난 이후에 발생하는 성능저하에 대해 많은 DBA들이 한번쯤 고민해 보았을 것이다. 데이터베이스에 암호화를 적용할 때 가장 먼저 거론되는 품질 요소는 성능 보존이라는 것이 많은 조사를 통해 알려진 바 있다. 이번에는 자주 사용되는 OLTP 업무 질의에 암호화를 적용할 경우 발생하는 성능 저하 현상을 살펴보고 이를 극복하기 위한 몇 가지 기법을 제시하고자 한다.

OLTP vs. OLAP

통상적으로 사용되는 ‘OLTP’의 의미는 대다수의 데이터베이스 관리자라면 어느 정도 파악하고 있으리라 믿는다. 하지만 이 기회에 이 둘 사이의 의미를 명확하게 짚고 넘어가는 것도 의미가 있을 것 같아 아래와 같이 정리해 보았다.

사용자 삽입 이미지

OLTP 질의

표 1에서 OLTP 시스템이 가지는 특성을 파악했다. 이런 특성 중에서 암호화와 가장 관련이 깊은 것으로 질의, 데이터 접근, 처리속도 등이 있다. 질의는 소수의 레코드를 반환하는 표준화되고 간단한 것, 데이터 접근은 인덱스를 통한 단일 접근 혹은 범위 스캔, 매우 빠른 처리 속도 등이 있다.

인덱스가 걸린 컬럼이 암호화될 경우 기존의 인덱스는 Drop되며 암호문을 사용하여 다시 생성되어야 한다. 또한 새롭게 생성된 인덱스를 사용하기 위해서는 질의문을 적절하게 변경해 주어야 한다.

OLTP 질의의 Where 조건에 암호화된 컬럼이 사용될 경우 인덱스에 미치는 영향으로 인해 성능에 나쁜 영향이 나타나게 된다. 다음에서는 암호화된 컬럼이 Where 조건에 사용될 경우에 적절한 조치를 취하지 않음으로써 발생하는 성능 저하를 살펴보고자 한다.


사용자 삽입 이미지


인덱스 컬럼의 암호화 및 OLTP 질의 성능

국내에서 암호화 요구가 가장 많이 발생하는 부분은 아무래도 주민등록번호가 아닐까 한다. 또한 주민등록번호를 Where 조건에 추가하여 수행하는 OLTP 업무 질의도 상당히 많은 실정이다.

이번 절에서는 이러한 상황을 재현하기 위한 테이블을 정의하고 이 테이블의 주민등록번호 컬럼을 암호화한다. 이렇게 암호화된 테이블에서 암호화된 주민등록번호를 Where 조건에 주고 질의를 실행함으로써 암호화가 OLTP 질의 성능에 어떤 영향을 끼치는지 살펴보고자 한다.


  • 테이블 정의 : 주민등록번호를 포함한 테이블을 정의한다. 테이블에 10,000 건의 레코드를 추가하여 테스트를 진행했다. 또한 Where 조건에 사용되는 JUMINNUM 컬럼에 인덱스를 생성한다. 그림 1은 테이블에 포함된 레코드의 일부를 나타낸 것이다.
  • 테스트 질의 : 실제 상황을 반영할 수 있도록 주민등록번호가 Where 조건에 포함된 테스트 질의를 사용한다. 아래는 주민등록번호 뒤 7 자리를 ‘x’로 치환하여 보여준 것이며 실행 시에는 실제 값으로 테스트한다.
  • 질의 성능(암호화 미적용) : 그림 2에서 보는 바와 같이 주민등록번호가 인덱스되어 있으므로 빠른 시간 내에(10ms) 결과를 얻을 수 있다.
  • 테이블 암호화 : 그림 2 테이블의 ‘JUMINNUM’ 컬럼을 AES 알고리즘을 사용하여 암호화한다. 이 때 주의할 점은 기존의 인덱스는 삭제된다는 것이다. 그림 3은 암호화된 테이블의 레코드 일부이다.
  • 질의 성능(암호화 적용 후) : 암호화 적용 중 인덱스가 삭제됨에 따라 빠르게 수행되던 질의의 성능이 현저히 저하됨을 알 수 있다(18.95 초). 이는 Table Full Scan을 행함으로써 발생하는 것으로 만약 테이블의 레코드 수가 많다면 현실적으로 암호화를 적용하기 힘들 정도로 수행 성능이 저하될 수 있다.

암호화 인덱스 및 질의 재작성을 통한 성능 보전

앞서 암호화를 적용한 이후에 현저히 저하되는 질의 성능을 확인한 바 있다(10ms -> 18.95s). 이번에는 암호화된 값을 사용하여 인덱스를 생성한 후 생성된 인덱스를 사용하도록 질의를 수정함으로써 성능저하를 방지하는 방법을 살펴보고자 한다. 이런 과정은 아래와 같은 두 개의 단계를 거쳐서 수행된다.

사용자 삽입 이미지

  • 암호화 컬럼에 인덱스 생성 : ‘JUMINNUM_NEW’가 암호화된 컬럼이다.
  • 암호화된 컬럼 인덱스를 사용하도록 질의 재작성 : 암호화된 컬럼에 인덱스를 생성하였으므로 인덱스를 사용할 수 있도록 ‘암호 컬럼’ = 암호화 함수(‘암호값’) 형식으로 질의를 수정함. Select List에는 복호화 함수를 사용하여 암호 값을 복호화 낸 후 결과를 반환하도록 수정. Where 조건과 Select List에 쓰인 암호화/복호화 함수는 제품들마다 독자적인 형식을 지니고 있다. 다음은 암호화 전과 동일한 결과를 표시하는 수정된 질의다.

이렇게 질의를 수정하여 개선된 실행 계획은 그림 6과 같다. 또한 수행 성능도 그림 7과 같이 암호화 이전으로 회복된 것을 확인할 수 있다.


사용자 삽입 이미지

투명성을 보장하는 성능 보전

우리는 앞선 단원에서 암호화된 컬럼에 인덱스를 생성하고 이를 사용하도록 질의를 수정함으로써 OLTP 질의의 성능을 보전할 수 있음을 알았다.

하지만 이 방법을 적용하기 위해서는 질의 수정이 필요하므로 이러한 질의를 사용하는 응용 프로그램 투명성이 심각하게 훼손될 수 있다. 이러한 질의가 다양하고 그 수가 많을 수록 암호화 적용에 많은 시간과 노력이 필요하게 되며 DB 관리자 및 개발자에게 거부감을 주게 되어 결국 실패할 확률이 높아지게 된다.

이번에는 앞서 살펴본 성능 보전 기법의 효과를 살리면서도 응용 프로그램의 투명성을 보장할 수 있는 방안에 대해서 살펴본다.


● 확장 인덱싱 Framework

오라클의 경우에는 기본적으로 제공되는 B-Tree 인덱스 이외에도 사용자가 인덱스의 동작을 재정의하여 사용할 수 있는 확장 인덱싱 Framework를 제공한다. 확장 인덱스 Framework는 세부 내용이 많아 여기에서 모든 내용을 다룰 수는 없지만 중요한 개념을 정리하면 Indextype은 응용 프로그램이 정의한 인덱스 동작 유형을 구현하고 Operator는 적절한 인덱스 유형을 선택하고 인덱스 검색을 수행, 그리고 Domain Index는 indextype의 인스턴스로서 특정한 열에 대해 정의되며 질의 실행 시 Optimizer에 의해 선택된다.

다음 각 단계는 오라클 Optimzer에 의해 Domain Index가 선택되어 성능 향상을 가져오는 단계를 나타낸 것이다.

사용자 삽입 이미지

① 응용 프로그램 투명성 뷰에서 암호화가 적용된 컬럼을 Operator로 구성함.

② 오라클의 Optimizer는 Operator에 대해 Select List에 사용될 때 Functional Evaluation과 Where 조건에 사용될 때 Domain Index Evaluation 등 두 가지 방향으로 해석함.

③ 이에 따라 Operator는 Domain Index Evaluation으로 동작하며 오라클은 Indextype에 구현된 ODCIIndexStart() 함수를 호출함.

④ ODCIIndexStart() 함수 구현 내에서 ‘암호 컬럼’ = 암호화 함수(‘암호값’) 형식으로 수정된 질의를 사용함.

⑤ ODCIIndexFetch() 함수에서 ‘암호 컬럼’ = 암호화 함수(‘암호값’) 형식의 인덱스 Fetch 루틴을 연속적으로 호출함.

다음은 Domain Index 동작을 위한 Indextype 구현의 일부이다.
 

사용자 삽입 이미지

확장 인덱싱 Framework 적용 결과

그림 8, 9는 확장 인덱싱을 적용한 후 원본 질의의 실행 계획을 나타낸 것이다. 확장 인덱싱 적용 후 수행 성능이 암호화 이전으로 회복된 것을 볼 수 있다.


각 운영 환경에 맞도록 적용해야

지금까지 OLTP 환경의 정의 및 응용 프로그램 특성을 간단히 정의하고 암호화를 적용함에 따라 응용 프로그램 투명성 훼손, 질의 성능 저하 등이 발생함을 살펴보았다.

나아가 암호화 이후의 질의 성능 보전을 위한 방법을 살펴보았고 확장 인덱싱 Framework를 사용하여 응용 프로그램 투명성까지 제공할 수 있는 기법을 제시해 보았다.

다양한 데이터베이스 및 응용 프로그램 환경으로 인하여 실제의 암호화 적용은 그리 쉬운 것이 아니다.

위에서 제시한 방법들 이외에도 각각의 운영 환경에 맞는 적용 방법을 관련된 모든 사람들이 머리를 맞대고 고민할 때 잘 보호된 데이터베이스 시스템이 탄생할 수 있을 것이다.


출처 : 보안뉴스 (boannews.com)

'퍼담기' 카테고리의 다른 글

메신져 링크/파일전송 주의하세요  (0) 2010.04.19
Database 암호화  (0) 2010.03.25
블루웹 도메인 가격 정책 변경  (0) 2010.03.12
win7  (0) 2010.03.05
블루웹에서 도메인 가격정책을 새로 내놨다~

블루웹 회원이면서 블루웹을 통해 도메인을 구입한경우 혹은 도메인 예치금(도메인용 금액을 충전) 잔액에 따라 등급을 나눠 등급별로 최대 11,000원(1년등록비) 에 도메인을 구매/연장 할수 있다고 한다.

또한 기관이전시 11,000원으로 기관이전할수있고 (물론 기관이전시 1년 무료 연장혜택) 이 기관이전으로 1년 연장하면서 흩어진 도메인 모아서 할인 받고 아끼는 도메이너로 거듭나보자~ ㅋㅋ

도메인 등록 비용 안내 : http://domain.blueweb.co.kr/domain_regist_money.html
도메인 연장 비용안내  : http://domain.blueweb.co.kr/domain_termmoney.html
도메인 기관 이전 비용안내 : http://domain.blueweb.co.kr/domain_movemoney.html

출처 : 블루웹

'퍼담기' 카테고리의 다른 글

Database 암호화  (0) 2010.03.25
블루웹 도메인 가격 정책 변경  (0) 2010.03.12
win7  (0) 2010.03.05
vmware7 으로 MAC OS X 설치 Leopard  (0) 2010.03.05

1. Vmware 설정


먼저 CPU는 인텔과 AMD에서도 쓸 수 있습니다. 과거 해킨토시는 AMD CPU에서 설치가 힘들었지만 지금은 잘 됩니다. 인텔 CPU의 경우 인텔 펜티엄 4가 기본이고 SSE2가 필수에다 SSE3을 지원해야 설치가 가능합니다. VMware 7을 실행한 다음 File → new → Virtual Machine을 선택하거나 왼쪽에 보이는 New Virtual Machine을 클릭합니다. New Virtual Machine Wizard 창이 띄면 Custom (advanced)으로 설정합니다. Custom 방식으로 설정을 해야 가상 머신이 갖게 될 메모리 크기, HDD 어댑터 방식 등을 사용자가 선택할 수 있습니다.


Hardware Compatibility을 낮추면 많은 제약이 따르므로 기본값인 Workstation 6.5-7.0 그대로 놔두고 Next 버튼을 눌러 진행합니다.


Vmware 6.5 버전 부터 OS를 설치할 DISK, ISO 이미지 여부를 물어봅니다. 세번째 항목을 선택하고 Next 버튼을 누릅니다.


가상 머신에 설치할 게스트 운영체제를 선택하는 화면으로 FreeBSD로 고르고 Next 버튼을 누릅니다.


가상 머신 이름과 저장될 경로를 지정합니다.


가상 머신이 갖게 될 가상 CPU 개수를 지정합니다. VMware의 가상 머신도 여러 개의 CPU 코어를 인식해 다수의 CPU를 가상 머신에 추가할 수 있는데, 작은 고려사항이 발생합니다. 가상 머신의 최대 성능을 발휘하기 위해서는 호스트 컴퓨터가 갖고 있는 CPU 개수만큼 게스트 컴퓨터도 그 수를 지정해주는 것이 좋습니다. 참고로 VMware 워크스테이션 6.5 버전은 최대 2개까지의 CPU를 지원하고 VMware 워크스테이션 7 버전은 최대 4개까지의 CPU를 지원해주므로 자신의 PC 상태에 맞춰 조절해가며 사용하기 바랍니다.


가상 머신이 다중 CPU를 사용했을 때의 이점을 따지자면 멀티 CPU 환경(SMP-Symmetric Multiprocessing)에서 개발 및 테스트를 할 때 유용하게 쓰일 수 있습니다.


가상 머신의 메모리 크기를 지정합니다. 여기서 말하는 메모리는 현재 호스트 운영체제가 갖고 있는 메모리 공간 중 일부를 VMware의 가상 머신이 가져가서 사용하는 것으로 최소 1GB 정도의 메모리를 할당해줘야 좋습니다. 가상 머신의 메모리 용량은 추후 언제든지 조절할 수 있으므로 부족하다 싶으면 더 많이 할당해주면 됩니다.


가상 머신을 위한 네트워크 형태를 지정합니다.


1) Use bridged networking

-  집이나 회사에서 공유기를 통해 192.168.x.x와 같은 Private IP 대역으로 인터넷을 사용하고 있다면 같은 대역으로 가상 머신의 게스트 운영체제에 대해 IP를 줄 수 있습니다. 만약 인터넷에서 사용되는 Public IP 주소를 게스트 운영체제에 부여하고 싶을 때에도 이 옵션을 사용할수 있습니다. 위 두 가지 경우 모두 호스트 컴퓨터와 가상 머신이 동등한 자격으로 네트워크를 사용하게 됩니다.


2) Use network address translation (NAT)

- 호스트 컴퓨터를 ADSL과 같은 초고속 인터넷에 1:1로 물려서 사용하거나 Public IP를 사용하지만 추가적인 IP 주소를 얻기 힘들 경우가 있습니다 .이때는 NAT 기능을 통해 가상의 공유기를 VMware를 통해 구동시켜서 게스트 운영체제가 IP 주소를 받고 인터넷을 할 수 있게 해줍니다.


간단히 공유기를 사용하고 있다면 Bridged Network를, 공유기가 없다면 NAT 방식을 선택하기 바랍니다. 둘 중 어떤 걸 선택할지에 대해 확실치 않다면 NAT 방식을 우선 선택하면 가상 머신에서의 네트워크 및 인터넷이 가능합니다.


가상 머신의 I/O 어댑터를 지정합니다. 추천하는 LSI Logic을 선택합니다.


가상 머신이 사용할 디스크 공간을 선택해줍니다. Create a new virtual disk를 선택합니다. 가상 머신이 사용하는 하드디스크 공간은 파일 형태로 호스트 컴퓨터의 하드디스크에 저장됩니다. 호스트 컴퓨터에 파일 형식으로 저장할 경우 호스트 운영체제의 파일 시스템을 한번 더 거치기 때문에 실제적으로 디스크 I/O 측면에서 성능 손실이 있는 것이 사실입니다. 이를 극복하기 위해 'Use a physical disk'를 선택해 물리적인 하드디스크를 통째로 가상 머신이 사용하도록 해 성능 향상을 꾀할 수 있습니다.


가상 머신에 탑재될 하드디스크의 타입으로 SCSI로 설정시 인식하지 못할때가 있기 때문에 IDE로 선택합니다.


가상 머신에 탑재될 하드디스크 공간을 지정합니다. 가상 디스크가 사용할 디스크 공간을 기가바이트 단위로 지정할 수 있습니다. 기본적으로 VMware 워크스테이션은 아무리 큰 크기의 가상 디스크를 만들어도 실제적으로 사용한 공간만큼만 차지하며, 사용량이 늘어나면 이 디스크 파일 사이즈도 점차적으로 늘어납니다.


위 방식은 호스트 컴퓨터의 디스크 공간을 아낄 수 있는 장점이 있지만 디스크 여유 공간이 부족할 경우 가상 머신이 더 이상 하드디스크에 데이터를 저장할 수가 없게 됩니다. 이 문제를 해결하고자 미리 전체 크기를 지정해두고 어떠한 상황에서든 가상 머신이 지정된 디스크 공간 모두를 사용하게 하고 싶다면 'Allocate all disk space now'를 선택할 수 있습니다.


'Split virtual into 2 GB files'의 경우 가상 디스크가 사용할 파일 크기를 2GB 단위로 쪼개서 호스트 컴퓨터에 생성하는 옵션입니다.


가상 디스크 파일(vmdk) 이름을 지정합니다.


Customize Hardware를 눌러 수정을 합니다. Finish 버튼을 눌렀다면 좌측의 Edit virtual machine settings 클릭하여 수정하면 됩니다.


불필요한 플로피 디스크 드라이브를 삭제하고 ISO 이미지를 넣습니다. 디스플레이 부분에서는 Accelerate 3D graphics 항목에 선택해주고 OK 버튼을 누릅니다. 이로써 맥 OS X를 위한 가상 머신 생성이 완료되었습니다.


2. 본격적인 맥 OS X 타이거 설치


가상 머신을 실행시킵니다.(Power on this virtual machine 클릭)

가상 머신과 호스트 운영체제 사이에 제어권 전환은 [Ctrl] + [Alt] 키를 이용하는 것을 잊지 말기 바랍니다.

- 가상 머신 제어하기: 화면클릭

- 가상 머신 제어권 풀기: [Ctrl] + [Alt]


위와 같은 설치 화면이 뜨면 8초가 다 지나가기 전에  ESC키를 눌러줘야 합니다. 가만히 놔두면 에러 메시지가 출력되어 다시 재부팅해야 합니다.


재부팅한 뒤 이제 ESC키를 눌러 계속 진행하면 위와 같이 로딩중인 화면을 볼 수 있습니다.


Mac OS X 설치 초기화면이 뜹니다. 만일 뜨지 않고 멈춘다면 CPU가 설치 ISO에서 지원하지 못한 경우입니다. '주 언어로 한글 사용'을 클릭하고 계속 진행합니다.


설치 준비 중...


계속 버튼을 누릅니다.


대상 볼륨이 아무것도 나오지 않아 당황하셨을 겁니다. 파티션 설정을 해줘야 합니다. 상단에 보이는 메뉴에 있는 유틸리티 - 디스크 유틸리티를 선택합니다.


처음에 만든 VMware 디스크를 선택한 다음 Partition을 선택하면 볼륨 설계에서 몇 개의 파티션으로 나눌지 선택하는 메뉴가 보입니다. 최대 16개의 파티션으로 분할할 수 있습니다. 파티션을 누르고「디스크를 파티션 분할하면 디스크에 있는 모든 정보가 삭제됩니다. "VMware Virtual IDE Drive" 디스크를 지우겠습니까?」물음에 파티션을 클릭합니다. 끝났으면 창의 빨간 버튼을 눌러 닫습니다.


화면에 보이는 대상 볼륨을 누르고 계속 버튼을 누릅니다. 사용자의 CPU에 맞게 체크하고 설치 버튼을 누르면 '설치 DVD 확인 중' 메시지가 나오는데 건너뜀해서 바로 설치에 들어갑니다.


시스템 사양에 따라 예상시간은 다릅니다. 커피 한 잔을 하며 인내심을 갖고 설치가 끝날 때까지 기다립니다. 제 PC는 1시간 20분 소요되었습니다.


설치 막바지. 시스템 성능 최적화 중입니다.

'퍼담기' 카테고리의 다른 글

블루웹 도메인 가격 정책 변경  (0) 2010.03.12
win7  (0) 2010.03.05
vmware7 으로 MAC OS X 설치 Leopard  (0) 2010.03.05
Windows 7 edition  (0) 2009.10.28

얼마전에 검색을 통해 Mac OS X 설치할 수 있다는 정보를 접했습니다. 호기심으로 한번 설치해보고자 오래된 버전이긴 하지만 Mac OS X 10.4.8 버전 설치를 성공하였습니다. Mac 자체가 IBM 호환 PC와는 다르게 바이오스를 사용하지 않고 EFI라는 것을 사용하고 하드웨어적 문제로 인해 설치가 쉽지 않았지만, 지금은 해킨토시 이용자를 위한 패치가 이뤄져서 설치가 잘 되고 있습니다.

윈도우에서 쓰는 부트 로더가 맥 OS X를 인식하지 못해서 윈도우와 맥 OS X를 멀티 부팅으로 함께 쓸 수 없었지만 2006년 4월 애플은 부트 캠프(Boot Camp)를 내놓은 이후 해커들이 맥 OS X를 해킹한 해킨토시(Hacintosh)를 만들었습니다. 해킨토시는 맥 OS 를 해킹해 인텔 맥이 아닌 PC에서 애플 맥 OS를 깔아 쓰는 PC를 가리킵니다.


많은 분들이 이미 단일 설치 또는 윈도우와 맥 멀티부팅을 이용하거나 Vmware로 설치해서 사용하고 계실겁니다. 본인은 부담없는 Vmware를 통해 설치하는 방법을 설명하겠습니다. 여기서는 타이거(Tiger) 버전을 설치하지만 여러분은 레퍼드(Leopard) 버전 설치에 도전해 보시기 바랍니다.


1. Vmware 설정


먼저 CPU는 인텔과 AMD에서도 쓸 수 있습니다. 과거 해킨토시는 AMD CPU에서 설치가 힘들었지만 지금은 잘 됩니다. 인텔 CPU의 경우 인텔 펜티엄 4가 기본이고 SSE2가 필수에다 SSE3을 지원해야 설치가 가능합니다. VMware 7을 실행한 다음 File → new → Virtual Machine을 선택하거나 왼쪽에 보이는 New Virtual Machine을 클릭합니다. New Virtual Machine Wizard 창이 띄면 Custom (advanced)으로 설정합니다. Custom 방식으로 설정을 해야 가상 머신이 갖게 될 메모리 크기, HDD 어댑터 방식 등을 사용자가 선택할 수 있습니다.


Hardware Compatibility을 낮추면 많은 제약이 따르므로 기본값인 Workstation 6.5-7.0 그대로 놔두고 Next 버튼을 눌러 진행합니다.


Vmware 6.5 버전 부터 OS를 설치할 DISK, ISO 이미지 여부를 물어봅니다. 세번째 항목을 선택하고 Next 버튼을 누릅니다.


가상 머신에 설치할 게스트 운영체제를 선택하는 화면으로 FreeBSD로 고르고 Next 버튼을 누릅니다.


가상 머신 이름과 저장될 경로를 지정합니다.


가상 머신이 갖게 될 가상 CPU 개수를 지정합니다. VMware의 가상 머신도 여러 개의 CPU 코어를 인식해 다수의 CPU를 가상 머신에 추가할 수 있는데, 작은 고려사항이 발생합니다. 가상 머신의 최대 성능을 발휘하기 위해서는 호스트 컴퓨터가 갖고 있는 CPU 개수만큼 게스트 컴퓨터도 그 수를 지정해주는 것이 좋습니다. 참고로 VMware 워크스테이션 6.5 버전은 최대 2개까지의 CPU를 지원하고 VMware 워크스테이션 7 버전은 최대 4개까지의 CPU를 지원해주므로 자신의 PC 상태에 맞춰 조절해가며 사용하기 바랍니다.


가상 머신이 다중 CPU를 사용했을 때의 이점을 따지자면 멀티 CPU 환경(SMP-Symmetric Multiprocessing)에서 개발 및 테스트를 할 때 유용하게 쓰일 수 있습니다.


가상 머신의 메모리 크기를 지정합니다. 여기서 말하는 메모리는 현재 호스트 운영체제가 갖고 있는 메모리 공간 중 일부를 VMware의 가상 머신이 가져가서 사용하는 것으로 최소 1GB 정도의 메모리를 할당해줘야 좋습니다. 가상 머신의 메모리 용량은 추후 언제든지 조절할 수 있으므로 부족하다 싶으면 더 많이 할당해주면 됩니다.


가상 머신을 위한 네트워크 형태를 지정합니다.


1) Use bridged networking

-  집이나 회사에서 공유기를 통해 192.168.x.x와 같은 Private IP 대역으로 인터넷을 사용하고 있다면 같은 대역으로 가상 머신의 게스트 운영체제에 대해 IP를 줄 수 있습니다. 만약 인터넷에서 사용되는 Public IP 주소를 게스트 운영체제에 부여하고 싶을 때에도 이 옵션을 사용할수 있습니다. 위 두 가지 경우 모두 호스트 컴퓨터와 가상 머신이 동등한 자격으로 네트워크를 사용하게 됩니다.


2) Use network address translation (NAT)

- 호스트 컴퓨터를 ADSL과 같은 초고속 인터넷에 1:1로 물려서 사용하거나 Public IP를 사용하지만 추가적인 IP 주소를 얻기 힘들 경우가 있습니다 .이때는 NAT 기능을 통해 가상의 공유기를 VMware를 통해 구동시켜서 게스트 운영체제가 IP 주소를 받고 인터넷을 할 수 있게 해줍니다.


간단히 공유기를 사용하고 있다면 Bridged Network를, 공유기가 없다면 NAT 방식을 선택하기 바랍니다. 둘 중 어떤 걸 선택할지에 대해 확실치 않다면 NAT 방식을 우선 선택하면 가상 머신에서의 네트워크 및 인터넷이 가능합니다.


가상 머신의 I/O 어댑터를 지정합니다. 추천하는 LSI Logic을 선택합니다.


가상 머신이 사용할 디스크 공간을 선택해줍니다. Create a new virtual disk를 선택합니다. 가상 머신이 사용하는 하드디스크 공간은 파일 형태로 호스트 컴퓨터의 하드디스크에 저장됩니다. 호스트 컴퓨터에 파일 형식으로 저장할 경우 호스트 운영체제의 파일 시스템을 한번 더 거치기 때문에 실제적으로 디스크 I/O 측면에서 성능 손실이 있는 것이 사실입니다. 이를 극복하기 위해 'Use a physical disk'를 선택해 물리적인 하드디스크를 통째로 가상 머신이 사용하도록 해 성능 향상을 꾀할 수 있습니다.


가상 머신에 탑재될 하드디스크의 타입으로 SCSI로 설정시 인식하지 못할때가 있기 때문에 IDE로 선택합니다.


가상 머신에 탑재될 하드디스크 공간을 지정합니다. 가상 디스크가 사용할 디스크 공간을 기가바이트 단위로 지정할 수 있습니다. 기본적으로 VMware 워크스테이션은 아무리 큰 크기의 가상 디스크를 만들어도 실제적으로 사용한 공간만큼만 차지하며, 사용량이 늘어나면 이 디스크 파일 사이즈도 점차적으로 늘어납니다.


위 방식은 호스트 컴퓨터의 디스크 공간을 아낄 수 있는 장점이 있지만 디스크 여유 공간이 부족할 경우 가상 머신이 더 이상 하드디스크에 데이터를 저장할 수가 없게 됩니다. 이 문제를 해결하고자 미리 전체 크기를 지정해두고 어떠한 상황에서든 가상 머신이 지정된 디스크 공간 모두를 사용하게 하고 싶다면 'Allocate all disk space now'를 선택할 수 있습니다.


'Split virtual into 2 GB files'의 경우 가상 디스크가 사용할 파일 크기를 2GB 단위로 쪼개서 호스트 컴퓨터에 생성하는 옵션입니다.


가상 디스크 파일(vmdk) 이름을 지정합니다.


Customize Hardware를 눌러 수정을 합니다. Finish 버튼을 눌렀다면 좌측의 Edit virtual machine settings 클릭하여 수정하면 됩니다.


불필요한 플로피 디스크 드라이브를 삭제하고 ISO 이미지를 넣습니다. 디스플레이 부분에서는 Accelerate 3D graphics 항목에 선택해주고 OK 버튼을 누릅니다. 이로써 맥 OS X를 위한 가상 머신 생성이 완료되었습니다.


2. 본격적인 맥 OS X 타이거 설치


가상 머신을 실행시킵니다.(Power on this virtual machine 클릭)

가상 머신과 호스트 운영체제 사이에 제어권 전환은 [Ctrl] + [Alt] 키를 이용하는 것을 잊지 말기 바랍니다.

- 가상 머신 제어하기: 화면클릭

- 가상 머신 제어권 풀기: [Ctrl] + [Alt]


위와 같은 설치 화면이 뜨면 8초가 다 지나가기 전에  ESC키를 눌러줘야 합니다. 가만히 놔두면 에러 메시지가 출력되어 다시 재부팅해야 합니다.


재부팅한 뒤 이제 ESC키를 눌러 계속 진행하면 위와 같이 로딩중인 화면을 볼 수 있습니다.


Mac OS X 설치 초기화면이 뜹니다. 만일 뜨지 않고 멈춘다면 CPU가 설치 ISO에서 지원하지 못한 경우입니다. '주 언어로 한글 사용'을 클릭하고 계속 진행합니다.


설치 준비 중...


계속 버튼을 누릅니다.


대상 볼륨이 아무것도 나오지 않아 당황하셨을 겁니다. 파티션 설정을 해줘야 합니다. 상단에 보이는 메뉴에 있는 유틸리티 - 디스크 유틸리티를 선택합니다.


처음에 만든 VMware 디스크를 선택한 다음 Partition을 선택하면 볼륨 설계에서 몇 개의 파티션으로 나눌지 선택하는 메뉴가 보입니다. 최대 16개의 파티션으로 분할할 수 있습니다. 파티션을 누르고「디스크를 파티션 분할하면 디스크에 있는 모든 정보가 삭제됩니다. "VMware Virtual IDE Drive" 디스크를 지우겠습니까?」물음에 파티션을 클릭합니다. 끝났으면 창의 빨간 버튼을 눌러 닫습니다.


화면에 보이는 대상 볼륨을 누르고 계속 버튼을 누릅니다. 사용자의 CPU에 맞게 체크하고 설치 버튼을 누르면 '설치 DVD 확인 중' 메시지가 나오는데 건너뜀해서 바로 설치에 들어갑니다.


시스템 사양에 따라 예상시간은 다릅니다. 커피 한 잔을 하며 인내심을 갖고 설치가 끝날 때까지 기다립니다. 제 PC는 1시간 20분 소요되었습니다.


설치 막바지. 시스템 성능 최적화 중입니다.


맥 OS X 부팅 화면.


짜잔~ 드디어 설치가 끝났습니다. 맥 OS X의 부팅화면을 보니 감탄이 절로 나옵니다. 여러분도 맥 OS X 설치를 성공해서 맥 OS X만의 편리함을 느껴보시기 바랍니다. 여기에 맥 OS X v10.5.5 레퍼드 설치 성공한 스크린샷이 있습닌다.


출처 : http://blog.daum.net/luckyman717/1504

'퍼담기' 카테고리의 다른 글

win7  (0) 2010.03.05
vmware7 으로 MAC OS X 설치 Leopard  (0) 2010.03.05
Windows 7 edition  (0) 2009.10.28
'폴라리스' 로봇과 휴대전화가 하나가 되다  (0) 2009.09.15


스타터

홈 프리미엄

프로페셔널

얼티밋

32비트/64비트

32비트만

모두

모두

모두

최대 물리메모리
(64비트모드)

×

16GB

192GB

192GB

최대 CPU 개수

1

1

2

2

홈 그룹
(생성&가입)

참여만

백업&복구

네트워크로의
백업 불가

네트워크로의
백업 불가

다중 모니터 지원

×

빠른 사용자 전환

×

데스크톱 배경화면 변경

×

데스크톱 윈도 매니저

×

윈도 모바일 센터

×

윈도 에어로

×

멀티터치

×

프리미엄 게임 포함

×

윈도 미디어 센터

×

윈도 미디어플레이어
원격 스트리밍

×

암호화 파일 시스템

×

×

위치 인식 인쇄

×

×

원격 데스크톱 호스트

×

×

프리젠테이션 모드

×

×

윈도 서버 도메인 가입

×

×

윈도 XP 모드

×

×

리모트 에어로 글래스

×

×

×

앱로커

×

×

×

비트로커 드라이브 암호화

×

×

×

브랜드 캐시
디스트리뷰티드 캐시

×

×

×

다이렉트 액세스

×

×

×

유닉스기반 애플리케이션
위한 서브시스템

×

×

×

35개 언어
유저 인터페이스 패키지

×

×

×

가상 하드디스크 부팅

×

×

×


MS  윈도 7 에디션 - 어떠한 버전이 제격입니까?]

 ◎ 사례 정의  ㅁ 확진 환자     - 아래 실험방법 중 한 가지 이상의 방법에 의해 바이러스 병원체 감염을 확인한 급성호흡기질환자
    · real-time RT-PCR
    · 바이러스 배양

  ㅁ추정 환자

   - 급성호흡기질환이 있으면서 인플루엔자 A는 확인이 되었으나, 기존 사람인플루엔자 H1과 H3 음성
 
  ㅁ 의심 사례
 
    - 급성열성호흡기질환이 있으면서 다음의 역학적 연관성이 있는 경우
      ·증상발현 7일 이내 추정 또는 확진환자와 접촉자이거나
      ·증상발현 7일 이내 확진환자 발생지역에 체류 또는 방문 후 귀국한 경우

    - 65세 미만의 건강한 사람이 중증의 급성열성호흡기 질환으로 입원한 경우

       *현재 의심사례에 부합되지 않지만 "학교, 합숙소 등 단체 생활자(10명 이상)중 2명 이상
        급성열성호흡기 질환이 7일 이내에 있는 경우"는 5건까지 검사시행 필요 (지역사회 집단 발생시 조치 사항 참조)


 ◎ 급성열성호흡기질환(Acute febrile respiratory illness)

    - 7일 이내 37.8℃ 이상의 발열과 더불어 다음의 증상 중 1개 이상의 증상이 있는 경우
      · 콧물 혹은 코막힘
      · 인후통
      · 기침
       ※ 단, 최근 12시간 이내 해열제 또는 감기약(해열성분 포함)을 복용한 발열 증상으로 인정함


 시, 군, 구 대책반의 환자 관리 역할 


출처 :  질병관리본부 http://www.cdc.go.kr

발병 3개월이 지나도록 잠잠하던 신종플루(인플루엔자A·H1N1). 하지만 국내에서도 2명의 사망자가 나오면서 국민들의 불안감이 커지고 있습니다. 정부는 신종플루 확산 방지에 총력 대응키로 했습니다.

신종플루 검사는 어디에서 어떻게 받을 수 있는지, 항바이러스제를 투약받으려면 어떻게 해야하는지 등 궁금하신 분들 많을텐데요, <정책공감>은 이런 궁금증을 모아서 Q&A로 정리, 소개합니다.



Q1. 신종인플루엔자 A(H1N1) 일반적인 증상은 어떤가요?

- 일반적으로 계절 독감 증상과 크게 다르지 않습니다.
- 발열(37.8℃이상)이 있고 기침을 하거나 콧물이 나거나 또는 목이 아프거나 하는 호흡기 증상이 주로 발생합니다.
- 다만, 사람들에 따라서는 오심, 무력감, 식욕부진, 설사와 구토 증상이 함께 나타나기도 합니다.


Q2. 신종인플루엔자에 걸렸을 때 합병증을 유발할 가능성이 큰 위험집단은 ?

65세 이상 노인

만성질환자
-폐질환 : 만성폐쇄성페질환(만성기간지염,페기종), 기관지확장증, 진폐증,기관지폐형성이상, 천식 등
-만성 심혈관 질환:선천성심장질환, 만성심부전, 허혈성심질환등(※ 단순 고혈합 제외)
-당뇨 : 인슐린이나 경구 혈당강하제를 필요로 하는 당뇨병
-신장질환 : 신증후군, 만선신부전증, 신장이식환자 등
-만성간질환 : 간경변 등
-악성종양
-면역저하자 : 무비장증, 비장기능이상, HIV 감염자, 화학요법치료로 면역저하유발, 스테로이드 등 면역억제제 한 달 이상 복용, 기타 면역억제 치료자

임산부

59개월 이하 소아


Q3. 신종인플루엔자 위험집단에 해당하는 사람은 어떻게 하여야 하나요?

- 만약 신종인플루엔자 의심 증상이 나타났거나 환자와 가까이 접촉한 후에는 즉시 의료기관에서 진료 받으시고 의사의 판단에 따라서 항바이러스제(타미플루, 리렌자)를 복용하십시오.
- 항바이러스제 복용은, 증상이 시작 후 48시간 내에 복용하는 것이 가장 좋습니다.

Q4. 위험집단에 해당되지 않는 건강한 성인의 경우는 어떻게 하여야 하나요?

- 신종인플루엔자 바이러스는 대개 가벼운 병을 유발하기 때문에 굳이 항바이러스제를 복용할 필요는 없습니다.
- 증상들이 사라질 때 까지 집에서 쉬면서 진통제를 드시고, 많은 양의 수분을 섭취하십시오.


Q5. 신종플루 검사는 어디에서 어떻게 받을 수 있습니까?

- 뚜렷한 인플루엔자 증상(37.8℃ 이상의 발열과 기침 콧물 인후통 등)이 없는 한 검사는 권장되지 않으며, 경증인 경우 대증적인 치료를 통해 쉽게 호전될 수 있습니다.
- 그러나 평소에 건강하였으나 폐렴 등 호흡기 질환으로 인하여 중증(입원)으로 진전된 경우 우선적으로 신종플루 감염에 검사를 권장합니다.
- 검사는 민간의료기관에서 받으실 수 있으며 검사 가능한 의료기관은 질병관리본부 홈페이지(http://cdc.go.kr) 를 통해 확인하실 수 있습니다.


Q6. 신종플루가 의심됩니다. 항바이러스제를 투약받을 수 있나요? 또 항바이러스제를 투약받으려면 어느병원을 방문하여야 하나요?

- 신종플루 감염이 의심되는 모든 분들이 항바이러스제를 투약할 필요는 없으며, 증상이 경미하신 분들은 의사의 처방에 따라 대증적인 치료를 받으시면 쉽게 회복할 수 있습니다
- 항바이러스제는 중증환자, 항바이러제 처방을 받지 않으면 심각한 이상을 초래할 수 있는 질환을 가지신 분들에게 우선 투약됩니다. 항바이러스제 처방은 전국 의료기관에서 가능합니다. 단 전국 보건소 및 거점의료기관은 의약분업 예외로서 원내 처방이 가능합니다


Q7. 신종인플루엔자 A(H1N1)를 예방을 위해서는 어떻게 해야 하나요?

- 외출 후에는 반드시 흐르는 물에 비누를 사용하여 손을 깨끗하게 씻으시기 바랍니다.  
- 재채기나 기침을 할 경우에는 화장지로 입과 코를 가리고, 화장지를 버린 후 손을 깨끗하게 씻으십시오.
- 손을 자주 씻고, 손으로 눈, 코, 입을 만지는 것을 피하십시오.
- 발열이나 호흡기 증상 등이 있는 사람과는 접촉을 피하고 마스크를 착용하십시요


Q8. 해외여행을 계획하고 있는데 어떻게 하여야 하나요?

- 현재 질병이 있는 사람들은 회복될 때까지 국제 여행을 미뤄야 합니다.
- 기업이나 학교 등에서 신종인플루엔자 위험집단에 해당하는 직원들은 해외출장을 자제하여야 합니다.


Q9. 신종인플루엔자 예방접종은 언제 접종받을 수 있습니까?

- 현재 생산능력을 갖춘 유수의 제약사들이 신종인플루엔자 예방접종 백신 개발에 노력하고 있습니다.
- 국내에서는 유행 시기 이전에 신속하고 안전하게 우선 접종자에 대해서 예방접종이 이루어지도록 현재 최선을 다하여 준비하고 있습니다.


Q10. 신종인플루엔자 예방접종은 안전할까요?

- 모든 백신은 일단 백신 검정 과정에서 안전성에 대한 검증이 이루어지고 출하되며 또 가장 안전하게 접종이 이루어지게 될 것입니다.


Q11. 임산부인 경우 신종 인플루엔자 증상이 의심되면 어떻게 해야 하나요?

- 발열과 호흡기 증상이 있으면 평소 다니던 산부인과 보다는 시도에서 지정한 치료거점병원에서 진료 받도록  합니다.
- 임산부는 고위험군에 속하여 중증으로 진행될 수 있으니 더욱 주의가 필요합니다.
- 의심단계가 되면 실험실 최종 진단 이전이라도 바로 항바이러스제를 투약하여야 합니다.

'퍼담기' 카테고리의 다른 글

신종인플루엔자A(H1N1) 인체감염증 진단 기준  (0) 2009.08.31
신종 플루 바로 알기 Q&A  (0) 2009.08.31
심장이 없어  (0) 2009.08.28
STARCRAFT2  (0) 2009.08.17

+ Recent posts

티스토리 툴바