토요일, 2월 28, 2009

[일상다반사] 2009년 2월 마지막 디벨로퍼웍스 한국어판 번역 기사

2월에 올라간 디벨로퍼웍스 한국어판 번역 기사를 정리해보았다.





그 동안 디벨로퍼웍스 한국어판 기사에 열렬한 성원을 보내주신 독자 여러분에 아쉬운 소식 하나 전하겠다. 3월부터는 IBM에서 직접 기사를 번역해서 올리므로, 그 동안 독자 여러분을 매주 찾아뵈었던 B급 프로그래머와 해님이 디벨로퍼웍스 애독자 여러분께 작별 인사를 드려야하겠다. 그 동안 보내주신 성원, 격려, 질책에 다시 한번 감사드린다.



EOB

일요일, 2월 22, 2009

[독서광] 아웃라이어: 성공의 기회를 발견한 사람들



오늘은 간만에 창의력 관련 책을 하나 더 살펴보기로 하자. 블링크와 티핑 포인트로 유명한 말콤 글래드웰이 집필한 "아웃라이어"가 주인공이다.



지난번에 소개한 그룹 지니어스생각이 차이를 만든다를 이미 읽은 독자라면 "아웃라이어"를 읽는 순간 서로 상승작용을 일으키는 경험을 하게 되리라는 생각이다. 아웃라이어에서는 전문가다운 역량을 발휘하려면 엄청난 노력과 시간(10년 법칙, 1만 시간 법칙, 등등)을 투입해야 하는 동시에 이렇게 노력과 시간을 투입할 수 있는 환경을 갖추기 위해 어느 정도 운(!)이 따라줘야 한다는 사실을 강조하고 있다.



이 책에서 글래드웰은 지능 테스트 결과나 일시적인 두각은 성공하는 사람의 필요조건은 될지 몰라도 충분조건은 되지 못한다는 주장을 펼친다. 다시 말해, 본문에서도 잠깐 예가 나오는 레이븐스 테스트와 같은 극악 무도한 테스트(이 테스트를 끝까지 풀려고 함부로 덤비지 마시라. 멘사용이라서 아주 머리 아프다)에서 어린 시절에 높은 점수를 딸지라도 지속적으로 지능을 계발하도록 기회를 잡지 못하면 커서는 말짱 꽝으로 끝날 가능성이 높다는 말이다. 실제로 어린 시절에 신동으로 불리던 천재들을 나중에 성년이 되어 추적해보면 대부분 주변 사람들보다 조금 머리가 더 좋을 뿐인 아주 평범한 사람으로 변해있는 경우가 대부분이다.



그래드웰은 이런 현상을 설명하기 위해 중산층 이상 부모가 사용하는 "집중 양육"이 주는 장점을 아네트 라루의 연구 결과를 빌어 강조한다. 라루에 따르면 선천적인 지능인 IQ와 대조되는 후천적인 실용 지능이 있어야 성공의 기회를 스스로 만들어낼 가능성이 높아진다고 한다. 본문을 잠깐 볼까?



중산층 부모는 대개 아이들과 대화하면서 함께 이유를 찾아낸다. 단순히 명령만 하는 것이 아니라 자녀들이 자신의 생각을 말하고 함께 협상하며 어른들에게 질문하기를 바란다. 또한 부유한 부모는 자녀가 학교에서 잘하지 못하면 선생을 찾아가 상담을 하며 아이들 문제에 깊이 개입한다.

반면 가난한 부모는 권위 앞에서 겁을 먹는다. 그들은 수동적으로 반응하며 뒤편에 물러서 있다. 자식 교육은 선생님 몫이지 부모의 일이 아니었다.

라루는 중산층 부모 스타일을 '집중 양육'이라고 불렀다. 이는 적극적으로 아이들의 재능, 의견, 기술을 길러주고 비용을 대는 행위를 말한다. 대조적으로 가난한 부모는 '자연적인 성장을 통한 성취'를 선택하는 경향이 있다. 자녀를 돌봐야 하는 책임은 지지만 아이들이 알아서 성장하고 스스로의 재능을 계발하도록 내버려둔다.

