월요일, 3월 30, 2009

[독서광] 행동경제학: 경제를 움직이는 인간 심리의 모든 것



보통 경제학에서는 사람을 완벽한 모델로 보고 공식을 만들고 이론을 수립하는 경향이 있다. 물론 경제학에서 _학_자가 학문을 의미하므로 어느 정도 이상적인 가정은 당연하긴 하지만, 사람은 완벽하지 않기 때문에 이론과 실제 사이에 거리가 생기는 듯이 보인다. 이 책은 인간 심리를 반영해서 경제학을 설명하는 이론인 행동경제학 입문서라고 보면 틀림없겠다.



이 책에는 확률/통계와 관련된 문제 뿐만 아니라 사람 심리를 이용하는 다양한 문제가 많이 나오는데 몇 가지를 소개해보겠다.



집 근처에 새로 한 가족이 이사를 왔다. 아이가 2명 있다는 사리만 알고 있지만, 아들인지 딸인지는 모른다.

1. 이웃집 부인에게 '딸이 있습니까?'라고 물었더니 대답은 '네'였다. 다른 한 아이도 딸일 확률은 얼마인가?

2. 이웃집 부인에게 '큰아이가 딸입니까?'라고 물었더니 대답은 '네'였다. 또 한 명도 딸일 확률은 얼마인가?

3. 이웃집 부인이 딸을 1명 데리고 걷고 있는 모습을 목격했다. 다른 한 명의 아이도 딸일 확률은 얼마인가?



1. 당일 티켓이 50달러인 콘서트장에서 티켓을 사려는데 50달러짜리 지폐를 잃어버린 사실을 알았다. 50달러를 지불하고 콘서트 티켓을 구입하겠는가?

2. 전날 50달러를 지불하고 산 티켓을 가지고 콘서트 장에 갔는데 그 티켓을 잃어버린 사실을 알았다. 당일 티켓 가격이 50달러이면 티켓을 살 것인가?


본문에서는 대충 이런 방식으로 각 장마다 우리가 일반적으로 느끼는 현실과 실제 계산에 따른 사실을 구분해서 설명하고 있다. 합리적이지 못한 인간을 가정하고 인간의 선택과 판단, 심리 상태에 기초해서 현실적인 경제학을 설명한다는 점이 기존 경제학 분야와 다른 접근 방법이다. 물론 어느 정도 경제학 지식이 있고 수학적인 지식이 있는 사람들은 이 책에서 소개하는 내용이 그다지 신기하지 않을 가능성도 있으므로, 표지 뒷면에 나온 "2002년 노벨 경제학상 수상 이론 '행동경제학'을 깊이 있게 해설한 국내 최초의 대중적 입문서!"라는 선전 문구에 속아 넘어가면 곤란하겠다.



책은 크게 7장으로 구성되어 있다. 1장은 경제학과 심리학의 만남을 다루는 탄생, 2장은 인간은 제한된 합리성으로 행동하기 때문에 발생하는 합리적 결정의 어려움, 3장은 휴리스틱과 바이어스를 다루는 '직감'의 기능을 설명한다. 4장은 프로스펙트 이론과 리스크, 5장은 프로스펙트 이론과 소유물, 6장은 프레이밍 효과와 선호도, 7장은 근시안적인 마음과 시간 선호를 다룬다. 목차를 보면 알겠지만 역시 심리학 + 경제학을 섞어 놓은 느낌이 든다.



본문 중에서 기억 남는 부분 하나를 소개하면서 마무리를 하겠다.



슈왈츠와 워드는 무엇보다 최고를 추구하는 성향이 있는 '최대화 인간'과 사이먼에서 착상을 얻은 '적당히' 만족하는 '만족화 인간'이 있다고 설정하고, 최대화 인간과 만족화 인간의 판정법을 고안하였다.

최대화 인간은 선택대안이 증가하면 그것을 자세히 검토하고, 더 나은지 아닌지를 확인하지 않으면 적성이 풀리지 않지만, 만족화 인간은 일단 적당한 선택대안을 발견하면 선택대안이 증가해도 신경을 쓰지 않는다. 따라서 최대화 인간은 선택의 결과에 대한 충실도가 낮을뿐만 아니라 후회하는 경향이 있으며, 대게 행복도를 낮게 평가한다는 지적을 받고 있다.


'소프트웨어 컨플릭트'를 쓴 로버트 L. 글래스는 복잡한 문제를 풀기 위해서는 최대화 기법이 아니라 만족화 기법을 사용해야 한다고 말하고 있는데, 경제학 책에서 유사한 내용을 보니 조금 당황스러웠다. 여러분은 소프트웨어를 만들고 판단을 내릴 때 어떤 방법을 사용하고 있는가? :P



