토요일, 8월 25, 2012

[독서광] 창조자들

한 동안 경제/경영 블로그 카테고리에 거미줄이 쳐진 상태라 대단히 죄송한 마음에 오늘은 제목부터 있어 보이는 '창조자들'이라는 아주 재미있는 책을 여러분들께 소개하려 한다. 간략하게 요약하자면, 이 책은 역사상 아주 유명한 인물 17명을 골라내어 창조적인 작품(글, 그림, 음악, 건축, 옷, 영화, 등등)을 만들어내기 위한 이들의 내/외적인 투쟁을 다루고 있다. 일반적인 책과는 달리 어두운 이면을 적나라하게 드러내므로 어릴적 위인전을 읽고 이미지가 굳혀진 위대한 사람들에 대한 환상을 아직도 동경하는 분들이라면 독서 과정에서 대단히 곤란한 느낌을 받을지도 모르겠다.

이 책에서 다루는 사람들이 누군지부터 살펴보자. 제프리 초서(영문학), 알브레히트 뒤러(인쇄술), 윌리엄 세익스피어(영문학), 요한 제바스티안 바흐(음악), 조지프 밀러드 윌리엄 터너/가쓰시카 호쿠사이(풍경화), 제인오스틴(영문학), 오거스트 웰비 노스모아 퓨진/외젠 비올레르뒤크(고딕식 건축), 빅토르 위고(영문학), 마크 트웨인(영문학), 루이스 컴퍼트 티퍼니(유리 공예), 토머스 스턴스 엘리엇(영문학), 크리스토발 발렌시아가, 크리스티앙 디오르(패션), 파블로 피카소/월트 디즈니(미술). 일단 등장하는 주인공을 놓고 봐도 만화 영웅들을 왕창 모아 히트친 어벤저스는 저리 가라 수준이다. 하지만 이들의 숨겨진 이야기를 읽다보면 정말로 기도 안 찰 상황이 된다.

예를 들어, 피카소 편에 나오는 일화를 볼까?

그는 자신에게 여자라는 존재는 "여신 아니면 현관 깔개"라 했고, 자신의 목적은 여신을 현관 깔개로 만드는 것이라고도 했다. 그와 오랫동안 함께 지낸 정부 한 사람은 그를 이렇게 평가했다. "그는 우선 여자를 겁탈하고 ...... 일을 시작한다. 나에게든 다른 여자에게든 항상 똑같다."

빅토르 위고는 또 어떻구... T_T

"이걸 잡아 보렴, 꼬마야. 이 나이치고는 흔치 않은 물건이지. 나중에 네 손자에게 말해줄 수 있을 게다. 네 작은 손으로 시인 빅토르 위고의 물건을 만졌다고!" 그러더니 잠옷을 내리고 복도를 따라 먹이를 찾아 성큼성큼 걸어갔다.

T.S 엘리엇도 (위고나 피카소의 반대편에서) 결코 만만치 않은 삶을 살았다. T_T

엘리엇은 자기보다 나이가 약간 많고 글쓰기와 그림 그리기를 소원하는 영국 숙녀 비비언 헤이 헤이우드와 결혼했다. 어떤 면에서는 개인적 불행이었고, 또 다른 면에서는 생산 활동의 자극제이자 앞으로 남은 삶을 규정하는 사건이었다. 비비언은 못생긴 여자는 아니었지만 육체적으로나 정신적으로나 허약한 사람이었다. 늘 어딘가가 아프기 시작하거나 실제로 아프거나 병에서 회복 중이거나 셋 중 하나였다. 엘리엇도 건강했던 때가 한번도 없었으며, 탈장 방지대는 성생활뿐만 아니라 일상 생활에도 늘 장애가 되었다. 결혼 초부터 두 사람은 경쟁하듯 우울증에 시달렸다.