중산층 자녀는 자신의 개인적 선호를 충족시키는 것은 물론 어떤 기관의 상황을 적극적으로 활용할 권리가 있는 것처럼 행동한다. 또한 그들은 정보를 공유하고 관심을 요구하는 일에 편안함을 느낀다. 4학년만 되어도 이익을 얻기 위해 자기 목소리를 낼 줄 안다.


글래드웰은 벼농사를 짓는 중국, 한국, 일본 3개국 학생들이 수학을 잘하는 이유도 놓치지 않고 설명한다. 뭐 당연한 일이지만 가난한 농부들이 연간 3천 시간을 쏟아부으며 애지중지 벼를 기르는 나라의 후손들이자 수업일수가 180일인 미국과 비교해서 220일에서 240일에 이르는 아시아권 학생들이 성취도나 문제 풀이 능력이 떨어진다고 말하면 1만 시간 법칙 자체도 거짓말이 되지 않을까? 학기 중에는 맥을 못추던 상류층 자녀들이 방학만 지나고 오면 거의 방목에 가깝게 내팽겨쳐진 중산층과 빈곤층 학생들을 읽기와 수학 성적에서 가볍게 눌러버리는 통계 자료를 보면 공포에 가까운 전율이 느껴질지도 모르겠다. 강남 불패 신화는 허구가 아니었다!



자, 이제 패닉 상태에서 벗어나 차분하게 이 책을 읽으면서 정말로 전문가가 되기 위해 우리는 환경을 얼마나 잘 이용(활용)해왔으며 얼마나 질과 양적 측면에서 시간을 자기 계발에 집중 투입했는지를 다시 한번 고민해보자.



뱀다리: 이 책을 다 읽고 나서 단골 미장원에 들렀다. 이 미장원은 B급 프로그래머 머리를 우주소년 아톰 형태에서 벗어나게 만든 놀라운 능력을 소유한 원장 선생님이 운영하고 있으며, 요즘 같은 불경기에도 예약 안 하면 원장 선생님 솜씨를 구경하기 어렵다. 잠깐 대화를 옮겨보겠다.


B: 원장 선생님, 지금까지 손님 헤어스타일을 챙기면서 투입한 시간이 어느 정도 되는지요?
원장 선생님: 글쎄요, 한번도 생각 안 해봤어요. 그런데 왜 물어보시죠?
B: 만시간 법칙이라고, 어떤 분야에서 절정 고수가 되려면 1만 시간을 투자해야 한다는 이야기를 책에서 읽었거든요. 그러면 하루에 몇 시간 일하세요?
원장 선생님: 하루 10시간씩 초보 견습생 시절을 제외하고 12년 동안 꼬박 이 일만 했지요.
B: 일요일이랑 점심 시간 빼고 주당 50시간이라고 가정하면, 1년이면 2500시간, 12년이면... 음음음...


EOB

토요일, 2월 14, 2009

[B급 프로그래머] USB 자동 실행 바이러스랑 한판...

요즘 깊이 반성해야 할 일이 좀 생겨서, 매주 하나씩 착한 일을 하기로 했다. 그 중에 첫번째로 악질적인 USB 자동 실행 바이러스랑 한판 붙은 이야기 좀 해야겠다. 인터넷을 뒤져도 딱히 제대로 된 설명이 없어서 많은 분들이 고생하는 듯이 보이는데, 백신 안 쓰고(아니 쓸 백신도 없다...) 소탕하는 방법을 정리하겠다.



USB 자동 실행 바이러스는 USB 메모리에 옮은 바이러스가 USB 메모리를 꽃는 순간 자동 실행(autorun.inf) 되면서 감염되는 특징이 있다. 따라서 쥐도새도 모르게 감염되며, USB 메모리가 돌아다니는 모든 컴퓨터에 피해를 미친다는 측면에서 파괴력이 아주 강하다.



