토요일, 1월 26, 2013

[독서광] 루비 프로그래밍 언어

루비 프로그래밍 언어는 간결하면서도 표현력이 막강한 객체지향형 스크립트 언어로 松本行弘가 1995년에 만들었다. 웹 개발을 위한 오픈 소스 프레임워크인 루비 온 레일즈에 이어 최근에는 시스템 관리 부문의 오픈 소스에서도 많이 사용되면서 인기를 끌고 있으므로 다들 관심이 많을 것이다. 오늘은 오라일리의 'The Ruby Programming Language'의 한국어판인 '루비 프로그래밍 언어'를 소개하고, 부록으로 참고할만한 다른 전자책 링크를 정리해보겠다.

프로그래밍 언어 서적의 마술사인 데이비드 플래너건과 루비의 창시자인 유키히로 마츠모토가 공동으로 집필했기에 기대치가 상당히 높았다. 아니나 다를까 인터넷에서 살펴본 다른 전자책과는 달리 루비 프로그래밍 언어의 철학과 동작 원리를 꼼꼼하게 설명하려고 노력한 결과 루비 프로그래밍 언어에 대한 미묘한 부분까지도 짚고 넘어간다(1.8과 1.9의 차이점에 대해서도 상당히 세부적으로 파고든다). 하지만 기존 스크립트 형식의 프로그래밍 언어(특히 파이썬이나 펄)에 익숙한 개발자이거나 함수형 언어를 이해하는 개발자에게는 좋은 친구로 다가올지 몰라도, 처음으로 스크립트 언어를 배우는 사람이 읽기에는 구성이나 설명 방식이 절대 만만하지 않다. 오라일리 책의 공통적인 특성인 코드 조각 내기로 인해 뭔가를 따라서 진행하고픈 초보자들에게도 장벽은 높기 마련이다. 하지만 손쉬운 지침서만 읽어서는 독학으로 알아내기 어려운 여러 가지 루비 언어의 특성을 설명하고 있기에 일단 쉬운 책부터 한 권 독파하고 이 책으로 넘어오면 어떨까 하는 생각이 들었다.

목차를 보면 '소개' 부분이 나오고 차례로 프로그램 구조/실행 방법, 데이터형/객체, 표현식/연산자, 문장/제어구문, 메서드/proc/lambda/클로저, 클래스/모듈, 리플렉션/메타프로그래밍, 루비 플랫폼, 루비 환경 순서로 설명이 전개된다. 문제는 프로그래밍 서적의 일반적인 특성(?)인 딱딱한 구성으로 인해 마치 K&R의 "The C Programming Language"를 독파하는 각오로 책을 읽어야 한다는 데 있다. 실제 프로그래밍을 배우는 좋은 방법으로 '부딪혀보기'가 있는데, 이 책으로 '부딪히'다가는 온 몸에 멍이 들지도 모른다는 걱정을 해본다(몸이 근질거린다면 뒤에 소개하는 전자책 링크를 먼저 따라가보자.). 게다가 함수형 언어 등에서 아주 유용하게 나오는 개념과 최신 프로그래밍 이론에서 나오는 개념들이 돌직구처럼 던져지므로 절반을 넘기는 지점부터는 상당히 괴로울지도 모르겠다. 루비 자체가 파이썬보다 학습 곡선이 무척 가파르다는 사실을 감안하더라도 책이 다소 어렵게 전개된다는 느낌을 지울 수 없다. 물론 이 책을 다 읽고 나서도 루비스럽게 코드를 작성할 때까지는 상당한 연습과 노력이 필요하다.

번역 상태는 프로그래밍 서적을 번역하면 생기는 동일한 문제가 그대로 등장한다(이 부분은 누가 하더라도 풀기 어렵다). 즉, 읽어도 이해가 잘 안가는 부분이 많으므로 한번 더 읽을 셈치고 일단 읽고 넘어가는 편이 정신 건강에 이로울 테다. 그래도 잘 이해가 가지 않으면 원서도 참고하고 루비 공식 문서도 살펴보고 직접 프로그램도 짜면서 머리가 아니라 몸으로 느끼기 바란다.

애독자 여러분을 위해 읽을만한 루비 관련 전자책(HTML/PDF) 링크를 정리해보았다. 모두 영어라서 부담이 있긴 하지만... 온라인에서 무료로 읽고 예제도 (Copy & Paste로) 바로 실행해볼 수 있다는 장점이 있으므로 필요에 따라 골라서 읽어보기 바란다.

  • 루비 공식 문서: 루비 프로그래밍 과정에서 반드시 참조해야 하는 필수 사이트!
  • Programming Ruby The Pragmatic Programmer's Guide: The Pragmatic 시리즈로 나온 루비 프로그래밍 서적. 간결하면서도 빠짐없다.(난이도: 중하)
  • The Book of Ruby: 전형적인 No Starch 책(난이도: 중).
  • The Little Book of Ruby: 사례 중심의 루비 기본서(난이도: 중하). The Book of Ruby의 경량 버전
  • Poignant Guide to Ruby: 이야기식으로 루비 프로그래밍 기법을 전개(난이도: 중). 문화적인 차이로 인해 영어권 유머에 익숙하지 않는 분들께는 권장하지 않음
  • Ruby User's Guide: 깊이가 얕은 대신 넓은 주제를 사례 중심으로 소개(난이도: 하)
  • Humble Little Ruby Book: 짧고 빠르게 루비를 독파하고픈 사람에게 추천(난이도: 중)
  • The Bastards Book of Ruby: 시원시원한 그림을 곁들여 유머러스하면서도 정곡을 찌르는 내용을 제공(난이도: 중상)
  • Ruby Essentials: 예제 중심으로 쉽게 설명한 루비 입문자용 문서(난이도: 하)
  • Ruby Best Practices: 루비스런 코드를 작성하기 위한 우수 사례 소개(난이도: 최상)

자, 루비 세상으로 출발할 준비가 끝났는가? 즐거운 여행 되시기를 바란다. :)

EOB

토요일, 1월 19, 2013

[독서광] The Art of Software Testing(소프트웨어 테스팅의 정석)

작년 연말에 진행하던 과제와 관련해 테스트를 수행하는 바람에 간만에 테스팅 쪽에 관심이 가고 있었는데 마침 에이콘 출판사에서 테스팅 관련 책을 하나 선물로 주셨다. 바로 테스팅 관련 업계에 종사하시는 분들께서는 한번쯤 읽어봤을지도 모르는 'The Art of Software Testing'이라는 책이다.

이 책을 아마존에서 찾아보면 초판 발행일이 무려 1979년이다. 한국어판 번역서의 기준인 2판은 2004년도에 그리고 가장 최근인 2011년 11월에 3판이 나왔는데, 2판과 3판의 목차를 대조해보니 3판에서는 모바일 쪽 테스팅 기법이 더 추가된 듯이 보인다. 1판에서 2판으로 옮겨갈 때는 상당한 변화가 있었는데, 좀더 최신 프로그래밍 언어(C++, Java), 애자일 개발 방법론 소개, 웹 기반 테스팅 기법 소개 등 나름 시대에 뒤쳐지지 않도록 노력한 흔적이 보였다. 하지만 업무 논리가 비교적 산술 계산과 작업 흐름에 의존적인 MIS 프로그램을 중심으로 내용이 전개되고 있으므로, 요즘과 같이 복잡한 요즘 프레임워크 기반의 각종 개발 기법을 뒤쫓아오기에는 역부족이다. 다소 원론적인 교과서 같다는 느낌이라고 할까나? 여하튼 시대의 흐름에 맞춰 새롭게 리뉴얼하려 했지만 시류를 완벽하게 쫓아가지도, 그렇다고 고전의 반열에 오르지도 못했다는 생각이다.

뭐 이렇게 적고 나면 딱딱한 대학교재처럼 보일지도 모르겠지만 나름 테스팅에 대한 정의, 이론, 역사, 용어 등을 일목 요연하게 정리하고 있으며, 수학적인 방법으로 테스팅을 정형화하는 기법에 대해서도 사례를 들어 설명하기에 개발자들이 자주 저지르는 실수 등을 찾아내기 위한 몇 가지 힌트도 제공하고 있다. 물론 사례 중에 포트란과 PL/I으로 만든 코드가 등장하므로 C와 자바 프로그래밍 언어에 익숙한 개발자들이 보면 당황(!)할지도 모르겠다. 번역 상태를 보면... 용어가 조금 오락가락하고('탁상 점검'했다가 '데스크 체크'했다 한글이랑 영어가 왔다갔다 하는 경우를 몇 번 봤다), 프로그래머 관점에서 "응? 설명이 뭐 이렇게 꼬여있어?(예: 최악의 경우 명령어 처리기에서 프로그래밍 에러는 프로그래밍 처리 에러여야 하고 --> 도대체 이게 무슨 말이야???)"하는 부분도 존재하지만 테스팅 관점에서 보면 읽을만 하다.

결론: 테스팅 관련 분야에 몸담고 있는 분들은 역사적이고 큰 관점에서 가치가 있는 책이다. 하지만 최전방에서 전투를 벌이는 동안 테스트 기법이나 디버깅 기법이 아쉬운 개발자들이라면 다른 좋은 책들이 많으므로 그냥 개인적인 관심사에 따라 참고 삼아 읽어볼만한 수준이라 본다.

토요일, 1월 12, 2013

[독서광] 아마존닷컴 경제학 Amazonomics

처음에 이 책을 접했을 때 국내에서 일반인들에게 그리 인지도가 높지 않은(물론 아는 사람은 다 아는) 아마존을 다루고 있었기에 번역서로 착각했다. 그런데 놀랍게도 페이스북에서 늘 좋은 글을 올려주시는 류영호님이 직접 쓰신 국내서였다. 역시 사람의 고정 관념은 깨지라고 있는 모양이다.

이 책은 인터넷 책방에서 전자상거래로 다시 클라우드 서비스와 전자책 킨들 시리즈를 무기로 플랫폼 사업자로 변신을 거듭하고 있는 아마존에 대해 일목 요연하게 정리하고 있으므로, 아마존의 역사, 전략, 철학, 배경 기술 등을 단시간에 파악할 수 있도록 도와준다. 아마존은 우여곡절을 겪으면서도 끝까지 살아남아 성공한 1세대 벤처 기업에 속하므로, 이 책을 읽으며 아마존의 성장 과정을 차근차근 따라가보면 재미와 지식이라는 토끼 두 마리를 모두 잡을 수 있을 것이다. 거의 300쪽에 달하는 분량이 조금 부담스럽기는 하지만(들고 다니거나 읽기 쉽게 다이어트를 했으면 더 좋았을뻔 했다) 그 동안 쌓아온 아마존의 화려한 업력과 현재 진행형으로 펼쳐지고 있는 각종 사업을 고려해보면 내용을 더 줄이기도 힘들었으리라.

아마존에서 틈만 나면 책을 검색하고 실제로 여러 차례 주문도 해보고, 전자책인 킨들도 써보고, 무엇보다 아마존 클라우드 AWS EC2 서비스를 개발에 적극적으로 활용하는 B급 프로그래머 입장에서 고객의 편의성을 극대화한다는 아마존의 철학은 지름신을 유발하는 지능적인 추천 기능, '원 클릭 구매', 3G로 해변가에서도 책을 내려받도록 지원하는 '킨들'을 접해 이미 알고 있었기에 이 책은 이런 철학을 발전시킨 원동력을 찾는 관점에서 요약 정리 목적으로 좋았다는 생각이다.