주의: 일본 사람이 지었기 때문에 아기자기한 면은 있지만 책을 읽은 도중에 잡스럽다는 느낌을 받을지도 모르니, 미리 본문 전개 방법을 살펴보고 구입하는 편이 좋겠다고 생각한다.



EOB

일요일, 3월 22, 2009

[일상다반사] 1만시간 법칙 추가 설명

1만 시간 법칙에 대한 오해라는 글을 읽다보니, 사람들이 1만시간 법칙에 대해 오해를 많이 한다는 지적에 100% 동감한다. 아웃라이어를 읽다보면 무조건 시간만 때려부으면 성공할 수 있지 않을까라고 착각이 들기도 하지만, 실제로 그렇게 단순한 문제가 아니다.



좀 극단적인 예를 들어보자. 테니스 백핸드와 포핸드를 1만시간 동안 연습한다고 세계 최정상급 테니스 선수가 되지는 못한다. 물론 기교, 전략, 전술, 편법 등은 기본기 위에서만 가치가 있기 때문에 최정상급 선수들조차 기본기를 다지는 과정에 많은 공을 들인다. 하지만 최정상급 선수들은 항상 목표로 삼은 방향을 향해 기존에 쌓았던 경험을 토대로 계속해서 자신을 계발하는 특성이 있다. 매 경기마다 전략적으로 접근하며 기본에 벌어졌던 경기를 분석하고 또 분석한 다음에 새로운 전략을 수립해서 다음에 똑같은 상대편(어차피 특정 분야 바닥은 좁다)과 붙을 경우를 철저하게 대비한다. 이게 바로 1만시간을 제대로 이해하기 위한 핵심 열쇠다. 아무런 목적 의식 없이 1만시간을 때려부었다고 해서 전문가가 되어 창의력을 마음껏 펼친다고 생각하면 오산이다. 강남 학군이 뛰어난 이유가 바로 여기에 있다. 전략적인 방법으로 공부하도록 유도하고 지속적으로 피드백을 줄 수 있는 선생과 동료 학생들이 사방에 널렸기 때문이다.



직전에 올린 아웃라이어 서평에서 미장원 원장선생님 예를 든 이유는 자기가 하는 일 = 자기가 하고 싶어하는 일 = 자기가 목표하는 일이 동일하기 때문에 하루 10시간 투입이 고스란히 전문가적인 소양을 쌓는 시간으로 투입되었기 때문이었다. 옆에서 가만히 살펴보니 이 원장 선생님은 기계적으로 머리를 자르는 대신에 과거 경험했던 특이한(?) 손님 머리카락 특징을 기억하고 있다가 새로운 손님이 오면 번개처럼(!) 과거 데이터베이스를 검색해서 유사점과 차이점을 분석하고 전략을 잡는 듯이 보였다. 2~3달 정도 미세 조정 끝에 머리카락을 길들이는 솜씨를 보고 20,000시간에 걸쳐 의도적으로 축적해 놓은 데이터베이스의 위력에 놀랐을 따름이다. 솔직히 동네 미장원을 방문해보면 20,000시간이 아니라 50,000시간이 넘게 한 우물을 파신 분들도 많이 계시겠지만, 창의력과는 거리가 먼 솜씨(?)를 너무나도 많이 봤다(좌/우 머리 숱 밀도가 다르기 때문에 B급 머리카락을 깎기가 힘들다고 원인까지는 파악하는 사람은 봤지만... 그 이후 속수무책).



소프트웨어 개발도 마찬가지라서 단순히 회사에서 시간만 보낸다고 해서 그 분야 전문가가 되기는 정말 어렵다. 항상 의식적으로 목표를 잡고, 이 목표를 달성하기 위해 쌓은 경험을 응용해보고, 응용 과정에서 부딪힌 난관과 실패를 다시 피드백 하는 방법으로 선순환 단계를 지속적으로 밟지 않는 이상 1만시간이 아니라 무한대 시간을 퍼부어도 창의력을 발현할 수 있는 수준에 이르지 못한다.



자 그렇다면. 특정 분야에 전문가로 자리잡기 위한 여러분 목표는 무엇인가? 창의적인 전문가가 되기 앞서 구체적인 목표와 실천 강령부터 점검해볼지어다.



EOB

일요일, 3월 15, 2009

[독서광] 신과 거인의 이야기 '북유럽 신화'