걸렸을 경우 나타나는 증상은 제각각이지만 숨김 파일 설정을 바꾸지 못하는 현상이 공통적이라고 생각한다. 백업 등을 위해 숨김 파일 속성을 디렉터리에 걸어놓은 분들은 아주 곤란한 상황을 맞이한다. 탐색기 옵션에서 숨김 파일 보기를 켜도 바로 꺼져버리기 때문이다. 물론 이는 표면적으로 드러나는 현상이고 이유없는 IE 멈춤, 탐색기 종료 등과 같은 문제가 펑펑 터지므로 상당히 머리가 아파진다. 게다가 다른 USB 메모리도 감염시켜버리니 회사에 한번 퍼지면 대책이 없다.



여기서 더 큰 문제는 기존 백신이 제공하는 실시간 바이러스 점검을 가볍게 뚫고 지나가버린다는 사실이다. V3나 카스퍼스키 백신도 이를 감지해내지도 못했고 발견하지도 못했고 찾아내지도 못했다. 일부 USB 메모리 전용 백신이 있긴 하지만 역시 변종이 하도 많아서 맥을 추지 못하는 상황이다. attrib 명령으로 속성을 바꾼 다음에 루트 디렉터리에 존재하는 autorun.inf과 여기서 수행하는 .cmd 파일 등을 찾아내어 지우긴 하지만, 사라졌다고 생각하는 순간 곧바로 등장한다. 안전모드 부팅조차도 무기력한 결과를 보여준다. 게다가 프로세스 탐색을 하려고 작업 관리자를 열어서 살펴봐도 안 드러난다. 시스템 서비스에도 등록되어 있지 않은 상황이다. 여기서 진짜 절망을 느낀다.



자, 그렇다면 어떻게 범인을 찾아낼까? 우선 준비물은 루트킷 탐색 도구인 icesword다. icesword를 띄워서 startup을 살펴보는 도중에 아주 이상한 프로그램이 하나 존재한다는 사실을 확인했다. 바로 kvasoft가 만든 kva8wr.exe 파일이다. 파일 설명을 보면 대충 어떤 짓을 하는지 알 것이다(변종이 하도 많아서 정확하지는 않다). 이 파일은 윈도우32 디렉터리에 존재하며, 아까 말한 아주 기가막힌 현상을 초래하는 주범이다. nprotect 때문에 잉카인터넷을 야단 많이 쳤는데 이번에는 도움을 줘서 고맙다는 인사를 남긴다.



이 파일을 지울 수 없다는 사실을 알기에(지우려고 시도하면 그야말로 온갖 장애물을 극복해야 한다), 잠깐 동안 생각하다가 좋은 방법을 하나 찾아내었다. 바로 윈도우 98 멀티 부팅이다. 예전에 설치되어 사용하지 않는 윈도우 98을 소환해서 잠깐 부팅하면 숨김 파일도 볼 수 있고 kva8wr.exe도 지울 수 있으리라... 예상대로 윈도우 98로 부팅하니(파일 시스템이 NTFS가 아니라 FAT32이라는 사실에 감사하자! 만일 NTFS라면 리눅스 멀티 부팅 + ntfs3g 설치가 필요한데 문제는 kva8wr.exe가 NTFS 속성 일부를 이상하게 바꿔놓아 문제가 될 가능성도 있다는 사실이다. 실제로 맥에서 외장 디스크로 열어봤는데, 디렉터리가 하나도 안 보이는 문제점이 있었고, 이는 리눅스에도 유사한 현상이 발생할지도 모른다는 사실을 암시한다. 혹시 이런 식으로 성공한 분이 있으면 다른 분들을 위해 바로 댓글을 달아주시면 감사하겠다.) 문제 파일이 모습을 보인다. 두 번 생각하지 않고 삭제! 만일 동일 윈도우 운영체제를 탑재한 PC가 두 대 있고(한 대 노트북), 외장 HDD가 있다면 문제 HDD를 외장 HDD에 담아서 꽃은 다음에 파일을 삭제해도 무방하다. 단, 반드시 두 번째 정상 PC에서는 USB 자동 실행을 막아야한다.