뭐 이런 눈물나는 내용도 있지만, '바흐'편은 "괴델, 에셔 바흐"나 바흐 이전의 침묵에서 밝혀지지 않은 또 다른 흥미로운 이야기를 전달해준다. 바흐는 실내악에서 새로운 분야를 개척해 하프시코드와 첼로를 독주가 가능한 악기로 승격시켰고, 살아 생전에 발표한 아홉 편 이외에 현존하는 1200 편과 소실되었을 것으로 추정하는 400~500 편의 음악을 작곡한 사실은 알려져 있지만, 이 책을 읽다보면 자신이 오르간 전문가(연주자 뿐만 아니라 제작자)라는 장점을 살려 당대 최고 수준의 오르간 음악을 작곡할 수 있었고, 오르간을 연주하기 위한 레지스터레이션 방법을 평생 연구하며 이를 토대로 학생들을 훈련시켰고, 음악적인 완성도를 추구했지만 당대에는 현학적인 작곡가로 치부되고, 그 결과 유족들에게 남겨진 재산은 거의 없다는 사실도 알 수 있다. 하지만 '바흐 이전의 침묵'에도 나오지만 나중에 멘델스존이 고모할머니 이야기를 듣고 찾아낸 '마태 수난곡'이 대박을 치면서 업적이 완전히 재평가되는 계기가 마련되고 아직까지도 영원 불멸의 작곡가로 남아 있는 모습을 보면 사람 일은 알 수 없다. 바흐가 얼마나 대단한지는 이 책에 나오는 다음 문장으로 설명이 가능한 듯 싶다.

바흐의 작품에서는 시류에 편승하는 반복이나 적당히 손쉽게 넘어간 부분, 하다못해 비속한 낌새조차도 찾을 수 없다. 공연을 할 때도 작곡을 할 때도, 날이 바뀌고 해가 바뀌어도, 심지어 고용주가 흔히 그렇듯 좋고 나쁜 것도 구별하지 못하는 이류라 할지라도 그는 최고의 음악을 선보였다.

실존 인물인지 아닌지 아직도 논쟁이 분분한 세익스피어 이야기도 재미있다. 뛰어난 문학 작품은 말할 나위 없고, 영어 표현력을 몇 배로 높이고 혼자서 새로운 단어를 3000~6000개 창조한 세익스피어가 얼마나 대단한지는 이 책에 나오는 다음 표현을 보면 고개가 끄덕일 테다.

우리는 세익스피어의 보석 상자에 있는 말들을 의식적으로 인용하기보다는 기억해 두었다가 본능적으로 꺼내 쓴다. 우리는 마치 숨을 쉬듯 '햄릿'을 인용한다.

bandit, rubbish, charmingly, tightly, uncomfortable, unaware, undressed, unpolished, uneducated, unpruned, untrained, affecting, anchovy, weather-bitten, well-ordered, wormhole, well-read, widen, cerements, silverly와 같은 단어가 모두 세익스피어가 새로 만들었다는 이야기를 듣고 깜짝 놀랐다. 세익스피어는 16세기 사람이니, 국어 시간에 배운 고어 수준인 단어가 이리도 세련되어 있다는 사실이 믿겨지지 않은 정도다. 단어도 단어지만 세익스피어가 쓴 희곡에 나온 세련된 표현은 더욱 놀랍다. 본문에 나오는 햄릿의 예를 잠시 살펴 볼까?

"제가 설치한 폭탄에 제가 당한다." "신은 왕의 주변에 울타리를 치는 법.", "준비가 전부지", "누더기를 걸친 왕", "시대의 추상적이고 짧은 연대기", "죽음이라는 잔인한 병사가 틈을 주지 않고 붙잡아 가다.", "냄새가 하늘을 찌르는군"

한국어로 번역한 문구만 봐도 진짜 대단한데, 영어로 그것도 16세기 공연장에서 이런 표현이 나왔을 때 마치 코카콜라 이미지 광고가 처음 등장했을 때만큼이나 센세이션을 불러일으켰을 것 같다. 언제 세익스피어 희곡을 차분히 다시 살펴봐야겠다는 생각이 들었다.

결론: 주변 상황을 벗어나거나 이용하거나 극복하거나 ... 어찌되었든 새로운 분야를 개척하는 위대한 사람들의 이야기를 좋아하는 분들이라면 이 책을 놓치지 마시길...

EOB

일요일, 8월 19, 2012

[독서광] Mercurial: The Definitive Guide

소시적에 RCS(Revision Control System)부터 시작해 CVS를 찍고 SVN(Subversion)을 거쳐 요즘에는 분산 버전 관리 시스템인 Hg(라고 쓰고 mercurial이라 읽는다)를 사용하고 있다. 전사(응?)적으로 사용하기 시작한지 6개월이 넘었기에 회사 내부에서는 어느 정도 사용이 정착되었다고 보지만 단순한 중앙집중식 버전 관리 시스템에 비해 여전히 배우고 익혀야할 내용이 많다는 생각이다. 오늘은 오라일리에서 나온 Mercurial 서적인 'Mercurial: The Definitive Guide'를 읽고 느낀 점을 정리해보겠다.