하지만 본문을 읽다가 보니 두 가지 아쉬운 점이 있었는데, 바로 AWS에 대한 설명 오류와 아마존의 영향력 증가에 따른 부작용(일례로 추천 과정에서 발생할지도 모르는 고객 프라이버시 침해, 원클릭 서비스로 인한 아마존의 고객 정보 독점 등)에 대한 설명 부족이다. 전문가들도 직접 AWS 환경 하에 프로그램을 만들어보지 않으면 이 서비스가 무엇인지 실체를 알기가 상당히 어려우므로 AWS를 아마존 홈 페이지에서 제공하는 각종 기능을 웹 서비스 형태로 제공한다고 생각하기 딱 좋다. 하지만 AWS product 페이지를 유심히 살펴보면 알겠지만, AWS는 컴퓨팅 자원을 임대해주는 기반 구조(IaaS, Infrastructure as a Service)에 가깝고 Amazon Flexible Payments Service(원 클릭 구매)를 제외하고서는 실제 아마존 홈 페이지에서 제공하는 각종 물품에 대한 정보, 온라인 장터나 재판매를 위한 서비스나 시스템과는 전혀 무관하다. 혹시 이 책을 읽는 독자라면 이 부분에 주의해서 읽으면 좋을 것 같다.

결론: 아마존이라는 회사와 이 회사를 발전시킨 철학과 문화에 대해 궁금한 분들께 추천한다.

뱀다리: 교보문고에서 샘이라는 전자책 대여 서비스를 오는 2월부터 서비스한다는 따끈한 소식이 있다. 책의 소유가 아닌 대여 개념이므로 아마존의 킨들과는 또 다른 사업 모델이므로 사람들이 어떻게 반응할지 상당히 기대된다. 전용 단말은 물론이고 스마트폰에서도 읽을 수 있다니 출시되면 적극 검토해봐야겠다.

EOB

일요일, 1월 06, 2013

[영화광] 라이프 오브 파이(강력한 스포일러 있음)

경고: 일단 들어가기 앞서 이 글에는 강력한 스포일러가 들어있다는 주의 사항부터 짚고 넘어가야겠다. 이 영화를 아직 안 보신 분들께서는 지금 바로 탭을 닫으시기 바란다.

와호장룡을 보신 분이라면 다들 동감하시겠지만, 앙 리(李安) 감독의 연출 실력은 정말 뛰어나다고 봐야 한다. 누가 트렌치 코트에 총이 딱 어울리는 저우룬파에게 대나무 막대기를 들고 와이어 액션 연기를 하도록 배짱 두둑하게 밀고 나갈 수 있을까? 하지만, 이런 결과로 만들어진 양쯔충과 장쯔이의 화려하고 큰 동작이 가미된 대결 장면에 이어지는 저우룬파와 장쯔이의 조용한 대나무 숲 대결 장면은 숨막힐 정도로 절제된 영상미를 보여준다(와호장룡 하이라이트 참고). 자 그렇다면 앙 리 감독에게 망망대해에 보트 한 척, 소년 한 명, CG로 만든 호랑이 한 마리를 던져주면 어떤 작품이 나올까? 앙 리가 아니었다면 얀 마텔이 쓴 베스트셀러인 '라이프 오브 파이' 원작을 들고 가서 영화로 만들겠다고 영화사를 설득하려 했으면 미친 사람 취급 받았을테다. 하지만 어찌되었든 (분명 우여곡절이 많았을테다...) 20세기 폭스사가 설득에 넘어갔고, 결론적으로 3D에 끌려다니는 영화가 아니라 3D를 끌고 다니는 레퍼런스급 영화가 되어 버렸으니(두말하면 잔소리지만 반드시 IMAX 3D로 보시기 바란다) 앙 리 감독 입장에서는 첫 메이지 영화인 헐크의 흥행 실패 정도는 충분히 극복하고 남지 않을까 싶다.

여기까지는 스포일러를 보지 못하도록 독자 여러분을 배려했다고 보면 되고, 지금부터 본 이야기에 들어가보자. 열린 결말로 화제를 불러일으킨 '인셉션'만큼은 아니겠지만 (아마 이 글 읽기 전까지는 그냥 마무리가 조금 불편하다고 느낀 분들이 많으시겠지만) '라이프 오브 파이'도 열린 가능성을 품은 결말로 끝을 맺고 있다. 바로 주인공 '파이'의 이야기가 두 가지 버전으로 나뉘어지며, 정말 어떤 버전을 믿는지는(앞 부분에 다양한 종교 이야기가 나온다. 모든 게 '믿음'의 문제라는 듯이 말이다...) 사실상 독자(또는 관객)의 몫으로 남겨진다.

  • 버전 1: 파이 혼자 여러 동물과 함께 보트에 올라탔지만, 결국 마지막으로 살아남은 파이와 호랑이가 해류를 타고 표류하다 극적으로 구조된다.
  • 버전 2: 여러 사람들이 구명 보트에 올라탔지만, 생존을 위해 잔인하게 서로에게 칼질(T_T)을 한 끝에 파이가 최후로 살아남는다.

영화 속에서 작가가 지적하듯, 버전 1과 버전 2은 (동물과 사람을 1:1로 대응하면) 사실상 동일한 이야기이며 어떤 이야기가 더 맘에 드느냐는 파이의 질문에 작가는 '버전 1'이 'the better story'라 대답한다(불행하게도 한글 자막은 미묘한 뉘앙스 차이를 제대로 전달하지 못했다). 그리고 버전 1이 말도 안 된다고 다그치며 파이를 조사했던 일본 관리 두 사람이 쓴 보고서에서 뱅갈 호랑이에 대한 문구가 언급되는 것으로 보아 일본 관리들도 '버전 1'로 마음이 기울었다는 사실을 넌저시 암시하고 넘어간다. 하지만 정말 버전 1일까? 버전 2일까를 고민하다보면 1:1로 대응할 경우에 버전 1에서 남는 주인공인 '파이'가 문제가 된다. 이런 모순을 해소하려면 버전 1에 등장하는 '파이'와 '호랑이'는 이성과 야성이라는 자아의 분리라고 봐야 한다(영화 초반에 파이의 아버지가 그렇게 '이성'을 강조하는 이유가...). 버전 1에서 멕시코 해안에 도착해서 호랑이가 뒤도 돌아보지 않고 떠나는 장면은 파이의 본성에 숨어 있던 맹수의 잔인함도 함께 사라짐을 의미한다고 봐도 될 것 같다. 여기까지 생각이 전개되고 나서 다시 영화를 처음부터 끝까지 머리 속으로 돌려보니... 중간에 무서운 호랑이가 있어 내가 정신 차리고 살 수 있다는 파이의 독백부터 시작해 중간에 여러 차례 호랑이를 죽일 수 있는 기회가 있었음에도 마음 약하게 살려주고 나중에는 쇠약해진 호랑이를 무릎에 올려 놓고 슬퍼하는 장면이 갑자기 이해가 가기 시작했다. T_T 지금 이 글을 쓰는 순간에도 버전 1과 버전 2가 오락가락하니 '인셉션'보다 더 많은 고민을 안겨준 영화라고 봐도 무방할 듯이 보인다. 물론 여기에 딱 맞는 정답은 없지만 독자 여러분들은 어떤 버전이 더 나아(better) 보이시는지?

뜬금없는 결론: '라이프 오브 파이'는 결코 방학맞이 어린이용이 아니다.

뱀다리: 실험삼아 가본 수원 CGV IMAX관은 화면도 작고 좌석 앞뒤 간격도 극악이라 추천하지 않는다. E 열에서 봤음에도 불구하고 화면이 작아 보였으니 말이다. 적어도 용산 CGV IMAX관 정도는 되어야 IMAX라는 이름값을 하지 않을까 싶다.

토요일, 1월 05, 2013

[독서광] 스티브 잡스