그리고 정상으로 부팅한 다음에 빈마음님께서 만드신 anti-AutorunVirus로 찌거기를 제거한 다음에, 레지스트리 편집기를 열어서 kva8wr.exe를 검색해서 run 항목에서 제거하자.



하지만 여전히 숙제가 하나 남아있다. 윈도 탐색기 옵션에서 숨김 파일 보기 옵션을 켜도 꿈쩍도 하지 않는 문제는 없어지지 않는다. 최종적으로 해결을 위해 레지스트리를 잠시 살펴보다가 아주 흥미로운 항목을 찾아내었다. 다음 그림을 살펴보자.





SuperHidden Policy 항목을 보면 뭔가 감이 올 것이다. 바로 이 항목을 보고 윈도우 탐색기가 숨김 옵션 설정 변경을 막아버린다. 해결책은 간단하다. 그냥 SuperHidden을 바로 삭제해버리면 끝난다. 삭제 후 탐색기로 가서 숨김 옵션을 바꿔보면 제대로 동작한다.



여러분 환경에 따라 여기 나온 내용이 100% 맞지는 않을 것이다. 하지만 본 내용은 유용한 도구와 점검 포인트를 제공하므로 필요에 따라 충분히 응용이 가능하리라는 생각이다. 지금 이 글을 보자마자 바로 USB 자동 실행을 끄기 바란다. 이 기능을 많이 사용하시는 분들께서 조금 불편해도 바이러스 걸려서 몇 시간 날리는 상황보다는 나을테니까...



그러면 다음 주에도 반성하는 의미에서 독자 여러분에게 도움을 줄만한 내용으로 찾아뵙겠다.



추가: 만일 바이러스 치료 후에 SuperHidden을 삭제했음에도 불구하고 계속해서 파일 숨김 옵션을 바꾸지 못한다면 추가적인 레지스트리 변경을 고려해보기 바란다.



엄청난 힌트: 손놀림이 빠르다면...

c:\>attrib -r -h -s c:\windows\system32\kva8wr.exe 명령 직후
c:\>del c:\windows\system32\kva8wr.exe 명령을 내린 다음에 바로 컴퓨터를 재시작하자. 그러면 외장 하드를 붙이고 뗄 필요도 없다.



EOB

일요일, 2월 08, 2009

[일상다반사] 프로그래머 경쟁력 매트릭스

요즘과 같은 무한 경쟁 시대에 프로그래머로서 여러분 경쟁력은 어떤지? 우연히 Programmer Competency Matrix라는 페이지를 발견하게 되었는데, 경쟁력을 평가하는 4단계 질문이 상당히 재미있다. 질문 분야만 간략하게 한번 정리해보겠다.




  • 전산학

    • 자료 구조
    • 알고리즘
    • 시스템 프로그래밍

  • 소프트웨어 공학

    • 원시 코드 버전 제어
    • 빌드 자동화
    • 테스트 자동화

  • 프로그래밍

    • 프로그래밍문제 분해
    • 시스템 분해
    • 의사 소통
    • 파일 내 코드 조직화
    • 파일 외부 코드 조직화
    • 코드 가독성
    • 코드 방어성
    • 오류 처리
    • IDE 활용
    • API 활용
    • 프레임워크
    • 요구 사항 분석
    • 스크립트 활용
    • 데이터베이스

  • 경험

    • 프로그래밍 언어 경험
    • 플랫폼 경험
    • 업계 종사 기간
    • 전문 분야 지식

  • 지식

    • 도구 지식
    • 언어 지식
    • 코드기반 지식
    • 신기술 지식
    • 플랫폼 내부 지식

    • 블로그



