토요일, 3월 20, 2010

[독서광] 경제학 콘서트2



2007년 11월에 경제학콘서트1에 대한 서평을 올리고 거의 2년 반만에 2탄 서평을 올리게 되었다. 그렇다면 과연 형만한 아우가 있을지 차근차근 살펴보기로 하자. 결론부터 말하자면 1편보다는 2편이 좀더 사람들의 이목을 끌만한 내용이 많다는 생각이다. 1장부터 섹스와 AIDS 이야기로 시작해 3장 멋진 여자가 평범한 남자와 결혼하는 이유(낄낄)과 4장 회사가 당신에게 알려주지 않는 연봉의 비밀을 거쳐 7장 도시에서 영리하게 살아가기에 이르기까지 평상시에 합리적이지 못하다고 생각했던 여러 가지 현상을 합리적으로 설명하려고 나름 신경을 쓴 흔적이 보인다.



이 책은 논리 전개 방식에서 게임 이론에 상당히 많이 의존하고 있지만, 폰 노이만 방식(낄낄)이 아니라 토머스 셸링을 따르고 있다. 셸링은 수학과 논리가 아니라 수학으로는 보이지 않는 '초점(focal point)'에 의해 인간의 전략적 상호 작용이 결정된다고 주장했다. 게임 이론 자체가 잘못되거나 문제가 있다는 말이 아니라 인간의 상호 작용 대부분이 모호함으로 가득차 있기에 초점을 이용해 앞으로 어떤 일이 일어날지 일어나지 않을지를 알려주는 지침으로 삼아야 한다는 말이다. 본문 예를 한번 볼까?



노조 대표는 임금 협상에서 유리한 고지를 차지하기 위해 조합원들이 10퍼센트 미만의 임금 인상률은 받아들이지 않을 것이라고 공공연히 떠들고 다닐지도 모른다. 10퍼센트는 수학적으로 중요한 숫자가 아니다. 폰 노이만이라도 '10퍼센트'라는 숫자가 나온 기준을 찾지 못했을 것이다. 그러나 셸링은 일단 10퍼센트라는 숫자가 언급되고 나면 이 숫자의 중요성이 커진다는 사실을 알았다.


닥터 스트레인지러브에서 나온 익숙한 소재인 워싱턴-모스크바 핫 라인(긴급 직통 전화)도 셸링이 제안했다고 한다. 냉전의 한 복판에서도 핫 라인 운영자들은 매일 인사말을 주고 받으며 연결이 끊어지지 않도록 노력했고, 그 결과 빠르고 신뢰할만한 의사소통이 가능하도록 함으로써 지구 멸망(?)을 피하도록 만들었다고 볼 수도 있겠다. 셸링이 2005년 노벨 경제학상을 받으며 한 말은 이를 뒷받침한다.



지난 반 세기 동안 일어났던 가장 극적인 사건은 일어나지 않았던 사건이다. 우리는 분노에 휩싸여 핵무기를 터뜨리는 사고 없이 지난 60년을 살았다.


이 책에서 이런 이야기만 계속해서 나왔다면 읽다가 집어 던질 가능성이 높겠지만 셸링의 이론을 활용해서 여러 곳에 응용을 하고 있기에 '강남에 이쁜 여자가 많은 이유', '나보다 못생긴 내 친구가 어여쁜 아가씨를 친구로 두는 이유', '놀고 먹는듯이 보이는 사람이 매일 밤새는 나보다 월급을 많이 받는 이유', '강남 집값이 지칠줄 모르고 오르는 이유', '골드 미스가 인기가 없는 이유'가 궁금하다면 이 책을 읽어보기 바란다. 뭐 이 책 내용에 동의하든 동의하지 않든 지엽적이라도 "아하~ 그렇군!"하는 순간이 몇 번 올테니까.



EOB

일요일, 3월 14, 2010

[일상다반사] 클린 코드: 애자일 소프트웨어 장인 정신



작업이 거의 1년 정도 지연된 끝에 결국 해님과 함께 번역한 클린 코드 번역서가 출간되었다. 로버트 C. "엉클 밥" 마틴이 쓴 이 책은 자바 프로그래머를 대상으로 코드를 항상 깨끗하게 유지하는 구체적인 방법을 다양한 사례와 (경험으로 정리한) 패턴을 들어 설명한다.