월터 아이작슨이 작심(?)하고 집필한 이 책은 엄청난 두께로 인해 도저히 대중 교통을 이용하며 읽기가 곤란했기에 집에서 조금씩 틈나는 대로 맛을 보다가, 지난 연말에 시간을 집중 투자해 결국 이 책을 선물 받은지(늘 챙겨주시는 K 부사장님께 다시 한번 감사드려요. :)) 1년이 넘어 완독에 성공(!)했다. 인터넷에 관련 내용이 엄청나게 올라와 있으므로, 굳이 여기서는 독후감이라는 형태로 재탕은 하지 않으려한다. 대신 읽고 나서 떠오른 몇 가지 생각을 두서없이 정리해보겠다.

  • 스티브 잡스의 악명을 매킨토시 역사 초기부터 접했기에, 비교적 중립적으로 기술한 이 책이 스티브 잡스를 칭송(단점도 모두 장점으로 보인다. T_T)하는 듯이 느껴졌다. 국내 언론들이 한국에서도 제 2의 스티브 잡스를 양성해야 한다는 말을 할 때마다, 사람들이 스티브 잡스가 진짜 어떤 인물인지 모른다는 생각을 하곤 했는데, 이 책 번역서가 출간되고 나서도 변치 않는 모습을 보니, 아이작슨이 좀더 세게 나갔어야 했을지도...
  • 개인적으로는 스티브잡스가 그 콧대높은 음악과 영화 업계 사람들을 구워삶은 부분이 가장 흥미로웠다. 픽사 CEO로 재직하며 대중매체를 다루는 회사들의 특성과 문화에 대해 충분히 이해했기에 가능하지 않았을까 생각한다.
  • 요즘 아이폰 5가 망했다는 둥 애플이 몰락했다는 둥 스티브 잡스 사후 애플을 진심으로(응?) 걱정해주시는 분이 늘고 있는데... 이 책을 읽어보면 애플의 성공이 스티브 잡스라는 개인의 영웅적인 산물이 아님을 알 수 있다. 실제로 잡스는 남(당연히 애플 내부 개발 인력도 포함!)의 아이디어를 훔치는 능력은 전 세계에서 최상급에 속했으니... 물론 그렇게 훔친 아이디어를 실행하는 능력도 최상급이었으니 용서가 가능했을 듯. 결론적으로 애플의 성공은 스티브 잡스의 후광을 계속해서 울궈먹는 구태의연한 행태가 아니라 완벽을 추구하기 위한 지속적인 실행 능력에 달려있다는 생각이다.
  • 애플 스토어의 가장 큰 위력은 아마존의 원 클릭에 버금가는 결재와 구매 이력 시스템이 아닐까 싶다(물론 아마존이나 애플은 지금도 그렇지만 앞으로도 절대 외부에 이런 구매 이력 정보를 외부에 공개하지 않을 듯이 보인다). 음반사, 출판사, 앱 제작사는 자신들이 모든 정보를 통재하는 갑에서 애플에 의존하는 을로 바뀌는 상황인지라 스토어를 이용하기 위해 애플로 가도 머리 아프고 아마존으로 가도 머리 아프니 그야말로 한숨만 나올 듯.
  • 스티브 잡스만큼이나 워즈니악의 기행(응?)도 애플 덕후 사이에서는 유명한데 비록 스티브 잡스의 전기긴 하지만 재미를 위해 조금 다뤘으면 좋았을뻔했다. 젊었을 때의 해커로서 워즈니악 이야기는 이 책 전반부에 애플 ][를 만드는 과정에서 자세히 나오기는 한다. 하지만 대중스타(으악!)로서 워즈니악의 화려한 이력이 빠진 점은 아쉽기만 하다. 한편으로는 미디어 업계를 위에서 흔들고(스티브 잡스), 다른 한 편으로는 미디어에서 대중들의 사랑(응?)을 받고(스티브 워즈니악) 이거 참 사람 운명은 알다가도 모를 일이다.

결론: 스티브 잡스와 애플 그리고 해커 문화를 이해하고 싶은 분들에게 이 책을 강력하게 추천한다.

월요일, 12월 31, 2012

[독서광] 부분과 전체

(이 귀한 사진은 Silphion System: 최강보스 한자리에 모여라에서 가져왔습니다.)

'부분과 전체'를 오래 전에 구입해놓고서 책장만 차지하고 있었던 터라 중고 시장에 팔 심산으로 페이지를 이리저리 넘겨보았다. 뭐 역시 어려운 이야기만 잔뜩 나오는 느낌이라 그냥 팔려고 하는 순간, 아주 우연히 '혁명과 대학생활 II'에 눈이 가게 되었고 다음과 같은 문장이 돋보기로 확대한 듯이 엄청나게 크게 망막에 맺혔다.

"노인들이 항상 그렇듯이 선생님(하이젠베르크) 또한 청년들의 활동을 반대하는 그러한 경험만을 인용하고 게십니다. 거기에 대하여 우리들은 더 이상 할 말이 없습니다. 우리는 역시 고독할 뿐입니다.

위 내용을 읽고 나면 '청년들의 활동'이 무척 궁금해지지 않는가? 후후후. 이미 눈치채신 독자분들도 계시겠지만... 여기서 이 청년들의 지도자는... 다름 아닌 '아돌프 히틀러'라는 점이 문제다. 계속해서 하이젠베르크는 전쟁의 위험한 상황을 피해 안전한 다른 나라(특히 미국)로 피난하라는 주변의 충고를 받고서도(미국으로 망명하려 했으면 0 순위로 가능했을테지만...) 전후 독일의 재건을 돕고 히틀러의 핵무장 속도를 늦추고자는 일념하에 끝까지 독일에 남는 용기를 발휘하는데, 이는 절대로 쉽지 않은 결정으로 보인다. 바로 이 부분을 읽고 나서 처음으로 돌아와서 다시 한번 정독을 했는데, 감동 물결을 넘어서(번역 상태가 눈물이 앞을 가릴 수준이지만, 원문이 워낙 좋으니 그냥 읽을만하다) 2012년 올해의 책으로 선정해 보았다.

이 책은 처음에 등장하는 1920년대의 흔한 물리학자 모임 사진에도 나오듯 기라성 같은 인물 현대 물리학을 개척한 선구자들이 한치의 양보 없이 팽팽한 토론을 벌이는 모습을 생성하게 전달한다. 어느 정도냐 하면, 보어, 시뢰딩거, 아인슈타인 급이 되지 않으면 조연에도 끼지 못한다. 실제로 아인슈타인까지 참여한 물리학 이론의 토론 장면에서 사고 실험에서 아인슈타인이 며칠 연속으로 혼쭐 나는 내용이 나오는데 무협지를 능가하는 이렇게 통쾌한 내용을 혼자 읽기가 아까울 지경이다. 다음은 아인슈타인의 친구인 파울 에렌페스트가 보다 못해 아인슈타인에게 권고한 내용이다.

"아인슈타인! 나는 자네에 대하여 부끄러운 생각이 드네. 자네는 마치 자네의 상대성 이론에 반대했던 사람들처럼 이 새로운 양자이론에 반대하고 있지 않은가?"

지난번 소개한 현대 수학의 아버지 힐베르트를 읽으면서도 느낀 바지만, 역시 (심지어 아인슈타인 급 천재를 포함해) 사람들은 사고의 근거가 되어왔고 과학 연구의 기반이 되어왔던 '표상'들을 포기하기가 얼마나 어려운지(이 쯤에서 우리는 힐베르트의 위대함을 다시 한번 깨닫게 된다) 하이젠베르크도 책 곳곳에서 한숨을 내쉬고 있다. 그럼에도 불구하고 볼 수도 없고 만질 수도 없고 적절한 언어로 표현하기조차 힘든 양자역학을 하이젠베르크는 주변 학자들의 무지막지한 반론과 공격 속에서도 놀랄 정도로 정교하게 다듬어가는 우직한 물리학자의 뱃심을 보여준다다. 본문 중에 물리학, 철학, 논리학, 기타 다른 자연 과학을 총망라해 토론이 유달리 많이 나오는데, 다들 정교한 논리와 이론으로 무장하고 자기 생각을 차근차근 풀어내는 모습을 보고 있으면 정말 이 세상에 대단한 사람이 참 많구나 하는 생각이 들지 않을 수 없을 테다.

결론: 이 책은 하이젠베르크가 보고 듣고 느낀 점 중에 중요하다고 생각한 내용을 총정리하고 있으므로 상당히 깊이가 있는 내용임에도 불구하고 그 어렵고 복잡한 개념이 머리 속에 쏙쏙 들어온다는 장점을 제공한다. 물리학, 철학, 논리학, 정치(응?), 형이상학과 종교에 관심이 많은 분들께 강력하게 추천하고 또 추천한다.

금요일, 12월 28, 2012

[영화광] 호빗과 HFR

영화 자체만으로도 무척 재미있었지만, 상업 영화 역사상 최초로 HFR(High Frame Rate)이라는 기술을 적용했다는 이유만으로도 호빗을 _두 번_ 볼 수 밖에 없었다. 시간과 돈을 투자해 먼저 IMAX 3D HFR로 다음으로 IMAX 3D로 봤는데... 개인적인 생각이지만 HFR의 압승이다. 아날로그 TV를 보다가 HDTV를 본 느낌이라고 해야 하나? 지금까지는 크고 밝은 화면 때문에 가능한 IMAX를 택했는데, 이제 선택이 가능하다면 IMAX+HFR을 택해야겠다.

잠시 기술적인 설명을 해보자. HFR은 초당 48프레임으로 영화를 상영하는 기법이다. 지금까지 업계 표준이 초당 24프레임인 이유는, 35mm 필름 릴에서 들을만한 오디오를 재생할 수 있는 최소 비율이기 때문이다. 하지만 아날로그 필름 세상에서나 합당한(24프레임이라는 기술 제약으로 인해 지금까지 우리는 상영 시간 절반 이상을 어둠 속에서 보내고 있었다. ㅋㅋ) 이런 프레임 제약이 디지털 카메라가 일반화된 지금까지도 계속 유지되는 상황이니... 역시 기술 전파는 느리다는 생각이다. 그렇다면 HFR을 적용하면 어떤 장점이 있을까?

  1. 자연스러운 움직임: 특히 격렬한 전투씬이나 운동 경기에서 자연스런 움직임을 재현해준다. --> 호빗 중반 이후의 역동적인 전투 장면을 보면 확실하다.
  2. 밝기: 광원은 그대로라도 더욱 밝은 화면을 보여준다. --> 호빗 분위기가 밝아졌다고 말하는 분들이 많은데, HFR이 한 몫했다는 생각이다.
  3. 3D에서 어두움 보정: 3D용 편광 안경을 낄 경우 아무래도 전반적인 빛의 투과율이 조금 낮아지는 데다(편광의 의미를 생각해보라) 무작정 밝게 만들 경우 화면이 떨리기 때문에(영화관에서 2D 예고편 상영 중에 3D 안경을 쓰면 흰색 계통의 밝은 부분이 떨린다. 직접 실험해보시라) 3D에서는 화면을 조금 어둡게 표현하는 경향이 있는데, HFR을 사용할 경우 화면이 밝은 데다 화면 떨림을 최소화할 수 있으므로 3D에 아주 유리하다.
  4. 선명함: 떨림과 번짐이 없으므로 디테일을 살리는 화면 연출이 가능하다. --> 옷, 무기, 방, 성, 동굴 등 디테일한 소품들이 즐비한 호빗에서 엄청난 장점을 제공한다.

물론 HFR에 대해 거부감이 드는 분들도 많으리라는 생각이다(부작용: i) 영화가 미드처럼 보인다(ATSC 규약에 정의된 프레임 비율은 이미 30Hz다), ii) 눈에 들어오는 정보량이 많아지므로 머리 속에서 예전 버릇을 못 버리고 다시 보간법을 적용하려다 보니 어지럽다. iii) 윤곽이 너무 날카로워서 눈이 시린다). LP에서 CD로 넘어갈 때도 그랬고, 아날로그 필름에서 디지털 필름으로 넘어갈 때도 그랬었다. 하지만 HRF을 적용했기 때문에 작품성이 떨어진다는 주장은 근거가 희박하고... 호빗 2, 3부작까지 보고 나면 아마도 다음부터는 HFR을 적용하지 않은 판타지 영화는 비교 당할 표준이 새롭게 생겼기에 무척 힘든 시절을 겪지 않을까 싶다.

아직도 HFR이 주는 장점이 잘 와닿지 않는다면... HIGH FRAME RATE VIDEO PLAYBACK에 가서 샘플 비디오를 감상하며 직접 눈으로 확인해보시기 바란다. 컴퓨터가 아니라 영화 스크린일 경우 더욱 더 큰 차이를 보인다는 사실도 기억하면 좋겠다.

오늘의 결론: HFR(그리고 용감한 피터 잭슨 감독 만세!)

EOB

토요일, 12월 22, 2012

[독서광] 마르크스와 함께 A 학점을

'시험 잘 보며 세상 바꾸기'라는 상당히 이상한(?) 제목이 붙은 이 책은 시험 요령을 알려주는 척 하면서 자본주의(즉, 부를 생상하고 분배하는 체제에 대한 비밀)의 법칙을 설명하고 있다. 지은이는 오랫 동안 대학 교수로서 경험한 내용을 바탕으로 학교에서 점수를 잘 받는 방법과 자신의 주전공인 마르크스에 대한 이야기를 절묘하게 짬뽕하는 방법으로 학점도 잘 받고 자본주의에 대한 이해도 높인다는 목표를 삼은 듯이 보인다. 물론 한 때 공부 기계(응???)였던 B급 프로그래머에게 '점수를 잘 받는 방법' 따위는 그리 신선하지 않았지만 말이다. 대통령 선거 전에 이 책을 읽었을 때는 '점수를 잘 받는 방법'과 '자본주의 체제에 대한 비밀'에 대한 내용이 (다들 이미 충분히 다 아는 내용이라고 생각했기에) 따분하고 지루하고 재미가 없다고 서평을 쓰려 했으나... 선거가 끝나고 나서 태도가 조금 바뀌었다고 고백하겠다. 이 책을 집필한 저자의 의도를 어렴풋이 알게 된지라 재미있다는 서평을 올리기로 결심했다. 저자의 의도라... 사람들은 시험보는 요령도 잘 모르고(정말 요령을 부릴 줄 안다면 모두 좋은 대학갔을 테니...), 자본주의 체제에 대한 비밀도 모른다(정말 자본주의 체제에 대한 비밀을 안다면 <중간 생략>)는 현실을 타파하기 위한 저자의 몸부림이 아닐까 싶다.

이 책은 사회 비판적인 내용을 직설적으로 담고 있기 때문에 어떤 분들은 속이 다 시원해지는 느낌이 오겠지만... 어떤 분들은 분서갱유하고 싶은 욕구가 들지도 모르겠다. T_T 본문에 나오는 강도가 쎈 돌직구 몇 개를 한번 볼까?