학창 시절에 nethack이라는 게임에 흠뻑 빠져서 중간/기말 고사도 말아먹은 적이 있었다. 옌더의 애물렛을 찾으러 온 동굴을 찾아다니던 시절이 그리워지는구만... 어쨌거나 nethack을 하면서 어떻게 상상력이 이렇게 풍부한지 감동 물결에 휩쓸렸었는데, 이번에 우연히 읽게 된 신과 거인의 이야기 '북유럽 신화'를 보면서 감을 잡았다.



초등학교 용으로 만드느라 상당히 순화된(?) 내용이 들어있긴 하지만 '북유럽 신화'는 북유럽쪽 정서를 제대로 전달하는 글과 그림(페이지를 넘길 때마다 나오는 그림이 아주 뛰어나다)을 담은 어른들이 읽어도 재미있는 이야기임에 틀림이 없다는 생각이다. nethack에서 나오는 각종 무기(예: 번개 망치인 묠니르(Mjolnir))를 비롯해서 익숙한 각종 신과 괴물 등이 등장하며(무지막지한 여전사인 발키리 유래도 알았다. 낄낄...) 아기자기한 에피소드가 계속해서 이어지므로(김용이 쓴 무협지를 읽는 느낌도 들었다) nethack 애호가라면 일단 이 책을 손에 드는 순간 끝을 봐야할거다(주의: 판형이 아주 커서 지하철에서 읽으면 사람들 주목을 받기가 딱 알맞다. 그냥 집에서 읽어야 할 듯.). 신들이 벌이는 마지막 최후의 전쟁인 라그나뢰크가 너무 짧아서 무척 아쉽긴 하지만 텍스트 기반 게임인 nethack과 마찬가지로 머리 속에서 알아서 물고 뜯고 싸우므로 어떻게 보면 영화보다 더 실감이 날지도 모르겠다. ;)



이 책을 영화로 만들면 진짜로 끝내주겠다는 생각을 잠시 해봤지만... 이 책에 나오는 등장 인물이 워낙 많고 개성도 다양하며 괴물 종류도 너무 많아서 영화화하기에는 힘들지도 모르겠다.



EOB

일요일, 3월 08, 2009

[독서광] Top 100 Best Software Engineering Books, Ever를 읽고 책 정리...

Top 100 Best Software Engineering Books, Ever라는 블로그를 읽고서 B급 프로그래머도 한번 읽은 책을 정리해보았다. '평가' 항목은 그냥 재미니 참고로 삼기 바란다.








































































































































































































