자바 쪽으로 치우쳤고 너무 자의적인 이야기를 늘어놓는다고 싫어하는 분들도 계시겠지만, 그래도 일단 (속는 셈치고) 한번 읽어보면 실제로 프로그램을 작성하고 개선하는 과정에서 많은 도움이 되리라는 생각이다. 이 책에서 다루는 내용은 다음과 같다.




  1. 좋은 코드와 나쁜 코드를 구분하는 방법
  2. 좋은 코드를 작성하는 방법과 나쁜 코드를 좋은 코드로 바꾸는 방법
  3. 좋은 이름, 좋은 함수, 좋은 객체, 좋은 클래스를 작성하는 방법
  4. 가독성이 높아지도록 코드 형식을 맞추는 방법
  5. 코드 논리를 흩뜨리지 않고서 완벽한 오류 처리를 구현하는 방법
  6. 단위 테스트와 테스트 주도 개발을 적용하는 방법


여느 자기 개발서(?)와 유사한 책과는 달리 읽을 순간에만 기분좋게 만드는 이론적인 내용이 많으리라고 생각하면 오산이다. 이 책은 중반 이후부터 실제 코드 예를 분석하는 내용이 대부분이므로 코드 흐름을 잘 쫓아가며 읽어야 한다. 따라서 가벼운 기분으로 출퇴근 시간에 읽기에는 조금 무거운 책이라고 보면 틀림없겠다. 온라인 서점에는 역자 서문이 올라와 있지 않기에 여기에 독후감을 대신해 정리해보았다.




이 책을 읽고 난 다음에 한 동안 프로그램을 짜기가 싫어졌다. 급하다고 허둥지둥 서둘러오면서 온갖 나쁜 코드를 만들어온 스스로가 이유 없이 미워지기도 하고 자신감도 잃어버렸다. 아직까지 완벽하게 회복했다고 말하면 거짓말이리라. 하지만 늦었다고 생각했을 때가 가장 빠를 때라 정신을 차린 다음에 요즘도 계속해서 프로그램을 짜고 있다. 하지만 과거와는 달리 조금 더 나아진 방법으로 코드를 만들기 위해 의식적으로 신경을 쓴다.

이 책은 자바 프로그래밍 언어를 사용해서 프로그램을 작성할 때 자기도 만족스럽고 남도 만족스럽도록 깨끗한 코드를 작성하는 방법을 소개하고 있다. 뭐 여기에 엄청나게 위대한 코드 스타일이나 여태껏 아무도 발견하지 못한 비법이 숨겨져 있다고 생각하면 곤란하겠지만, 평상시에 놓치기 쉽고 실수하기 쉬운 여러 가지 패턴을 실제 예를 들면서 소개하고 있기에 어느 정도 자바 프로그램에 익숙한 사람이 보면 느끼는 바가 많을 것이다.

우리가 프로그램을 짜다 보면 코드를 쓰는 시간보다 (남은 물론이고 자신도 정신이 하나도 없이 어지럽힌) 코드를 읽는 시간이 훨씬 더 많다는 사실을 알고 있다면 이 책에서 제시하는 보이스카웃 규칙을 다를 모든 규칙에 앞서 특히 신경을 써서 봐야 한다. 보이스카웃 단원들에게 야영장에 들어올 때보다 나갈 때 더 깨끗한 상태로 만들 의무가 있다면, 우리 개발자들에게는 체크아웃해서 코드를 꺼낼 때보다 체크인해서 코드를 넣을 때 더 깨끗한 상태로 만들어야 할 의무가 있다. 기능 개선의 낭만적인 표현인 유지보수 작업으로 인해 모두들 신경 쇠약에 걸리고 있는 주변을 보면 이런 규칙의 중요성이 더욱 가슴에 와 닿을 것이다.

이 책 앞 부분에서 몇 가지 패턴과 규칙을 익혔다면 저자 머리 속에서 코드를 정리하는 흐름에 따라 코드를 깔끔하게 정리하는 후반부에 집중하도록 하자. 단편적인 코드 스타일과 코드 기법을 다루는 책은 시중에 제법 나와 있으나 의식의 흐름을 그대로 투영해 완결된 코드를 대상으로 차음부터 끝까지 리펙터링하는 진풍경을 다루는 책은 찾아보기 어렵기 때문에 이 책이 독자 여러분에게 주는 가치는 아주 특별하리라.


이 책이 절대적인 진리를 담고 있다거나 이 책만 읽으면 100% 깨끗한 코드를 작성할 수 있다고 믿으면 곤란하다. 늘 그렇듯 핵심은 '실천'에 있기 때문에 자신만의 길을 찾아 계속해서 갈고 닦고 노력하지 않으면 잠시 기분 좋았다가 일상으로 돌아가자마자 다시 번뇌에 휩싸이는 악순환이 반복될테니까...