요즘 들어 아주 좋은 컴퓨터 관련 도구와 기술이 적극적으로 공개되고 있는데, 그 만큼 보고 듣고 읽고 익혀야할 내용도 많아져서 인지적인 과부하가 걸리는 상황이다. 개발자에게 있어 가장 중요한 무기인 코드 관리 시스템 역시 발전에 발전을 거듭해 요즘에는 git가 견고한 SVN의 벽을 허물고 주류로 등장하는 상황이다. 특히 소셜 코딩을 기치로 내걸고 등장한 긱스런 회사인 github가 뜨면서 git에 대한 관심이 무척 높아지고 있다. 하지만 git 사용법은 절대로 쉽지 않다. 원래 리눅스 커널 관리를 위해 만든 시스템이다보니 메인테이너의 편의성을 극대화한 측면이 많기 때문이다. 복잡한 명령 구조와 시나리오에 따른 활용법을 익히지 않고서는 git도 또 하나의 백업 시스템으로 전락할 가능성이 높아보인다. 그렇다면 RCS와 git라는 양 스펙트럼 사이에 적절한 타협점은 없을까? B급 프로그래머 생각으로는 hg가 어느 정도 해법을 제시한다고 본다. git보다 자유도와 기능이 떨어지지만 꼭 필요한 기능은 빠짐없이 제공하며, svn보다 배우기는 어렵지만 유연성이 아주 높고 다양한 버전과 브랜치를 손쉽게 관리할 수 있다는 특징으로 인해 일단 DVCS를 적용하려는 조직에 적용하기 좋다는 장점이 있다. 게다가 git와는 달리 Hg는 유닉스/맥은 물론이고 윈도우와도 아주 친하다(이게 무슨 소리인지는 git를 윈도우에서 직접 사용해보면 바로 알게 된다. ㅋㅋ)

기존 SVN 사용자를 위해 Hg의 특징을 간략하게 정리해보자면, 가장 큰 차이점은 모든 개발자 PC(클라이언트)가 서버가 될 수 있다는 점이다. 중앙 집중식 아키텍처로 설계된 SVN과는 달리 Hg는 모든 이력을 클라이언트마다 다 들고 있고, 필요에 따라 밀고(push), 당기는(pull) 방법으로 중앙 저장소로 지정한(OnDemand로 bitbucket.org와 같은 온라인 서비스에 호스팅을 해도 되고, 내부에 직접 서버를 꾸려도 무방하다) 서버에(서) 변경된 이력을 가져오고/내보낸다. 이렇다보니 SVN과는 달리 커밋을 하더라도 중앙 서버에 반영되는 대신 지역 클라이언트 쪽에만 반영되기 때문에 개발자가 소스 코드를 지역적으로 관리하는 책임과 의무가 커진다. 물론 책임과 의무가 있는 대신 자유도가 높아지므로, 개발자는 자기 페이스에 맞춰 여러 커밋을 한 단위로 묶어 중앙 서버에 반영시킬 수 있으므로 여러 명이 동시에 작업하는 과정에서 빌드를 깨먹거나 버전이 이리저리 뒤엉켜 관리하느라 난리가 날 확률이 줄어든다. 개발자가 1~2명이라면 SVN으로 충분하지면 3~4명만 되더라도 Hg와 같은 DVCS를 사용하는 편이 생산성을 급격하게 높일 수 있으므로, 어느 정도 규모가 되는 프로젝트를 진행하기 앞서 버전 관리 시스템을 선택할 때 반드시 git나 hg도 고려 대상에 넣으면 좋겠다.