저자제목보유평가
Steve McConnellCode Complete: A Practical Handbook of Software Construction 원서강추
Elisabeth Freeman, etc.Head First Design Patterns미보유N/A
Steve McConnellRapid Development 원서,한국어판강추(참고: B급 프로그래머 = 역자 )
Erich Gamma, etc.Design Patterns: Elements of Reusable Object-Oriented Software원서추천
Bruce SchneierApplied Cryptography: Protocols, Algorithms, and Source Code (2nd Edition)미보유N/A
Robert C. MartinAgile Software Development: Principles, Patterns and Practices미보유N/A
Joel SpolskyJoel on Software원서,한국어판강추(참고: B급 프로그래머 = 역자 )
Tom DeMarco, Timothy ListerPeopleware: Productive Projects and Teams (2nd Edition)한국어판강추
Frederick P. BrooksThe Mythical Man-Month, Anniversary Edition (2nd Edition)원서강추
Martin FowlerRefactoring: Improving the Design of Existing Code미보유N/A
Mike CohnAgile Estimating and Planning한국어판강추
Alistair CockburnWriting Effective Use Cases미보유N/A
Bertrand MeyerObject-Oriented Software Construction (2nd Edition)미보유N/A
Steve McConnellSoftware Estimation: Demystifying the Black Art원서추천
Mike CohnUser Stories Applied: For Agile Software Development미보유N/A
Donald E. KnuthThe Art of Computer Programming, The, Volumes 1-3 Boxed Set (2nd Edition)1번 한국어판 보유추천
Martin FowlerPatterns of Enterprise Application Architecture미보유N/A
Jeffrey FriedlMastering Regular Expressions원서보통
Andrew Hunt, David ThomasThe Pragmatic Programmer: From Journeyman to Master원서, 한국어판강추
Karl E. WiegersSoftware Requirements (2nd Edition) 원서읽는 중
Craig LarmanApplying UML and Patterns (3rd Edition)미보유N/A
Alistair CockburnAgile Software Development: The Cooperative Game (2nd Edition)미보유N/A
Gary McGrawSoftware Security: Building Security In미보유N/A
Gregor Hohpe, Bobby WoolfEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions미보유N/A
Tom DeMarco, Timothy ListerThe Deadline: A Novel About Project Management원서,한국어판강추
Craig LarmanAgile and Iterative Development: A Manager's Guide미보유N/A
Eric A. Marks, Michael BellService-Oriented Architecture: A Planning and Implementation Guide for Business and Technology미보유N/A
Thomas H. Cormen, etc.Introduction to Algorithms, Second Edition미보유N/A
Thomas ErlService-Oriented Architecture: A Field Guide to Integrating XML and Web Services미보유N/A
Martin FowlerUML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition)미보유N/A
Kent BeckExtreme Programming Explained: Embrace Change (2nd Edition)미보유N/A
Alan Shalloway, James TrottDesign Patterns Explained: A New Perspective on Object-Oriented Design (2nd Edition)미보유N/A
Grady Booch, etc.Object-Oriented Analysis and Design with Applications (3rd Edition)원서추천
Jim HighsmithAgile Project Management: Creating Innovative Products미보유N/A
Scott BerkunMaking Things Happen: Mastering Project Management (1판은 The art of project management)원서, 한국어판강추(참고: B급 프로그래머 = 역자 )
Jon BentleyProgramming Pearls (2nd Edition)원서읽는 중
Paul Duvall, etc.Continuous Integration: Improving Software Quality and Reducing Risk한국어판추천
Andrew Stellman, Jennifer GreeneApplied Software Project Management미보유N/A
Clemens SzyperskiComponent Software: Beyond Object-Oriented Programming미보유N/A
Arthur J. RielObject-Oriented Design Heuristics미보유N/A
Thomas ErlSOA Principles of Service Design미보유N/A
Mary Poppendieck, Tom PoppendieckLean Software Development: An Agile Toolkit한국어판추천
Ken SchwaberAgile Project Management with Scrum미보유N/A
Ken Schwaber, Mike BeedleAgile Software Development with Scrum미보유N/A
Joshua KerievskyRefactoring to Patterns미보유N/A
Alistair CockburnCrystal Clear: A Human-Powered Methodology for Small Teams미보유N/A
Steve McConnellSoftware Project Survival Guide원서강추
Tom DeMarco, Timothy ListerWaltzing With Bears: Managing Risk on Software Projects한국어판추천
Venkat Subramaniam, Andy HuntPractices of an Agile Developer: Working in the Real World미보유N/A
Kathy SchwalbeInformation Technology Project Management미보유N/A
Randall HydeWrite Great Code: Volume 1: Understanding the Machine한국어판추천
Scott RosenbergDreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software한국어판추천
Cem Kaner, etc.Lessons Learned in Software Testing미보유N/A
Andy Oram, Greg WilsonBeautiful Code: Leading Programmers Explain How They Think한국어판읽는 중
Luke HohmannBeyond Software Architecture: Creating and Sustaining Winning Solutions미보유N/A
Grady BoochUnified Modeling Language User Guide, The (2nd Edition)원서보통
Karl FogelProducing Open Source Software: How to Run a Successful Free Software Project미보유N/A
Michael FeathersWorking Effectively with Legacy Code미보유N/A
Kent BeckTest Driven Development: By Example한국어판추천
Per Kroll, Philippe KruchtenThe Rational Unified Process Made Easy: A Practitioner's Guide to the RUP미보유N/A
Thomas ErlService-Oriented Architecture: Concepts, Technology, and Design미보유N/A
Cem Kaner, etc.Testing Computer Software (2nd Edition)미보유N/A
Frank Buschmann, etc.Pattern-Oriented Software Architecture Volume 1: A System of Patterns미보유N/A
Harold Abelson, Gerald Jay SussmanStructure and Interpretation of Computer Programs - 2nd Edition미보유N/A
Dan PiloneUML 2.0 in a Nutshell미보유N/A
Brett D. McLaughlin, etc.Head First Object-Oriented Analysis and Design미보유N/A
Johanna RothmanManage It!: Your Guide to Modern, Pragmatic Project Management원서읽는 중
James Shore, Shane WardenThe Art of Agile Development원서읽는 중
Brian W. Kernighan, Rob PikeThe Practice of Programming원서강추
Ron Jeffries, etc.Extreme Programming Installed미보유N/A
Scott W. Ambler, Pramodkumar J. SadalageRefactoring Databases: Evolutionary Database Design미보유N/A
Jared Richardson, William GwaltneyShip it! A Practical Guide to Successful Software Projects한국어판추천
Greg Hoglund, Gary McGrawExploiting Software: How to Break Code 미보유N/A
Michael NygardRelease It!: Design and Deploy Production-Ready Software한국어판추천
Edward YourdonDeath March (2nd Edition)원서강추


EOB