EOB

월요일, 3월 01, 2010

[독서광] 질병 판매학



이 책은 처음 제목에서 상상한 바와는 달리 다국적 기업에 얽힌 온갖 비리와 악행을 폭로하기 보다는 질병을 세련되고 정교하게 마케팅 수단으로 삼는 방법에 대해 다루고 있다. 따라서 이런저런 뒷 이야기를 까발리는 재미가 떨어지므로(실제로 저자는 다국적 기업의 못마당한 마케팅 태도에 대해 비판하는 와중에서도 중립적인 태도를 취하려고 무지 노력한다.) 책 띠지에 나온 '충격 보고서'까지는 가지 못한다. 하지만 다국적 기업의 표본인 거대 제약사가 수행하는 마케팅에 대해서는 책을 다 읽고나면 어느 정도 감이 잡을 수 있으리라 본다.



바쁜 애독자 여러분을 위해 이 책의 내용을 간단하게 요약하자면, 건강한 사람에게 약을 팔기 위해 없는 병도 만들어 내고, 특정 증상을 특정 질환의 특징으로 좁히고, 교묘하게 병명을 바꿈으로써 약으로 완치할 수 있다는 착각을 불러일으키고, 기존에 알려져 있지 않은 (흔치 않은 질병을) 캠페인 형태로 대중에게 널리 알리고, 식품의약국, 대학, 연구자들에게 도넛부터 시작해서 연구자금까지 막대한 $을 퍼부어 우호적으로 만드는 다양한 마케팅 기법을 고콜레스테롤, 고혈압, 골다공증, 과민성 대장 증후군, 우울증, 월경 전 _불쾌_장애, 폐경, 사회불안장애, 주의력결핍장애, 여성 성기능 장애를 예로 들어 설명한다고 보면 된다.



책을 읽다보면 다소 따분한 느낌이 오는데, 회사와 질병만 다르지 사실상 거의 유사한 시나리오가 반복되기 때문이다. 통계 자료 조작, 자신들에게 유리한 부분만 언급, 부작용에 대해서는 문제가 생길 때까지 함구, 사고 터졌을 경우 입막음, 유명인을 활용한 질병 전파, 오피니언 리더를 활용한 지역 사회 여론 조장 등 각 장마다 비슷한 이야기가 계속해서 펼쳐지고 그 와중에서 피해는 우리 모두가 지게 된다(환자 아닌 환자의 고통, 의료비 상승으로 인해 사회 보장 제도의 여건 악화).



이 책에 나오는 양심적인 의사들은 하나같이 약으로 특정 질병이 완벽하게 치료된다는 착각을 사람들에게 불러일으키는 점에 대해 경고한다. 사실상 적절한 운동과 건강 관리가 뒷받침되지 않는 약물 사용은 그 자체만으로 실질적인 효과를 거두기가 극히 어려울 뿐더러 건강한 사람까지 약물을 사용함으로 인해 얻게되는 부작용도 만만하지 않기 때문이다. 물론 적절한 약물 사용으로 진짜 환자를 고통에서 구원해준다는 반론도 만만치 않지만(대부분 이런 반론은 제약사 연구 자금을 얻어 연구한 쪽에서 나온다) 어디까지 환자로 규정해야 하는지를 두고 다국적 기업과 시민단체가 벌이는 갑론을박을 보고 있으려면 진실은 저 건너 편에 있다는 생각도 든다.



이렇게 약을 두고 '충족되지 않은 수요'와 '충족된 불필요한 수요' 사이에 벌어지는 논쟁에서 제 3 국가에서 사용하는 효과적인 말라리아 치료제는 '충족되지 않은 수요'임에 틀림이 없지만 막상 다국적 기업들은 관심을 보이지 않는다. '수요' 문제가 아니라 '돈' 문제가 아닐까? 제약사들도 자선 사업이 아니라 실패 확률이 비교적 높은 일종의 벤처(?)를 하다보니 한 몫 잡아야 한다는 사실은 납득이 가지만 소비자를 속이고 기만하는 행위에 대해서는 괴씸한 생각이 저절로 든다. 여튼 최첨단 마케팅에 속지 말고 화끈한 약 선전일수록 한번 더 의심하는 습관을 기르자. 자기 건강은 자기가 지켜야 하기에...



EOB