여러분은 평등한 기회는 고사하고 웬만큼 해볼만한 기회조차 받은 적이 없고, 앞으로도 그럴 것이다. '기회의 평등'이란 임금님의 새 옷에 붙은 디자이너의 상표에 불과하다. 바로 이것이 자본주의가 감추고 싶어하는 비밀이다.
다른 사람에게 닥친 불행이 나에게 금전적 이익을 안겨주는 체제에서, 실제로 많은 사람들이 남의 불행을 바란다. 그 대가로 어쩔 수 없이 죄의식을 느끼기도 하면서 말이다.
우리 사회는 부자에겐 항상 돈이 부족하고, 가난한 사람에겐 항상 돈이 너무 많다고 가정하는것 같다. 대공황이 한창일 때 헨리 코드가 한 말이 그 좋은 예다. "지금이야말로 좋은 때인데 그걸 아는 사람이 드뭅니다."
우리의 자본주의 사회는 한 손으로 법적 권리를 나눠주고는 다른 손으로 그걸 빼았는 일에서 타의 추종을 불허한다.
물론 언론은 자유롭다. 언론을 소유할 능력이 있는 사람에게는...
자본가들은 여러분이 소비자로서 현명한 선택을 하기 위해 알아야 할 사실들을 어떻게든 감추고 싶어 한다. 자본이 미디어를 장악한 현실에서, 우리가 유권자이자 시민으로서 뭔가 근거를 지닌 선택을 하고자 할 때 알아야할 정보를 얻기도 쉽지가 않다. 주류를 이루는 이야기는 온통 '선택의 자유'이지만, 우리가 현실에서 보는 것은 광고와 홍보, 뉴스 프로, 연예, 그리고 (감히 말하건데) '교육'이 핵심적 역할을 하는 철저한 조작극이다.
보수주의자들은 세 부류로 나뉜다. 물질적으로 아주 풍족하고, 그래서 자신의 안락함이 가난한 사람들의 외침 때문에 깨지지 않기를 바라는 사람들, 물질적으로 매우 불안정해서 사회적 사다리의 바로 밑 칸에 있는 자들과의 경쟁이 두려운 사람들, 그리고 그냥 자기와 같지 않은 모든 사람과 새로운 모든 것을 증오와 편견의 눈으로 보는 사람들이다.
대부분의 미국 보수주의자들은 현 상태의 유지를 바라기보다, 고통 받는 서민들이 불만이 있더라도 내놓고 말을 못하던 '좋았던 옛 시절'로 돌아가길 원하는데, 사실 이렇게 이상화된 시절은 그들의 상상속에서만 존재한다.

그런데, 본문 중에 나오는 이런 돌직구와는 달리 후반부로 접어들면서 등장하는 (사회주의 세상을 건설해 모든 사람에게 행복을 주자는... 응?????) 대안 제시 부문에서는... 역시 시원스런 답을 해주지 못한다는 생각이다. 비판은 쉽지만 대안은 어렵다는 명제는 변치 않을 듯이 보인다.

EOB

금요일, 12월 14, 2012

[일상다반사] MongoDB NoSQL로 구축하는 PHP 웹 애플리케이션 번역서 출간

지난번에 소개드린 '악성코드와 멀웨어 포렌식' 번역서 출간 소식에 이어 이번에는 'MongoDB NoSQL로 구축하는 PHP 웹 애플리케이션'이라는 다소 긴 제목이 붙은 번역서 출간 소식을 독자 여러분들께 전해드린다. 최근 NoSQL이 사람들의 주목을 많이 받고 있긴 하지만, 관계형 데이터터베이스 기술과 비교해 노하우를 전달하는 자료나 책이 상당히 부족하므로, 비록 번역서긴 하지만 조금이라도 개발자 여러분의 목마름을 해소할 수 있으면 더할 나위 없겠다.

이 책은 NoSQL 계열 중에서도 문서 중심 아키텍처로 유명한 몽고DB를 설명하고 있다. 몽고DB 자체에 대한 설명은 물론이고 웹 개발자들에게 가장 널리 알려진 PHP를 사용해 몽고DB용 애플리케이션을 제작하는 방법을 자세히 설명하므로 NoSQL(특히 몽고DB)에 입문하는 개발자들이 읽어봐도 부담이 없다는 생각이다. 이 책은 몽고DB 버전 1.8.x 계열을 다루고 있기 때문에 가장 최신 버전인 2.2 계열과 비교해 조금 오래되었다는 생각이 들지 모르겠지만, 몽고DB에서 지축을 뒤흔들만큼 급격한 변경은 일어나지는 않았기에 기초 지식을 습득하는 과정에서 별다른 어려움은 없으리라 예상한다. 2.2.0 backward breaking을 살펴보면 알겠지만, 몽고DB 개발 공동체는 상당히 보수적이다(이럴 때는 천만다행 :)).

현재 Yes24교보문고등에서 절찬리에 예약판매 중이니 많은 성원 부탁드리겠다. 독자 여러분을 위해 역자 서문을 정리해드린다.

최근 클라우드 시대가 도래하면서 업계에 NoSQL 열풍이 불고 있다. 일부에서는 좋았던 관계형 데이터베이스의 시절은 저물고 NoSQL 시절이 도래하고 있다는 다소 과격한 주장까지 나오고 있으니, 개발자라면 누구나 한 번쯤 NoSQL에 대해 관심을 보여도 전혀 이상하지 않다. 하지만 컴퓨터 분야의 신기술이 나올 때마다 늘 반복되듯 중요한 것은 용어가 아니라 실체다. 하지만 실체는 직접 만져보고 써보기 전에는 관념에 불과하므로 어떻게든 시간을 투자해 신기술과 친해져야 할 필요가 있다. 그렇다면 어떻게 새로운 기술을 실전에 적용해볼까? 데이터베이스에 “Hello, World!”를 넣고 검색하는 테스트 프로그램만 작성해서는 감조차 오지 않을 것이고 그렇다고 실제 프로젝트에 적용하기에는 짊어져야 할 위험이 너무 크다. 방법은? 다행스럽게도 몽고DB 분야에서는 이 책이 신기술 탐험에 나선 여러분들을 도와줄 것이다.

이 책은 현재 나와 있는 여러 NoSQL 계열 데이터베이스 중에서 문서 중심(document-centric) 데이터베이스인 몽고DB를 설명하는 책이다. 하지만 단순히 NoSQL 이론을 늘어놓은 다음 몽고DB 관리법과 사용법만 설명하는 선에서 끝내는 대신, 웹 개발자라면 누구나 손쉽게 사용할 수 있는 PHP 스크립트와 자바스크립트를 사용해 가상적인 웹 서비스를 실제 몽고DB로 구축하는 방법을 단계별로 차근차근 소개한다. 따라서 이런 전개 방식은 실질적인 구현을 토대로 추상적인 개념을 이해하는 과정에 큰 도움을 주리라는 생각이다. 이렇게 컴퓨터에서 실제로 다양한 실험 과정을 거치고 나면 비로소 몽고DB의 실체에 한 걸음 다가간 자신을 발견할 수 있을 테다.

이 책에서는 몽고DB의 훌륭한 특성(특히 맵리듀스와 지리공간 색인)을 실제 현장에서 어떻게 적용할지를 놓고 충분히 고민한 내용을 담고 있다. 간단한 블로그를 만들어 로그 분석기를 추가하는 방법으로 몽고DB의 맵리듀스 기능을 실시간으로 활용하는 예제나 방문객의 위치에 인접한 음식점을 찾아주는 위치 인식 애플리케이션을 만들어 W3C API와 지리공간 색인 기능을 활용하는 예제는 (비록 상용에서 직접 사용하기는 어려울지라도) 몽고DB의 특성이 잘 녹아난 사례라 볼 수 있겠다. 몽고DB에 처음 입문하는 개발자를 대상 독자로 삼아 지나치게 복잡하지 않으면서도 그렇다고 부족함도 없이 딱 필요한 만큼 예제 중심으로 설명하는 방식을 따르기에 NoSQL에 대한 이론적인 사전 지식이 없더라도 웹과 PHP에 대한 기초 지식만 있으면 부담 없이 이 책이 여러분에게 다가올 것이다.

물론 몽고DB를 처음 접하는 독자를 위해 쉽게 작성하느라 중급 개발자들을 소외시키지도 않았다. 이 책에서는 클라우드에서 흔히 일어나는 다중 노드 배포 과정에서 분명히 직면할 세션 관리를 몽고DB를 사용해 처리하는 방안은 물론이고, 비동기식 특성을 사용해 여러 노드에서 동시에 접근 가능한 로그 시스템을 추축하는 방안도 소개한다. 또한 레거시 시스템을 버리지 못하는 상황에서 관계형 데이터베이스 시스템인 MySQL과 몽고DB를 함께 활용하는 방안을 소개하며, MySQL에서 몽고DB로 완전히 이전할 경우를 대비해 양쪽의 차이점과 주의 사항을 쉽게 설명하는 배려도 잊지 않고 있다. 마지막으로 몽고DB의 특성에 맞춰 보안과 성능 향상을 위해 기본으로 고려해야 하는 내용도 빠짐없이 다루고 있기에 상용 환경에서 고급 기능을 원하는 개발자라면 이를 출발선으로 삼아도 좋겠다.

백문이 불여일견이라고 이 책을 읽고 나서 LAMP(Linux-Apache-MongoDB-PHP) 스택에서 자신만의 개성 만점의 웹 애플리케이션을 직접 개발해보자. 여기서 한걸음 더 나가 몽고DB 위에 만들어진 뛰어난 오픈소스 소프트웨어를 분석해 몽고DB의 고급 기능을 적용하는 방법도 익혀보자. 그러고 나서 다시 한 번 직접 개발한 소프트웨어에 고가용성과 고성능을 달성하기 위한 특질을 추가해보면 몽고DB의 큰 그림이 머리 속에 그려질 것이다. 이제 몽고DB행 티켓을 손에 넣었으니, 애독자 여러분들 앞에 펼쳐질 즐거운 여행을 기원하겠다.

토요일, 12월 08, 2012

[일상다반사] 연금저축 수익률이 진짜로 형편없을까?

연금저축 수익률이 (생각보다) 낮다고 언론들이 이구동성으로 난리를 치다가 연말정산의 시기가 도래하자 연금펀드 수익률이 높다고 말을 바꾸고 있다. 며칠 전 애물단지 연금저축 기자가 직접 갈아타보니라는 기사에서는 친절하게 연금저축을 연금 펀드로 바꾸는 방법까지 설명해주는 상황이다. 그런데 주식으로 갈아타라고 은근슬쩍 넛지하는 내용도 그렇지만, 이론적인 토대(?)를 제공하기 위해 본문에 나오는 수익률 계산법이 정말 눈물난다. 뭐 비단 J일보뿐만 아니라 산수 계산에 대해서는 다른 신문사도 도토리 키를 재고 있으니, 경영/경제 블로그를 운영하는 입장에서 이런 이해가지 않는 계산법에 대해 한 마디 하지 않을 수 없다! 자 일단 본문을 살펴보자.

2001년 가입, 기자가 11년간 꼬박 부어온 A은행의 연금신탁의 수익률을 확인한 게 한달 전이다. 은행에서는 ‘누적 수익률이 25%’ 라고만 표기했다. 연환산 하면 2%대, 예적금 금리만도 못한 수익률이다.