서론이 너무 길었다. 상용 Hg 서버인 Kiln을 만든 조엘 스폴스키가 작성한 튜토리얼인 Hg Init: a Mercurial tutorial를 읽었다면 그 다음 차례가 바로 Mercurial: The Definitive Guide가 아닌가 싶다. 오라일리에서 책을 구입할 수도 있고 앞서 소개한 홈페이지에서 전자책 형태로도 읽을 수 있으므로, 아이패드나 킨들이 있는 분들에게는 멋진 선물이 될 것 같다. 이 책은 Hg에서 가장 중요한 기능을 중심으로 실제 예를 들면서 설명을 전개해 나가므로 바로 적용할 수 있다는 장점이 있다. 물론 기존 CVS나 SVN을 제대로 활용하고 있던 사용자일지라도 새로운 설계 사상과 개념으로 인해 직접 해보지 않고서는 도저히 감을 잡기 어려운 난관이 있으므로 책과 실습을 병행하는 방식을 강력하게 추천한다. 목차를 보면 알겠지만, Hg의 튜토리얼은 2장과 3장에서 끝나고 4장부터는 본격적인 설명으로 들어가기에 DVCS 개념이 안 잡힌 독자라면 조엘이 작성한 튜토리얼을 먼저 읽는 편이 정신 건강에 이롭다는 생각이다.

B급 프로그래머 생각에 이 책에서 가장 중요한 부분은 4장이다. Hg를 사용하다보면 (심지어 복잡하게 브랜치나 릴리스 관리를 하지 않더라도) 내부 동작 방식을 반드시 알아야 하는 사태가 발생하기 마련이다. 예를 들어, 열심히 코드를 고친 다음 커밋을 하고 중앙 서버에 push를 하려 했는데, 갑자기 중앙 서버가 거부를 하는 상황에서 pull을 해서 다른 사람이 변경한 내용을 가져온 다음 이를 하나로 합쳐야 하는데, 완전히 orthogonal한 작업(예: A는 a.c를 고쳤고 B는 b.c만 고친 경우)에도 merge를 해야 한다는 사실이 처음에는 도저히 이해가 가지 않을지도 모른다(물론 rebase라는 확장(이라고 쓰고 야매라고 읽어야지)을 사용하면 지역 클라이언트에서 일어난 변경 내용을 잠시 분리해 중앙 서버의 내용을 선 반영한 다음에 그 위에 변경 내용을 반영하므로 merge를 회피할 수 있다). 게다가 update 명령이 클라이언트 코드 저장소와 현재 작업 디렉터리를 동기화한다는 사실을 모르고 pull만 해놓은 다음에 tip이 과거 parent를 가리킨다는 사실을 인지하지 못한 상태로 실컷 코드를 고친 다음 commit할 때 발생하는 거부 상황(해법은? update하고 나서 펑펑 터져 나오는 충돌 상황을 적절히 풀면 된다.), -F 옵션을 사용해 강제로 push해 새로운 head를 만들고 나서 동료들이 어떤 head가 작업 대상인지 몰라 우왕좌왕하는 모습(해법은? head 둘을 merge하면 된다. 참 쉽죠?) ... SVN 세계에서는 찾아보기 어려운 멘탈 붕괴 상태에서 잘 빠져나오려면 4장에 나오는 그림과 시나리오를 여러 번 읽어 충분히 숙지한 다음에 실전으로 뛰어드는 편이 좋겠다. 그리고 처음 Hg를 접하는 분들께는 9장도 많은 도움이 될 것 같다. 사용하다보면 분명히 문제는 생기기 마련인데, 9장은 자주 일어나는 현상(이라고 쓰고 문제점이라고 읽어야지...)과 해법을 제시하고 있으므로 평상시에 잘 숙지해두면 나중에 실수를 적게하고 설령 실수를 하더라도 정석대로 빠져나올 수 있게 된다.

책을 한 번 읽고서는 감이 _전혀_ 오지 않을 수도 있으므로, 일단 실제 작은 프로젝트(테스트용)에 적용한 다음에 다시 한번 책을 읽어보면 그 때 아하!하고 깨닫는 바가 클 것이다. 이렇게 말하는 B급 프로그래머도 다시 한번 천천히 본문을 정독해봐야겠다. 낄낄...

EOB

토요일, 8월 11, 2012

[독서광] 위대한 게임의 탄생 2

오늘은 지난번에 소개드린 위대한 게임의 탄생의 후속편인 위대한 게임의 탄생 2편을 읽고 느낀 점을 정리해보겠다. 1편은 외국 게임 회사들의 포스트모르템을 다루고 있는데, 2편은 동일한 구성과 전개 방식으로 한국 게임 회사들의 포스트모르템을 다루고 있으므로 현실성이 더욱 높다는 장점이 있다. 아무래도 잉여력이 충만한 외국 회사들에 비해 모든 것이 부족한 한국 회사들 이야기가 이 분야의 현실을 더욱 정확하게 반영하기 때문이리라...