한번 평가해보니 여러분 현재 수준은 어떤지? 앞으로 이 매트릭스를 종종 활용해먹어야겠다(눈치 빠른 독자라면 어디 쓰는지 다 알겠지? 낄낄...).



EOB

화요일, 2월 03, 2009

[독서광] 소프트웨어 예측을 다루는 책 2선

2009년 새해 맞이 이번 달 developerWorks 서평은 '예측' 관련 서적 두 권이다.




  • 소프트웨어 추정: 그 마법을 파헤치다: 스티브 맥코넬이 쓴 전통적인 예측 기법을 다루는 책이다. Rapid Development를 재미있게 읽은 독자라면 중첩되는 내용이 있긴 하지만 즐겁게 읽을 수 있을테다.
  • 불확실성과 화해하는 프로젝트 추정과 계획: 규모 추정, 우선순위, 일정 배치: 애자일 방법을 사용해서 추정과 계획하는 방법을 다루는 책이다. 중간 중간 나오는 일화도 재미있고, 설명도 쉽게 되어 있으므로, 애자일에 심취하지 않은 독자라도 읽을 가치가 있다는 생각이다.


한동안 서평을 뜸하게 올렸는데, 바쁜 일 좀 처리하고 정신 차린 다음에 하나씩 올리도록 약속하겠다.



EOB

일요일, 2월 01, 2009

[일상다반사] 커맨딩 하이츠

석우님의 강력 추천에 따라, 미국 PBS(보스톤 WGBH)에서 만들고 한국 KBS에서 방송한 KBS 신년 경제 기획 - 커맨딩 하이츠: 세계 경제 전쟁 100년을 한 편씩 보고 있다.



퓰리처상 수상작가이자 경제학자 다니엘 여진이 쓴 베스트셀러인 커맨딩 하이츠(한국어 판으로 '시장과 국가'라는 제목을 달고 1999년에 출간되었는데 절판된 모양이다.)를 2002년에 다큐멘터리로 만든 시리즈물인데, 눈과 귀와 머리를 동시에 즐겁게 만들어주는 블록버스터 급 작품이라는 생각이다.



커맨딩 하이츠란 1922년 레닌이 소련 공산당 전당대회에서 처음 사용한 개념으로 한 국가의 경제를 주도하는 기간산업 또는 주도 세력을 의미하는 용어다. 커맨딩 하이츠 시리즈에서는 바로 이 '커맨딩 하이츠를 놓고 벌이는 정부와 시장의 치열한 주도권 다툼을 멋지게 풀어내고 있다.



지금 국가 경제 주도권을 놓고 케인즈 학파와 하이에크 학파 사이에 치열하게 벌어진 이념 전쟁을 다룬 경제이념 전쟁(The Battle of Ideas) 1, 2부까지 보았는데, 정부 중심이냐 시장 중심이냐를 놓고 벌이는 양쪽 진영의 이론적인 토대는 물론이고(여기서 그쳤다면 고리타분한 경제 교과서와 별반 다를 바 없었을테다) 정부 정책에 미친 구체적인 영향력을 알기 쉽게 설명하고 있으므로 머리에 쏙쏙 들어오는 특징이 있다.



KBS에서는 저작권 문제로 다시 보기를 허용하지 않고 있으므로 DVD를 구매하거나 아니면 PBS 홈 페이지에 가서 3부작으로 새로 편집한 동영상을 감상하기 바란다(주의: 영어다! 물론 영어 공부하고 싶어하는 사람들에게는 희소식이 아닐 수 없겠지만 말이다. 낄낄). 아, 노벨 경제학상 수상자인 밀턴 프리드만을 비롯해서 다큐멘터리에 나온 인물들과 인터뷰 한 내용도 놓치지 말자.



여튼 요즘같이 어려운 정치-경제적인 상황에서 눈물만 앞을 가리는데, 이런 다큐멘터리를 보면서 다시 한번 정신을 차려야겠다. 강력 추천한다!



EOB