애독자분들이야 척 보면 잘못된 곳이 바로 눈에 들어올 것이다. 바로 _연환산_이라는 부분이다. 단순하게 11년을 가입했다고 하니 25%를 11으로 나누면 약 2.27%가 나오니 얼핏보면 그럴싸해보인다. 하지만 연금신탁은 거치식 정기예금이 아니라는 함정이 숨어있기 때문에 단순히 연도로 나눈 연환산 수익률을 예적금 금리랑 비교하면 사과랑 의자랑 비교하는 꼴이 된다. 그러면 계산을 쉽게 하기 위해 매년 300만원씩(12개월 동안 매달 꼬박꼬박 25만원씩 납입) 10년 동안 연금신탁을 넣었으며, 10년 후 누적 수익률은 25%라고 가정하자. 자 그러면 10년 후 이자를 포함해 총 평가액은 300 * 10 * 1.25 = 3750만원이다. 그러면 매달 25만원씩 10년동안 단리로 (비과세) 적금을 들어 3750만원을 만들려면 적금 이율이 얼마면 될까? 스프레드시트 등을 사용해 계산이 가능하지만 문명의 이기를 활용하면 좀더 수월하다. 적금 이율이 4.96%인 경우 만기 지급액이 37,502,000이 나온다. 결국 2.27%가 아니라 실제 이율은 4.96%라고 봐야 한다.

수익률을 반토막 내도록 만든 사소한 계산 실수가 있었다고 치자. 하지만 연금저축에 가입한 중요 목적 중인 하나인 '소득 공제'에 대한 이익을 빼먹은 부분은 전혀 이해가 안 간다. 역시 계산 편의를 위해 300만원의 10%인 30만원씩을 10년 동안 돌려받았다고 가정하자(주의: 정확한 환급 금액은 개인별 과표 구간을 고려해야 한다!). 따라서 10년 동안 300만원을 환급받게 되므로 실제 총 평가액은 3750+300인 4050만원으로 늘어난다. 자 그러면 다시 한번 문명의 이기를 활용해 계산을 해보면... 적금 이율이 6.95%인 경우 총 40,511,875이 나온다.

그렇다면 이번에는 은행이 방만하게 운영한 결과 누적 수익률이 낮아져서 15%라고 가정하자. 300 * 10 * 1.15 = 3450만원이고 역시 300만원을 환급받았다면 3750만원이 되어 아까 계산한 이율인 4.96%를 달성할 수 있다.

적금 이율이 5%(누적 15%인 경우)와 7%(누적 25%인 경우)니까 별거 아니라는 생각이 들지도 모르겠다(주변에 워낙 대박 이야기만 많이 들려서...). 하지만 이 정도면 완전히 망한 투자는 아니다. 참고로 이 글을 쓰는 시점에서 은행 정기 적금 금리는 3.3%~3.5% 수준이고 몇 년 째 저금리 기조를 이어가고 있다. 이자 0.1% 더 받으려고 눈에 불을 켜보신 분이라면 1.5% ~ 3.5 금리 차이가 얼마나 대단한지는 여기서 굳이 설명하지 않겠다. 그리고 적금 금리를 자꾸 부동산 투자 수익률이랑 비교하려는 분들이 계신데... 3천만원 정도의 푼돈(?)으로는 강남 아파트 1평(!)도 구입하지 못하므로 완전 에러다. T_T

뱀다리: 계산 과정에서 틀린 부분이 있으면 바로 지적해주시기를 부탁드린다. 그리고... 좀더 정교하게 최종 수익률을 계산하려면 연금 수령 시점에서 소득세로 5.5%를 가져간다는 점도 고려해야 하는데... 이는 숙제로 남겨둔다.

수정: 주의 사항 한 가지가 있다. 최근 정부가 추진하는 세액 공제 제도가 도입될 경우 '소득 공제' 관련해 수익률이 팍팍 꺾일 가능성이 높으므로(물론 반대급부로 일부 언론이 떠들어대듯 1200만원 미만의 근로 소득자들이 연금 저축을 400만원 한도로 꽉꽉 채우면 엄청난(!) 수익이 나겠지만, 세상 물정 전혀 모르는 전형적인 탁상 공론으로 보인다. T_T), 세테크 하시는 분들께서는 향후 바뀔 연말 정산 제도에 따라 시물레이션을 미리 해보는 식으로 수익률에 미치는 여파를 고려하시기 바란다.

EOB

수요일, 12월 05, 2012

[B급 프로그래머] 하루 안에 배울 수 있는 몇 가지 유용한 (컴퓨터) 기술이 무엇일까요?

Quora를 읽다가 "하루 안에 배울 수 있는 몇 가지 유용한 (컴퓨터) 기술이 무엇일까요?"라는 질문이 올라와서 들어다 봤는데 재미있는 대답이 올라와서 간단하게 번역해봤다.

  • Git(또는 Hg)와 Github 활용법 배우기
  • SVN 활용법 배우기
  • 간단한 정규 표현식 배우기
  • 프로그래밍 면접 질문이 담긴 사이트 방문하기. 답을 제대로 할 수 있도록 연습하자.
  • 웹 페이즐 방문해 기초 자료를 추출하도록 크라울러(웹 로봇)을 설정하자.
  • 선형 대수 라이브러리를 프로그램하기(행렬, 벡터, 곱셈)
    • 특이값 분해(SVD) 기능 추가하기
    • 역행렬 기능 추가하기
    • 최소 자승법으로 회귀 기능 추가하기
    • 흩어진(sparse) 자료를 효율적으로 다루도록 라이브러리 구축하기
    • 파이썬(또는 루비)으로 리스트 표현법 익이기
  • 좋아하는 프로그래밍 언어의 멋진 매뉴얼을 읽자. 과거에 파이썬 때문에 시간을 날렸는데, Counter 자료 구조가 존재한다는 사실을 몰랐기 때문이다. Counter처럼 Dict를 사용하는 바람에 버그에 시달렸다. 이런 사례가 제법 많을 것이다.
  • 스택 오버플로 계정을 얻어 사이트 활용법을 배우자. 영어를 아는 프로그래머가 스택오버플로를 모르면 뭔가 잘못된 것이다.
  • 직접 단순한 기계 학습 알고리즘을 구현한다. csv로 입력 받아 훈련하도록 분리해 테스트 집합을 구축하고, 쉽게 변경 가능한(또는 탐색 가능한 하이퍼파라메터를 사용한) 단순한 알고리즘을 돌려 적절한 통계를 출력하도록 만든다.
  • Excel로 단순한 선 그래프 작성법 익히기. 결과를 제대로 얻었는지 확인한다(적절한 축, 단위 표기)
  • Excel 이외 다른 방법을 사용한 단순한 선 그래프 작성법 익히기. 결과를 제대로 얻었는지 확인한다
  • 자기가 자주 사용하는 언어에 대해 이클립스를 설치하고 각 언어별로 'Hello world'를 성공적으로 작성할 수 있는지 확인하기 (장래 시간을 크게 절약해줄 것이다)
  • NoSQL 데이터베이스의 기본 기능 익히기(mongoDB는 하루 안에 상당량을 배울 수 있다)
  • SQL의 가장 단순한 기능 익히기(쿼리 전문가가 될 필요는 없다)
  • HTML이나 XML을 제대로 파싱하는 도구 익히기
  • 리스트의 리스트로 그래프 자료 구조를 구현하기
  • 페이지 랭크, 클러스터 상관 계수 탐색, 공통 이웃 개수 찾기를 구현해보자.
  • BFS(너비 우선 탐색), DFS(깊이 우선 탐색), 최단 경로, 최소 신장 트리. 알고리즘 배경 지식이 없다면 며칠을 투자해도 좋다.

경험과 경력이 풍부한 개발자 분들께서 상기 내용 이외에 혹시 후배 개발자분들께 전해주고 싶은 좋은 팁이나 힌트(물론 하루 안에 실천이 가능해야 한다.)가 있으면 댓글 부탁드리겠다. 어느 정도 쌓이면 내용을 정리해 블로그로 올려드릴 계획이다(물론 어느 분이 추천했는지 credit과 함께).

뱀다리: 개인적으로는 자신이 가장 잘 아는 프로그래밍 언어의 기본 라이브러리가 어떻게 구현되어 있는지 코드를 읽는 방법을 적극 추천한다. 특히 평상시에 매뉴얼을 봐도 오락가락하는 클래스나 API에 대해 코드를 직접 보면 실력이 엄청나게 늘어난다. 루비와 같은 스크립트 언어라면 아예 라이브러리 코드가 기본으로 설치되므로 특별히 준비할 내용도 없기에 조금만 신경을 쓴다면 하루 동안 많은 내용을 배울 수 있을 것이다.

EOB

토요일, 12월 01, 2012

[독서광] 현대 수학의 아버지 힐베르트

오늘은 다비드 힐베르트의 일생을 그린 전기인 '현대 수학의 아버지 힐베르트'라는 책을 읽고 느낀 점을 정리해보겠다. 수학 역사에 관심이 있는 분이라면 누구나 힐베르트의 업적에 대해 들어봤을 텐데, 독자 여러분을 위해 요약 정리하자면, 바로 평생에 걸쳐 수학, 물리학 분야에서 완벽한 공리 체계 이론에 대한 토대를 쌓았다는 점이다. 물론 괴델(괴델, 에셔, 바흐의 바로 그 괴델이다)이 혜성처럼 등장해서 공리체계의 무모순성의 증명이 불가능하다는 사실이 밝혀질 때까지 사람들은 완벽한 공리 체계야말로 수학에 있어 가장 중요한 문제라 생각했다. 완벽한 공리체계를 추구하는 힐베르트는 무모순성과 관련해 다음과 같이 말할 정도였다.

"어떤 개념에서 모순적인 속성이 발견되면 나는 수학적으로는 그 개념이 존재하지 않는다고 생각한다."

책은 힐베르트의 어릴적 시절부터 노년기에 이르는 전 생애를 다루고 있는데, 본문 중에서 가장 감명 깊게 다가온 부분은 바로 1900년 파리에서 열린 제2차 국제 수학자 대회에서 연설한 '수학의 미래'라는 제목이 붙은 10장이다. 당대 최고의 수학자들이 모인 자리에서 힐베르트는 20세기에 수학자들이 풀어야 할 22가지 문제를 제시하면서 '모든 문제는 해결할 수 있다'는 세 시대의 희망을 피력한다. 그런데 정말 잘 쓰여진 명문이라 수학과 철학에 대해 특별한 지식이 없는 문외한(뭐 다들 아시겠지만... 'B급 프로그래머'를 지칭한다)조차도 읽으면서 명료하게 문제를 제시하고 군더더기 없이 배경을 설명하는 힐베르트의 능력에 대해 진짜 대단하다는 생각이 들었다. 수학이나 철학에 관심이 많은 분들께서는 다른 부분은 모르겠지만, '수학의 미래' 연설문은 꼭 읽어보면 좋을 것 같다.

불혹을 앞두고 대박을 터트린 힐베르트의 업적을 계속해서 따라가다보니 또 다른 흥미로운 부분이 눈에 들어왔다. 요즘과 같은 발전한 시대에 추상적인 물건(?)인 프로그래밍 언어를 사용하는 사람들에게는 그리 어렵지 않게 느껴질지 모르겠지만(리버싱이 어렵게 난독화된 코드를 보면 딱 이런 느낌이 들지도 모르겠다. 낄낄) 20세기 초반에 다음과 같은 말을 들은 사람이라면 화들짝 놀라는 것이 무척 당연했을테다.

힐베르트는 수학 체계의 대상인 수학적 정리와 증명을 기호 논리의 언어로 논리적 구조는 갖추되 내용이 없는 문장으로 표시한다는 형식화를 제의했다.