본문 내용을 살펴보면 1부에서는 국내에서 출시된 게임 개발 후기를 정리하고(총 18개), 2부에서는 위대한 게임 개발팀의 공통점을 다룬다. 3부는 '위대한 소프트웨어의 탄생'이라는 제목을 붙여 게임이 아닌 일반 소프트웨어의 포스트모르템을 다루고 있다. 1편과 마찬가지로 직군별 인터뷰가 실려 있어 게임 업계(특히 국내)의 분위기를 파악할 수 있도록 도와준다. 요즘 국내 게임 업계가 큰 어려움을 겪고 있는데(실적 부진, 시장을 이끌만한 새로운 게임 부재, 외산 게임의 약진 등등) 이럴 때일수록 개발 분위기가 망가지지 않도록 개발 문화를 튼튼히 다질 필요가 있다. 이 책이 이런 분위기 쇄신에 조금이라도 도움이 되지 않을까 하는 생각이다.

1편에서 편집이 엉망이라고 투덜거렸는데, 2판에서는 3부가 불만스러웠다. 3부에서 건질 내용은 사실상 게임과 관련이 있는 "게임 엔진 프라우드넷"(이 부분은 앞서 나온 게임과 연결이 되어 있어 무척 재미있게 읽었다)뿐이며 나머지는 모두 사족이다(글이 엉망이거나 내용이 틀렸다는 이야기 절대 아니다!). 차라리 3부에서도 게임 관련 내용만 다뤘으면 훨씬 좋을뻔 했다는 생각이 든다. 왜 이런 현상이 생겼는지를 생각해봤는데, i) 게임과는 달리 일반 소프트웨어 개발은 컨텐츠나 시각화보다는 요구 사항과 업무 논리 중심으로 돌아가므로 1부와 큰 격차를 보이며, ii) 게임에서 사용하던 구성과 전개 방식이 일반 소프트웨어에서 제대로 먹혀 들어가지 않기 때문이라고 추정해본다. 만일 출판사에서 '위대한 소프트웨어의 탄생'이라는 책을 기획하고 있다면 '위대한 게임의 탄생'과는 완전히 다른 접근 방법을 사용해야 하지 않을까 하는 생각이다(이렇게 말을 하지만 소프트웨어 분야가 워낙 다양하고 제각각이라 딱히 일반적인 해법은 없어보인다).

이 책을 읽다보니 한국 개발 문화의 고질병은 게임 업계에서도 일상다반사로 등장한다는 사실(아마 다른 개발 부문에 비해 더했으면 더했지 결코 덜하지 않을 것이다)을 알 수 있었다. 끝없는 야근에 특근이 따라다니는 크런치 모드야 만국 공통 현상이니 뭐 그렇다고 치더라도, 자본과 경험 부족으로 인해 망가지는 이야기가 (순화되어) 본문에 자주 등장하는 모습을 보고 있으니 가슴이 아팠다. 현실은 현실이니 냉정하게 인정하고 넘어가야겠지만, 경쟁력 악화라는 경고등이 켜진 듯이 보여(그리고 일부는 이미 현실화되고 있다) 눈앞이 캄캄해진다.

어려운 현실에서도 묵묵하게 사람들이 좋아하는 게임을 만드는 우리 게임 개발자들 모두 힘냅시다!

EOB

토요일, 8월 04, 2012

[일상다반사] 재즈를 좋아하는 당신께...

재즈를 좋아하는 독자분들께 좋은 소식이 한 가지 있다. 오는 17일부터 19일까지 포항 칠포 해수욕장에서 국제 재즈 페스티벌이 열린다고 한다. 수도권이면 아주 좋겠지만, 그래도 프로그램 내용을 보면 구미가 당기리라는 생각이다(참고로, 재즈에 엄청 조예가 깊으신 예술 감독님이 B급 관리자 대학교 시절 룸메이트라는 사실... ㅋㅋ).

저렴한 입장료(눈물날만큼 저렴하다)에 막강한 뮤지션들의 조합이니 (특히 포항에 계신 분들... 누구라고 특정 안 해도 다들 잘 아시겠죠?) 무덥고 짜증나는 더위를 시원하게 날려버리시기 바란다.

EOB