힐베르트는 직관주의에 맞서 "수학의 재고품을 하나도 손상함이 없이 오직 그 뜻을 근본적으로 새로 해석함으로써" 고전 수학 전체를 구제하는 작업을 예순(!)에 시작했는데 이는 정말로 대담한 시도라 하지 않을 수 없다. 수학에 있어서 무모순성이라는 세상을 확립하려던 힐베르트는 역으로 이런 무모순성에 대해 의문을 품는 일군의 수학자들을 배출했고, 양쪽 진영은 계속해서 자신들의 주장과 이를 뒷받침하는 이론을 발전시켜가면서 20세기 중반까지 발전에 발전을 거듭하는 상황이 연출되었다. 힐베르트가 없었다면 아마 컴퓨터도 이렇게 빨리 등장하지 못했으리라는 생각도 잠시 해본다(괴델의 불완정성 증명을 자신만의 방식으로 재해석하는 데 성공한 튜링의 업적을 또 다시 생각하게 만드네?). 요약 결론: 수학에 관심이 많은 분들께 추천한다.

토요일, 11월 24, 2012

[독서광] 군주론(완역본)

'군주론'하면 마키아벨리, 마키아벨리라면 역시 '군주론'이 먼저 떠오른다. 하지만 실제 군주론을 처음부터 끝까지 완벽히 읽어본 적이 한번도 없다는 사실을 깨닫고 기왕 읽을 바에는 영어 중역본이 아닌 원본을 토대로 완역한 판본이 어떨까 싶었다. 그래서 인터넷 서점에서 검색을 해보니 까치에서 나온 군주론이 눈에 들어왔다. 예전에 시오노 나나미가 쓴 '나의 친구 마키아벨리'와 '마키아벨리 어록'을 이미 읽어본 적이 있었기에 과연 원본은 어떤 느낌일지 무척 궁금했는데, 결론부터 이야기하자면 '16세기에 적었지만 21세기에도 여전히 유효하고 앞으로도 유효할' 책이라는 생각이다.

헌정사를 포함해 160페이지가 안 되는 얇은 분량임에도 불구하고 공직 생활에서 추방된 후 '정치란 무엇인가'에 대해 어떻게 보면 무미건조할 정도로 냉철하게 고민한 내용을 최대한 압축하고 있기 때문에 물리적인 두께에 비해 엄청나게 무거운 책이라고 보면 틀림없겠다. 또한 정치를 종교적인(응?) 규율이나 전통적인 윤리적 가치로부터 분리해야 한다고 최초로 주장한 마키아벨리답게 그 당시로서는 감히 입밖에도 내기 어려운 주장을 풍자나 비유를 드는 대신 직접 '군주'에게 조언하는 방법으로 전개하는 혁신적인 내용 전개 방식도 보여준다. 시간이 지나 주변 상황이 바뀌었음에도 불구하고 여전히 펄펄 살아 날뛰는 현장감은 바로 이런 이유 때문이리라.

책 목차를 보면 알겠지만, 마키아벨리는 군주국의 다양한 형태와 특징, 군주국을 뒷받침하는 군사와 백성간의 관계, 군주의 특성에 따른 실패와 성공 사례, 측근 관리 기법, 운명을 받아들이는 자세에 대해 적절한 과거/현재(책을 집필할 당시 상황) 사례를 토대로 냉철한 조언을 아끼지 않는다. 책 마지막에는 마키아벨리의 진한 이탈리아 사랑이 느껴지는 내용도 나오므로 그 좋던 로마 시절은 온데 간데 없고 외세의 침입 앞에 비틀거리는 중세 이탈리아를 놓고 벌어지는 운명적인 상황을 배경으로 깔고 읽으면 감동이 배가 될 것 같다. 본문 중에 멋진 내용과 문구는 이루 말할 수 없이 많지만, 개인적으로 이 책에서 가장 주목해서 본 부분은 '운명'을 다루는 마키아벨리의 자세다. '운명'만을 바라보기도 그렇다고 '운명'을 전적으로 배제하지도 않는 유연한 자세의 중요성에 대해 마키아벨리는 다음과 같이 말한다.

저는 운명은 가변적인데 인간은 유연성을 결여하고 자신의 방식을 고집하기 때문에, 인간의 처신방법이 운명과 조화를 이루면 성공해서 행복하게 되고, 그렇지 못하면 실패해서 불행하게 된다고 결론짓겠습니다. 하지만 저는 신중한 것보다는 과감한 것이 더 좋다고 분명히 생각합니다.

(요즘 대선을 앞두고 분위기가 무르익고 있는데...) 정치에 관심이 많은 분들은 물론이고 스타트업을 시작했거나 시작하려고 마음먹은 분들께서도 이 책을 읽으며 인간 본성에 대해 다시 한번 생각하는 기회를 마련하면 더할 나위 없겠다. 결론: 이름은 많이 들어봤지만 아직까지 원문을 한번도 읽어보지 않은 분들께 특히 적극 추천한다.

뱀다리: 까치에서 나온 책은 학술서 느낌이 날 정도로 본문 중 주석이 잘 달려있으며 부록으로 용어 해설과 인명 해설이 따라 나오므로, 중세 이탈리아에 대해 기본적인 지식이 없는 분들께서 구입할 때 참고하기 바란다.

토요일, 11월 17, 2012

[독서광] 린스타트업

9월과 10월 사이에 가을 특집(?)으로 애자일 관련 서적들을 소개했었다. 여세를 몰아 오늘은 애자일을 경영과 창업 관점에서 풀어쓴 아주 유익한 책인 '린 스타트업: 지속적 혁신을 실현하는 창업의 과학'을 소개하겠다. 제목에 '창업'이라는 단어가 들어가 있기에 새로 회사를 만들고자 하는 사람들을 위한 책으로 보기 쉬운데, 여기서 '창업'은 광의의 창업이므로 대기업이나 정부조직에서 뭔가 새롭고 독창적인 일을 시작하는 경우에도 통용된다는 사실을 짚고 넘어가겠다.

이 책을 이해하려면 '스타트업'의 정의에 대해 확실하게 짚고 넘어가야 한다. 저자는 2장에서 스타트업의 정의를 다음과 같이 내리고 있다.

스타트업이란 극심한 불확실성 속에서 신규 제품이나 서비스를 만들려고 나온 조직이다.

이 정의를 읽다 보면 데자뷰가 느껴질지도 모르겠다. 애자일에서 소프트웨어 개발을 논할 때 '불확실성'에 대응하기 위해 기민하게 움직여야 한다고 말하는 데, 이 책 역시 비록 분야는 다르지만(소프트웨어 개발이 아니라 '창업'!) '불확실성'에 대응하기 위해 기민하게 움직이는 방법을 다룬다. 여기서 '기민'하게라는 단어에 주목해야 하는데, '기민함'은 무작정 뛰어들어 일단 서비스를 만들고 시작하는 방식을 의미하지 않는다는 사실이 정말 중요하다. 스타트업은 대기업과는 달리 시간/돈/사람이라는 자원도 부족할 뿐더러 거대 자본력이 미치지 못하는 틈새를 잽싸게 노려야하기 때문에 일단 시작한 다음 실패할 경우 경험을, 성공할 경우 부와 명성을 얻는다는 생각으로 무작정 덤비고 보는 경우가 많다. 하지만 무작정 'just do it' 정신으로 무장하고 뛰어들 경우 실제 사용자가 전혀 원하지 않는 서비스를 밤새 만드느라 피 같은 돈과 시간과 인력을 _낭비_하고 결국 좌절과 절망으로 끝맺는 시나리오로 끝나버린다. 여기서 우리는 스타트업의 성공율이 지극히 낮다는 사실에 다시 한번 주목할 필요가 있다. 하지만, 그렇다고 해서 스타트업이 대기업처럼 철두철미한 계획과 장기간에 걸친 서비스 개발을 할 수도 없고 그렇게 개발한다고 해서 성공하리라는 보장이 없으니 이야 말로 진퇴양난의 상황이다.

이 책은 요구사항이 불확실한 소프트웨어 개발 과정을 현대적으로 재해석한 애자일 기법을 창업 과정에 투영시켜 어떻게 하면 너무 빠르지도 않게 너무 느리지도 않게 창업 과정에서 _고객이 원하는_ 서비스나 제품을 _제 때_ 출시할 수 있는지를 설명하는 좋은 책이다. 막연하게 가입자 숫자만 주물럭거리는 허무 지표(원인과 결과를 파악해 행동으로 옮기기 곤란한 각종 통계 자료) 대신 (과학적인 사고 방식으로 실험을 하고 결과를 분석해 긍정적인 피드백을 주는) 혁신 회계 기법을 동원해 회사의 성장 엔진이 제대로 돌고 있는지 확인하는 방법, 어떤 기능이나 디자인을 변경하고 나서 실제 고객 만족도나 고객 유지/가입율이 높아지는지 낮아지는지 변화가 없는지를 점검하는 방법, 제품 개발 과정에서 포기해야 할지 지속해야 할지 아예 다른 측면으로 방향을 전환해야 할지를 결정하는 방법, 지속적인 성장을 위해 회사 내부에서 진행해야 하는 각종 활동을 (비록 미국 사례기는 하지만) 여러 가지 사례와 통계 자료로 제시하고 있기에 읽을 때만 기분 좋은 자기 계발서 따위와 완전한 차별 포인트를 제공한다.

한 때 창업을 하려고 무모하게 시도했다가 이륙도 못하고 주저앉은 실패를 맛보고, 다시 한번 창업을 염두에 두고 허무 지표를 주물럭거리며 막연히 기획만 계속하며 부푼 꿈만 키웠다가 여러 가지 문제로 다시 한번 주저앉고, 굳게 마음먹고 스타트업을 시작한지 거의 1년이 다 되어 가는 현 시점에서 이 책은 충격 그 자체로 내게 다가왔다. 결론:스타트업을 시작하려거나 현재 다니는 회사/조직에서 새로운 일을 시작하려는 사람들께 강력하게 추천한다.

토요일, 11월 10, 2012

[독서광] 똑똑한 정보 밥상

처음 이 책을 받아 중간쯤 펼쳐 본문을 읽었을 때, 그리 내용이 와닫지 않아 책을 덮어두었었다. 그러다 무슨 생각이 들었는지 몰라서 출근길에 이 책을 들고 버스에 탔는데, 의외로 엄청 재미있는 내용이 등장하기 시작해 이틀 정도 집중적으로 시간을 투자해 가뿐하게 다 읽고 말았다. 제목이나 목차만 놓고 보면 상당히 원론적이고 훈장질(예: TV나 자극적이고 선정적인 잡지를 멀리하고 양서를 골라 열심히 읽자)하는 내용이 등장할 것 같은데, 다이어트-광고시장-정치-뇌신경학을 연결하는 흥미진진한 이야기가 펼쳐진다.

엄청나게 많은 음식(특히 열량만 높고 영양소는 작은 인스턴트 불량 식품)이 지천에 널리더라도 개인이 이를 과도하게 소비하지 않으면 비만에 걸릴 가능성이 줄어들 듯이, 엄청나게 많은(특히 정치적으로 편향되고 쓰레기 같은) 정보가 사방에서 우리를 유혹하더라도 합리적으로 가려서 소비하면 정보 비만에 걸릴 가능성이 줄어들 것이라는 내용이 이 책의 핵심이다. 그렇다면 어떻게 정보를 합리적으로 소비할까? 이 책에서는 의식적으로 정보를 소비하기 위한 여러 가지 방법을 이론적인 내용과 개인의 경험을 토대로 소개하고 있다.

하지만 본문에서 나오지만 우리를 방해하는 요소들은 엄청나게 많다. 사람을 낚으려고 환장한 듯이 선정적인 문구로 도배된 온라인 신문 제목, (어디라고 꼭 찍어 말하지는 않겠지만) 정치적으로 편향된 일부 매체들, 개인화라는 명목하에 마치 달달한 아이스크림처럼 자기가 좋아하는 정보만을 열심히 실어날라주는 SNS, 게다가 이를 24시간 공급하도록 기반 구조를 제공한 스마트 폰... 주위를 돌아보면 정보 다이어트를 방해하는 적들이 지천에 널려있다. 물론 다이어트 기법과 다이어트 서적만큼은 아니지만 GTD나 뽀모도로 등 개인의 한정된 시간 관리를 유도하는 여러 가지 방법과 수 많은 책이 나오긴 했지만, 본질을 변하지 않은 것 같다. 저자는 다음과 같이 말한다.

"음식을 먹되, 과식하지 말고, 주로 채식을 하라"는 권고(또는 충고)와 마찬가지로 "신중하게 소비하라. 당신에게 아부하는 가짜 정보에 현혹되지 말고 진짜 정보를 흡수하라."

자 그러면 간략하게 책의 내용을 살펴볼까? 이 책은 크게 3부로 나뉘어져 있다. 1부는 현재 우리가 습득하는 정보 원천과 종류를 열거하며 과연 얼마나 정신적으로 바람직한지를 따져본다. 2부는 똑똑한 정보 밥상을 차리기 위한 기본적인 요소(데이터 이해력, 높은 주의력, 유머 감각)을 열거하며, 이를 사용해 정보 밥상을 현명하게 차리는 방법을 소개한다. 3부는 좋은 정보를 활용해 어떻게 사회에 기여할지를 설명한다. 그리고 가장 마지막 '프로그래머에게 보내는 편지'에서는 전세계적인 범위나 전국적인 범위에서 벌어지는 여러 가지 정치적인 전투(?)에 말로만 끼어드는 대신 자기가 사는 지역에서 실제 도움이 되는 일을 NGO 등의 허락이나 상의 없이 단독적으로 진행하라는 조언을 아까지 않는다. 개인주의적인 성향이 짙은 프로그래머들이 새로운 정보 전파자로 등극하는 상황에서 사회에 변화를 일으킬 수 있는 풀뿌리 운동 방안을 제시하므로 관심있는 독자분들이라면 특히 3부를 눈여겨 보기 바란다.

결론: 정치/사회 변혁, 정보 과잉 시대의 생존 방법, 미국 정치(이번 대선도 무척 재미있었지?)와 대중 매체(폭스 TV는 어딜 가도 문제다. 낄낄)에 관심이 많은 분들이라면 즐겁게 읽을 수 있으리라는 생각이다.

토요일, 11월 03, 2012

[독서광] 두뇌를 팝니다

조금 시간이 지나긴 했지만, 포레스트 검프라는 영화를 기억하시는 분이 계실테다. 로버트 저메키스가 감독하고 톰 행크스가 주연을 맡은 이 영화는 미국 현대사를 절묘하게 가져와 포레스트 검프라는 주인공의 삶에 절묘하게 엮는 방법으로 많은 사람들의 심금을 울린 코메디(응? 이 영화가 1995년 미국 코메디 상을 받았다는 사실을 모르는 분 분명히 있다) 영화다. 이 영화에서 여러 가지 정치적인 사건이 나오는데, 베트남전, 핑퐁 외교, 워터게이트 사건, 반전 운동 등 굵직한 사건마다 검프가 등장해 중심에 서는 모습을 보면서 우연도 이런 우연이 없어!라는 생각이 들었었다.

자 그렇다면, 검프가 좌충우돌 미국 현대사의 격류에 휩쓸리는 동안 뒤에서 이런 변화를 주도한 사람 또는 단체 또는 집단은 누구일까? '미제국을 만든 싱크탱크 랜드연구소'라는 부제가 붙은 '두뇌를 팝니다'는 바로 현대 미국의 싱크탱크로서 랜드연구소가 어느 정도 영향을 미쳤는지 차근차근 제대로 풀어쓰는 멋진 책이다. 지난번에 소개드린 닥터 스트레인지러브나 로버트 맥나라마 장관을 대상으로 한 인터뷰를 스크린으로 옮긴 전쟁의 안개를 즐겁게 감상하신 독자분들께서는 이 책까지 읽을 경우 이론적으로 한 단계 업그레이드하는 좋은 기회가 되지 않을까 싶다.

랜드연구소는 태생이 미공군을 위한 이론적인 토대를 마련하는 연구소에서 시작했다. 따라서 비행기 무기 제작, 핵무기 제작, 전쟁에 필요한 각종 계산 등을 하는 곳으로 착각(?)하기 딱 좋은데, 처음부터 산업 자본과 연결되어 있었고(첫 사무실이 더글라스 항공사의 공장 한 켠을 빌어 시작했으니... 할 말 없다) 나중에는 두뇌들이 일거 국방부와 정계로 진출함으로서 군-정부-산업계의 융복합 시스템을 완벽하게 만들어내고 미국의 보수적인 각종 정책들에 이론적인 토대를 제공함으로써 엄청난 영향력을 행사하게 된다. (가상이긴 하지만...) 포레스트 검프가 겉으로 보이는 역사를 엮었다면 랜드연구소는 쿠바 사태, 베트남전, (핑퐁 외교는 아니지만 지속적인 군비 경쟁을 활용한) 소련의 붕괴, 워터게이트 사건, 911 테러 직후 테러와의 전쟁을 거치며 겉으로 절대 보이지 않는 역사를 뒤에서 주도적으로 엮었다고 보면 틀림없다.

이 책을 읽다보니 갑자기 랜드 연구소와 이미지가 겹쳐지는 어딘가가 떠올랐다. 바로 구글! 랜드 연구소는 철저하게 정량적인이고 분석적인 연구(체계 분석, 게임 이론, 공산주의 사상의 필연적인 붕괴를 형식언어로 예언한 애로의 불가능성 정리)로 세상의 모든 현상을 설명하려 들었고 사람은 부차적인 요소(효율적인 폭격 연구를 할 때 조종사가 '인간'이라는 가정을 하지 않아 공군에서 기절초풍한 일화도 나온다)로 보기 때문에 이 세상은 스포크 선장과 같은 합리적인 사람들로 가득 차 있으며 숫자, 논리가 이 세상을 지배해야 한다고 시종 일관 변하지 않는 이론적인 틀을 만들어내는 데 성공했다. 구글 역시 사람이 개입하지 않은 상태에서(갑자기 사람을 최대한 활용하는 네*버가 생각난다. ㅋㅋ) 컴퓨터가 정보를 처리해야 한다는 기본적인 철학을 토대로 성장한 회사이므로 어떻게 보면 랜드 연구소의 현대판 IT 버전이 구글일지도 모른다는 상상을 해본다.

정치적이고 철학적인 이야기가 많이 나오므로 쉽게 읽기는 어렵지만, 발톱 까칠한 독자분들이라면 충분히 시간을 투자해 읽을만한 가치가 있다는 생각이다. 결론: (미국 현대사에 관심이 많은 정치/군사 오덕들에게) 강력 추천!

금요일, 11월 02, 2012

[일상다반사] 2012년 KELP 공개 세미나

오는 11월 10일(토)에 KELP 2012년 공개 세미나가 열린다는 소식이다. B급 프로그래머도 "차량용 네트워크 변천사: CAN부터 차량용 이더넷까지"라는 제목으로 세션 하나를 맡았으므로 혹시 차량용 네트워크에 관심이 많은 애독자분들께서는 참석하시면 여러 가지 재미있는 이야기를 들을 수 있을 것이다. 지난번과 마찬가지로 개인적으로 세미나 참석자 여러분들께 드릴 선물(?)도 준비했으므로 간단한 퀴즈를 맞추고 선물도 받는 즐거움도 누리시기 바란다.

세미나 전반부는 차량용(그리고 늘 붙어 다니는 항공기용) 네트워크 발전사를 차례로 소개하고, 후반부는 CAN/LIN/FlexRay/MOST/이더넷에 대한 기술적인 내용을 비교 정리한다. 1시간 30분만에 차량용 네트워크 관련 내용을 일목 요연하게 정리하는 방식으로 발표 자료를 구성했으므로 자동차 관련 소프트웨어에 관심이 많은 분들께 도움이 되리라는 생각이다.

UPDATE: 글을 올리고 나니 바로 행사 페이지가 업데이트 되었습니다. 참고하세요.

EOB

토요일, 10월 27, 2012

[독서광] 인간없는 세상

지구 환경을 파괴하는 인간의 온갖 악행(?)을 다루며 여기에 대해 경종을 울리는 책은 주기적으로 등장해 사람들의 관심을 끌곤했다. 물론 너무 오버하는 바람에 사실이 아니라고 밝혀진 경우도 있었고 문제를 인식하고 여기에 대응함으로써 파괴를 늦추거나 회복하는 실마리가 된 경우도 있었다. 그런데, 이번에 읽은 '인간 없는 세상'은 '만일 지구상에서 사람들이 사라진다면?'이라는 가정 하에 사람들이 지구에 내놓은 짓(?)이 무엇인지를 담담하게 그려내는 흥미로운 책이다.

사람이 사라짐에 따라 통제(?)되지 않는 상황에서 사람들이 만든 거대한 구조물이나 인공물이 자연의 힘 앞에서 원상 복귀되는 이야기를 읽다 보니 몇 가지 생각이 떠올랐다. 일본을 덮친 쓰나미로 인해 화학단지에 화재가 발생하고 초대형 원전 사고가 발생한 사례는 비록 인간이 있다고 하더라도 통제가 안 될 경우(사실상 사람들이 존재하지 않는 상황과 유사하다) 발생하는 모습을 너무나도 적나라하게 보여줬다. 이 책에서 다루는 관련 내용(10장 텍사스 석유화학 지대, 15장 방사능 유산)은 상상이 현실화될 경우 어떤 일이 벌어질지를 정확하게 예측했다고 보면 틀림 없겠다.

다음으로 인간이 만든 구조물은 일단 한 번 만들어지고 나면 영원히 지속되는 대신 끊임없는 유지 보수를 요구하며 설상 가상으로 자연은 끊임없이 이를 원상태로 되돌리려고 하므로(2장 집은 허물어지고, 12장 세계 불가사의의 운명), 4대강 공사 후 어떤 일이 벌어질지 안 봐도 블루레이되겠다. T_T 다음 두 사진은 봄비에 무너진 4대강, 병성천의 변화 [비교사진]에서 가져왔는데, (사람이 행하는) 공사는 어렵고 (자연이 행하는) 원상복구는 너무나 쉽다. 결국은 초기 건설에 들어간 천문학적인 비용을 차치하고서라도 유지 보수에 어마어마한 노력과 비용을 지속적으로 투자해야 하며 이게 국가 경쟁력을 얼마나 높일지는 머리를 이리저리 굴려봐도 정말 모르겠다. 경부고속도로 역시 공사 후 유지보수비가 훨씬 더 많이 들긴 했음에도 불구하고(구간 직선화등으로 고도화하게 위해 지출한 비용을 포함하면 진짜로 어마어마한 유지보수 비용이 나올거다) 사람과 물류 이동 속도를 높여 부가가치를 창출하는 데 성공했지만(물론 다른 사업을 제치고 수행한 경부고속도로 건설이 국가적인 차원에서 궁극적으로 이익을 가져왔는지 손해를 가져왔는지 따지는 문제는 너무나도 복잡하므로 이 부분에 대한 평가는 보는 시각에 따라 극과 극으로 갈릴 가능성이 높다), 4대강은 끊임없는 유지보수와 고도화 작업을 거친 자전거 도로로 자전거들이 씽씽 달린다고 해서 이게 과연 어떤 이익을 우리에게 가져다줄까? 경부고속도로와 4대강 정비사업은 과거에 제대로 먹히던 전략/전술이 계속 유효하다고 보고 사업을 벌일 경우 정말 곤란에 빠진다는 좋은 사례로 남지 않을까 싶다.

마지막으로 구글 데이터 센터의 내부가 최초로 공개됩니다.라는 기사를 읽고 나서 사람이 사라진다면 초대형 데이터센터의 운명이 어떻게 될지 잠시 눈을 감고 상상해봤다. 사람이 사라지게 되면 당연히 컴퓨터, 스마트폰, 태블릿을 이용한 트래픽이 급격하게 줄어들기에, 데이터센터로 들어오는 네트워크 트래픽이 급격하게 줄어들며 동시에 관리 목적을 제외한 나머지 데이터베이스 서버와 파일 서버에 자료가 쌓이지 않는다. CPU와 하드디스크는 하는 일 없이 no-op을 수행하게 되며, 간만에 컴퓨터 세상에 평화가 찾아오는 셈이다. 하지만 데이터센터로 연결된 전력선이 끊어지거나 데이터센터로 들어오는 전력을 제어하는 변전 장치에 이상이 생기거나 근처 발전소가 정지해버린다면 일시적으로는 UPS가 가동하겠지만 곧 축전지가 방전되며, 데이터센터에 디젤로 동작하는 비상 발전기가 요행히 동작했다고 하더라도 조만간 연료가 바닥나면서 데이터센터에 입주한 수 많은 컴퓨터는 일제히 침묵에 빠질 것이다. 운이 좋아 전원이 계속 공급되는 경우에도 공조 장치에 이상이 생긴다면 과열을 감지한 CPU가 스스로 셧다운 명령을 보드에 내려 컴퓨터들이 차례로 침묵에 빠져들기 시작할 것이며, 이런 지능적인 관리 기능이 없는 일부 컴퓨터의 과열에서 비롯된 화재가 데이터센터의 전선 피복을 태우며 겉잡을 수 없이 번져나갈 것이다. 요행히 하론 소화기가 동작해 초기에 화재를 진압한다고 하더라도 전선 합선 등으로 데이터센터의 전력 관리 기능에 치명적인 타격을 가하며 결국에는 안전을 위해 전체 전원이 모두 차단되는 상황에 이를 것이다. 고철덩어리로 전락한 컴퓨터들은 시간이 흘러흘러 데이터센터가 붕괴됨에 따라 그 속에 묻히게 되며 먼 훗날 누군가 데이터센터 잔해를 발견하면 플라스틱 성분과 철 성분과 금을 비롯해 일부 희귀한 금속 성분이 뒤죽박죽된 이상한 광산이라고 여길지도 모르겠다.

결론: 가을을 맞이해 다양한 생각거리를 던져주는 좋은 책이므로 강력 추천한다.

EOB

토요일, 10월 20, 2012

[독서광] Grouped: 세상을 연결하는 관계의 비밀

최근에 올린 글을 살펴봤더니 경제/경영 블로그 답지 않은 책만 소개한 듯이 느껴져서 반성하는 의미에서 오늘은 소셜 웹의 숨은 영향력과 그룹의 특성을 요약 정리한 책인 'Grouped: 세상을 연결하는 관계의 비밀'이라는 책을 소개하겠다. 부제에서 '비밀'이라는 단어가 나오므로 이 책이 엄청난 내용을 제공하리라고 기대하면 곤란하다. 이 책은 요즘과 같이 바쁜 세상을 위해 '요약/정리' 목적으로 나왔다고 보는 편이 오히려 타당하다는 생각이다.

자 그렇다면 이 책이 다루는 핵심은 무엇일까? '전문적인 지식을 보유하고 추종자가 많고 인맥이 풍부한 영향력자가 오피니언 리더라는 명칭에 걸맞게 정보 확산에 상당한 기여를 한다는 기존 상식에 반해 서로서로 연결된 소규모의 그룹이 다수 모여서 만들어진 소셜 네트워크를 타고 자발적으로 정보가 확산된다'고 간략하게 요약 정리할 수 있다. 이런 주장을 중심으로 전반부는 소셜 네트워크의 특성을 다루고 후반부는 소셜 네트워크를 활용한 효과적인 마케팅과 광고 기법을 다룬다.

이 책에 따르면 관계를 맺는 그룹의 수는 가장 친밀한 형태를 구성하는 5부터 가장 광범위한 500에 이르기까지 한계가 지어진다고 한다. 5-15-50-150-500이라는 일정한 패턴을 따르며 내가 속한 그룹이 확장되는 과정에서, 정기적으로 대화를 나누고 근황을 나는 수준이 50명짜리 그룹으로 한정되기 때문에 이 그룹을 벗어나면 다른 사람이 무슨 생각을 하는지 어떻게 지내는지 모르는 심리적인 한계가 생기기 마련이다. 하지만 정보는 양방향 의사 소통에 의해 전달되므로(물론 언론 등을 통해 조작된 정보를 일방적으로 쏟아부으려는 시도는 아주 오래 전부터 시도되어 왔고 상당한 효과를 거두기도 했다), 정보를 전달하는 쪽의 파워가 막강할지라도 정보를 받아들이는 쪽에서 수용할 의지가 없다면 허공에 발길질하는 수준을 벗어나지 못한다(그렇기 때문에 일방적인 표교 행위는 거의 성과를 얻지 못한다). 따라서 사람들의 수용한계점이 낮을 때(즉 친밀한 집단 내에서) 아이디어가 확산되고 정보가 교류되며, 여러 집단에 속한 허브(라고 쓰고 문어발이라고 읽자)가 특정 집단 내의 아이디어를 다른 집단으로 확산시키는 역할을 한다. 말이 길었는데... 이게 바로 소셜 네트워크가 동작하는 방식이 아닌가?

그렇다면 이런 특성을 사용해 어떻게 효과적으로 마케팅과 광고를 할 수 있을까? 사람들의 몇 가지 특성(예: 속한 주변 환경에 영향을 받아 동기화 하려는 경향, 자기에게 유리한 쪽으로 선택해 기억하려는 경향, 충동적인 의사 결정을 사후 합리화하고 옹호하려는 경향, 등등)을 바탕으로 소셜 네트워크에 맺어진 친구 관계를 제대로 이용하면 약장수식 대규모 광고 켐페인보다 훨씬 더 가격 대비 성능이 뛰어난 표적 광고와 마케팅이 가능해지리라는 결론에 이른다. 물론 말은 쉽고 실천은 어렵기에 머리 속으로는 그럴싸해보이더라도 소셜 네트워크를 활용한 마케팅과 광고는 맥락과 운에 따라 승패가 완전히 갈릴 가능성이 있으므로 "Your mileage may vary."라는 경고 문구를 머리 속에서 지우지 말자.

뱀다리: 어제 야후와 오버추어 한국 지사 철수설이 발표되었는데, 이제 자영업자들은 키워드 광고 자체도 사실상 네이버(엄밀히 말해 NBP)의 독점 하에 들어간다는 사실을 이해하고 소셜 네트워크 마케팅/광고 영역으로 위험을 분산할 필요가 있지 않을까 싶다. 물론 소셜 네트워크 구축 비용이 키워드 광고에 들어가는 (금전/시간/기회) 비용보다 작다는 가정 하에서 하는 말이므로, 서비스/용역/재화 판매에 눈코뜰새 없는 소규모 자영업자들이 소셜 네트워크 관련 사항까지 공부하고 적용할 여력까지 존재하는지 잘 모르겠다. 이번 구글 분기 실적에서 광고 CPC 감소가 눈에 띄는데 한국도 어떻게 될지 지켜볼 필요가 있다.

토요일, 10월 13, 2012

[독서광] 스크럼

오늘은 가을맞이 애자일 특집편의 마지막으로 '스크럼'을 소개하겠다. 스크럼한 페이지에 들어갈만큼 설명이 짧기 때문에 도입과 실천이 쉽다고 생각하기 딱 좋다. 하지만 스크럼 이면에 숨겨진 자기 조직화와 관련한 기본적인 배경 지식이 없는 상태에서 무작정 도입하다가는 진짜 큰 코 다친다. 다시 말해 스크럼은 스스로 성장해나가는 자생적인 개발 조직이 구축되지 않으면 실천할 이유도 없고 실천할 방법도 없다. 소프트웨어는 본질적으로 복잡하니까 끊임없는 변화와 예측 불가능한 사건/사고가 터지기 마련이다. 하지만 시도 때도 없이 찾아오는 변화와 예측 불가능에 대한 대응책이 없다면 죽음의 행진에 빠져들기에 설령 프로젝트가 요행히 성공리에 끝난다고 하더라도 팀도 망가지고 팀원도 망가지고 다음 재미있는 게임을 기대하기 어려운 상황에 처한다. 자기 조직화와 지식 습득 창출을 위한 체계적인 방법이 중요한 이유가 바로 여기에 있다.

'스크럼'은 지난번에 소개한 익스트림 프로그래밍과 마찬가지로 단순한 방법론 소개나 우수 사례를 나열하는 방식에서 벗어나 스크럼의 이면에 숨겨진 철학과 원리를 소개하며, 어떤 측면에서 실제 현업에 도움을 주는지 명쾌하게 설명하는 좋은 책이다. 목차를 보면 알겠지만, 이 책은 크게 세 부분으로 나뉘어진다. 스크럼 실천법과 적용법을 중심으로 실제 스크럼이 어떻게 돌아가는지 소개하는 부분과 스크럼의 이론적인 내용을 다루는 부분과 실제 사례와 응용 방법을 다루는 부분이 차례로 나온다. 스크럼은 독특한 용어와 개념을 사용하기 때문에 처음 접할 때는 이질감이 느껴질지도 모르지만, 실제로 실천법과 적용법은 그렇게 복잡하지 않으므로 익숙해지고 나면 끈기와 집념이 승패를 좌우한다고 봐도 틀림없다. 여기서 문제는 '왜?'다. 스크럼을 기계적으로 실천하다보면 도대체 이런 무의미한 작업을 계속해야 할지 말지에 대해 고민을 안 할 수 없는데(고민 안하는 분들은 둘 중 하나: 스크럼이 뭔지를 확실하게 알고 있거나, 또는 엉덩이가 무겁거나(책상에 오래 앉아 있고 운동을 지속적으로 할 수 있는 사람들의 좋은 특성이다)), 이럴 때 이 책을 한 번 읽어주는 센스를 발휘하면 도가 통할지도 모르겠다.

'컴퓨터 vs 책' 블로그 애독자라면 자기 조직화와 복잡계를 다루는 여러 책(예: 혼돈의 가장 자리, 부의 기원)을 읽어보셨을 테니까, '스크럼'을 읽으면서 소프트웨어 개발 팀 관점에서 자기 조직화와 복잡계를 다시 한번 꼼꼼하게 따져보면 이해도가 더욱 높아지리라 본다. 책 소개 내용 중에서 가장 멋진 부분을 소개하며 서평을 마무리 한다. 결론: 강력 추천!

‘스크럼’의 가치는 존중과 헌신, 개방과 집중 그리고 믿음과 용기이다. 소외된 개인이 아니라 자기 조직화된 구조에서 각기 경력과 경험이 다른 사람들이 서로 존중하며 자신의 공약을 지키려고 헌신한다. 프로젝트에 대한 모든 내용을 투명하게 드러낸 가운데 자신의 모든 기술과 노력을 맡은 일에 집중하는 것이다. 서로 손을 내밀고 잡아주는 믿음과 자신의 판단을 신뢰하고 관철시키려는 용기, 이 모든 것을 열린 마음으로 존중해 주는 가치, 바로 스크럼의 진정한 가치이다.
EOB