Faust
Eritis sicut Deus scientes bonum et malum
The War of the Worlds by H. G. Wells
내가 어릴 때 읽은 것이 문고판이 아닌가하는 의심도 들었고, 원작을 다시 한번 읽어보기로 했다. 저작권 시효가 만료되어서 – 100년도 더 오래전에 나온 작품이니 – 그런건지 여러 권이 나와있었다. 아무래도 원작의 삽화가 들어있다는 황금가지판이 마음에 들었다.
분량이나 내용면에서 어릴 때 읽은 거랑 별 차이가 없었던 것 같긴 하다. 새삼스럽게 이 책은 20세기 이전의 영국을 배경으로 쓰여졌고, 그 당시는 마차와 포병대가 있던 시절이었다는 것, 그리고 스필버그의 우주 전쟁은 현재에 맞게 각색된 것이라는 점을 깨달았다. 주인공은 목사와 포병, 그리고 길에서 만난 두 여인네들을 빼고는 다른 사람이랑 다니지 않는다. 영화의 오길비 (팀 로빈스 분)는 소설의 목사에 가깝지만, 포병의 캐릭터도 약간 포함하고 있다는 생각이 든다. 그리고, 소설엔 피를 화성인이 직접 섭취하는 걸로 나오고 화성 식물을 재배하기 위해서 뿌리는 것은 아니다. 역시 수류탄으로 삼발이를 파괴하는 건 스필버그의 작품이다.
영화 “우주 전쟁”의 결말 논쟁을 보다보면, 인류의 정복 전쟁에서 병균이 어떻게 활약했는 가 – 여기에 대해 궁금한 사람은 제레드 다이아몬드의 총,균,쇠를 읽어보라 – 를 들어 원작의 결말을 옹호하는 사람들이 있다. 그처럼 우주전쟁이 인류의 전쟁에 빗댄 정치적 의미를 가지고 있다는 점은 아래와 같은 대목에서 확연히 드러난다. 현대에 영화로 각색된 우주 전쟁이 미국의 제국주의를 비판하는 정치적 메시지를 담더라도 전혀 이상하지 않은 것이다. 만약 그랬더라면 얼마나 좋았을까.
하지만 화성인들을 잔악한 종족이라고 판단 내리기 전에, 우리는 사라진 아메리카 들소나 도도새와 같은 동물뿐 아니라 같은 인간이지만 지능이 낮은 종족에게 우리가 가했던 잔악하고 무자비한 폭력을 기억해야 한다. 태즈메이니아 사람들은 보통 사람들과 비슷하게 생겼음에도 불구하고 유럽 이민자들에 의해 50년 만에 절멸되었다. 만약 화성인들이 똑같은 생각으로 전쟁을 벌인다면, 우리가 그에 대해 불평을 늘어놓으며 자비의 전도사라도 되는 양 행동할 수 있을까?
인간과 화성인과의 관계는 주인공과 포병과의 대화에서 극명하게 드러난다. 이어지는 포병의 화성인이 점령한 지구의 미래에 대한 예측도 꽤 흥미롭다.
"이건 단지 인간과 개미의 관계와 같은 거예요. 개미들은 자신들의 도시를 건설하고, 삶을 살아가고, 전쟁을 하고, 혁명을 합니다. 인간이 그들을 내쫓기 전까지 말입니다. 그러나 인간이 내쫓으면 개미들은 쫓겨나게 되죠. 지금 우리가 바로 그 개미들입니다. 단지……"
내가 말했다.
"그래요. 우린 먹을 수 있는 개미들이죠."
에필로그에서 주인공은 우주 전쟁이라는 경험이 인류에게 준 의미를 설명해준다. (소설에서 주인공의 직업은 작가다) 마치 1차대전과 2차대전을 겪은 인류의 모습과 같지 않은가? 1차대전이 일어나기도 전에 쓰여진 소설에서 말이다.
어쨌든, 우리가 또 다른 침공을 예상하든 안 하든, 미래를 보는 인간들의 관점은 이번 사건으로 인해 많이 수정될 것이다. 우리는 이제 지구가 우리 인류만을 위한 안전하고 영속적인, 보호받을 수 있는 곳이 아니라는 사실을 알게 되었다. 우리는 갑자기 우주에서 나타날 수 있는 보이지않는 선한, 혹은 악한 존재에 대해서 결코 예측할 수 없다. 우주라는 광대한 구조 속에 살아가는 우리에게, 화성인의 침공이 궁극적으로 어떤 혜택을 준 것도 사실이다. 미래에 대한 강한 믿음을 잃게 만들었다는 것이 가장 커다란 결실일 것이다. 이 결실이 인간의 과학에 가져다 준 선물은 실로 어마어마하며, 이것은 공공 복리에 대한 개념도 더욱 증진시켜 주었다. 한없이 펼쳐진 우주를 가로질러, 화성인들은 그 개척자들의 운명을 지켜보고 깨달은 바가 있을 것이며, 그것을 기반으로 금성에서 안전한 정착지를 찾고 있을 것이다. 그렇다고 해도, 아직 몇 년 동안은 화성에 대한 세심한 관측을 조금도 늦추지 말아야 한다. 쏘아 올린 발사체나 유성은 인류의 자손에게 피할 수 없는 불안감을 가져다 줄 것이다.
사물을 보는 인간의 시야가 넓어졌다는 것도 결코 과장된 표현이 아니다. 우주선이 오기 전까지, 우리가 사는 작고 아름다운 혹성을 제외하고는 이 광할한 우주 속에 어떤 생명체도 존재하지 않는다는 인식이 널리 퍼져 있었다. 그런데 이제 우리는 더 멀리 내다보게 되었다. 만약 화성인들이 금성에 도달할 수 있었다면 인간이 그 일을 해내지 못할 이유가 없다. 그리고 언젠가 태양이 서서히 식어 들어가 지구에서 살 수 없는 날이 결국 오게 되면, 그 때 이 곳에서 시작한 생명의 끝은 우주로 뻗어 나가, 가능한 범위 안에 있는 자매 혹성으로 이주하게 될 것이다.
어저께, 그러니까 화요일에 타임월드 서점에 갔다가 이 책을 읽다가 왔다. 나관중의 삼국지연의의 내용을 정사에 비추어 비교하는 책이다. 삼국지연의는 문학이니 사실성을 따지는게 어불성설이라고 생각하는 사람도 있겠지만, 역사를 작가의 의도대로 왜곡한 결과물인 소설을 대중들이 정사로 받아들인다는 것, 그리고 이것이 대중들의 역사 인식에도 영향을 미친다는 점은 심각하게 받아들일 일이다. 어쨌든 삼국지에 흥미가 있었던 사람이라면 재미있게 읽을 수는 있는 것 같다. 그래도 저자가 교수라서 그런지 사이비스럽지는 않아서 다행이다. 약간 우울했는데, 실실대다 오니까 기분이 좀 나았다. 살까? 사서 읽기에는 시간과 돈이 좀 아깝다는 생각도 들고.
무진은 어디에 있는 도시인가? 안개가 많은 도시라는 것을 볼 때, 바닷가 근처거나 호수가 있는 내륙지방(강원도)의 느낌이 난다. 읽다보면, 호남지방인가 하는 생각도 잠시 든다. 어디에 있는 도시인가는 별로 중요하지 않고, 오히려 별로 알려지지 않은 점이 중요한 것인가? 도시로부터의 도피처? 실락원?
영화 “생활의 발견”와의 관련성. 지방 도시에서 만난 여선생과의 정사라는 스토리라인. “우리 서로 솔직해지기로 해요”라는 대사.
서울과 무진의 공간적 대비. 서울은 이성이 지배하는 공간. 무진은 욕망이 지배하는 공간. 자의식과 무의식. 욕망(비이성)에의 옹호? 주인공의 이중성 자체도 비이성?
부조리극. Camus. 타인의 속물적 행동에 대한 비판과 주인공 자신의 속물적 행동.
Peopleware : Productive Projects and Teams, 2nd Edition by Tom Demarco, Timothy Lister
소프트웨어 개발 프로젝트는 수많은 요소들이 복잡하게 상호작용하는 시스템이다. 그렇다면 가장 중요한 요소는 무엇일까? 어떤 사람들은 프로세스와 문서라고 얘기하고, 어떤 사람들은 소프트웨어 개발자의 장인정신(craftmanship)에 있다고 생각하고, 또 다른 사람들은 조직이라고 얘기한다. Peopleware에서 얘기하는 것은 바로 사람이다.
Peopleware의 핵심은 소프트웨어 개발 프로젝트에서 개발자들을 행복하게 만들어주어야 한다는 것이다. 기업가나 관리자의 도덕성의 차원에서 이를 주장하는 것이 아니다. 개발자들을 행복하게 해주는 것이, 소프트웨어 개발 프로젝트의 생산성과 품질을 개선하기 위한 가장 중요한 요인 중의 하나라고 주장하고 있다.
이에 대한 중요한 근거 중의 하나는 소프트웨어 개발은, 기존의 제품을 생산하는 일(예를 들어, 치즈 버거 가게)과 완전히 다른 종류의 일이라는 것이다. 소프트웨어 개발은 기본적으로 사람들 사이의 커뮤니케이션이라는 점을 강조한다. 따라서, 치즈 버거 아르바이트생처럼 마음에 안들면 바로 자르고, 다른 사람을 고용할 수 있는 것이 아니고, high turnover – 높은 인력교체율을 경계해야한다고 주장한다.
초과근무(overtime)나 일중독(workholic)에 대해서도 마찬가지다. 개발자 자신이 원하든 원하지 않았든, 초과근무는 대체로 개발자의 삶을 행복하지 못하게 만들고, 따라서, 높은 인력교체율의 원인이 된다는 것이다. 그리고, 장기적으로 높은 인력교체율는 소프트웨어 개발 프로젝트 또는 기업의 비용을 증가시킨다는 것이다.
품질(quality)에 대해서는 매우 재미있는 생각을 보여주고 있다. 현실적으로 품질은 다른 중요한 비즈니스 요소(예를 들어, time-to-market)에 의해 희생될 수 있는 요소임을 인정하지만, 품질이 개발자를 행복하게 만들어줄 수 있다는 면에서 불필요한 품질을 적절하게 추구해야할 필요성이 있다고 얘기한다.
파킨슨의 법칙(Parkinson’s Law) – 어떤 일이든 그 일에 대해 할당된 기간을 채운다, 즉, 기간을 촉박하게 잡을 수록 생산성이 높아진다는 생각은 회사를 다닐 때에도 관리자나 같은 개발자들을 통해 자주 접할 수 있었던 생각이었다. DeMarco는 이번에는 실험 데이터를 통해서 이를 정면으로 반박한다. Parkinson 은 과학자가 아니었고, 그의 법칙도 어떤 근거가 있는 것이 아니라는 것이다. time-to-market이 중요한 요소일 경우에 어느 정도의 필요성은 인정하지만, 항상 적용하는 것은 어딘가에 문제가 있는 것이라고 지적한다.
여기까지가 Part 1의 중요한 내용들이다. Part 2에서는 지난 번에 부분적으로 언급했던 사무실(office) 환경과 개발자의 생산성과의 관계를 얘기하고 있고, 그 이후로는 주로 팀 빌딩(team building) – 어떻게 좋은 팀을 만들 수 있는가를 얘기하고 있다. 이 내용들 또한 실제로 내가 회사를 다닐 때 체감했던 내용들이고 또, 중요한 내용들이라고 생각한다. 기회가 된다면, 이 내용들에 대해서도 차후에 따로 다루어보겠다.
흥미로운 것은 많은 1987년에 처음 쓰여진 이 책이 최근에 유행하던 XP와 같은 방법론의 생각도 어느 정도 담고 있다는 것이다. (예를 들어, 40-hour week practice) 즉, XP는 어느날 갑자기 누군가의 머리로부터 튀어나온 것은 아닌 것이다. DeMarco와 Lister는 그들의 컨설팅 경험을 이 책에 집약해놓았고, 내 경험에 비추어보더라도, 현업의 개발자들이 항상 체감하고 있으면서도, 자신의 환경을 바꾸려고 시도해보지는 않은 그런 내용들을 담고 있는 것 같다. 모든 관리자들이 이 책을 읽고 개발자들에게 기업과 개발자가 모두 행복해질 수 있는 바람직한 환경을 제공해주면 더할나위 없이 좋을 것이다. 하지만, 모든 개발자들이 이 책을 읽고 관리자에게 자신이 필요한 것을 요구하는 것이 그러한 날을 더 앞당길 수 있는 방법이 되지 않을까.
“칼의 노래”는 임진왜란, 정유재란을 배경으로 한, 이순신의 삶을 그린 일종의 전기 소설이자 역사 소설이다. 줄곧 1인칭 시점으로 그려져있고, 이순신 자신이 한 일들을 나열해 놓은 식이 많아서, 읽는 동안 딱딱하다는 느낌도 들었고, 마치 이순신 자신이 쓴 일기 – “난중일기”의 현대어 번역판을 읽는 느낌이었다. 리얼리즘? 글쎄. 김훈의 작품을 별로 읽어보지 않은 나로서는 당대최고의 산문가라는 평에 약간은 반발심을 느끼지 않을 수 없었다.
대한민국의 정규 교육과정을 거친 사람이라면, 이순신은 어린 시절, “존경하는 인물”의 후보들 가운데 한명이었을 것이다. 그가 원균의 모함을 받고, 백의 종군을 하고, 몇몇 대첩에서 크게 승리했다는 역사적 사실이나, 그가 지었다는 유명한 시조, 그가 삶을 거두면서 한 얘기 정도의 조각들은 이른바 상식일 것이다.
억울한 누명을 쓰고도, 백의 종군을 해서, 종묘사직을 지켜내는 그 충의! 거북선이라는 인류최초의 철갑선을 발명한 희대의 지장! 죽음에 이르러서도 혹여 자신의 죽음이 전쟁에 영향을 미칠까 자신의 죽음을 감추는, 대의를 위한 그 희생 정신! 사직을 위태롭게 하는 왜를 물리치고 나라를 구한 무인! 그는 바로 영웅의 전형이었다.
어느 나라에나 위대한 정복자라든가 숭고한 방어자와 같은 국가적 민족적 영웅은 있게 마련이다. 그러한 영웅들이 “만들어진 영웅”이라는 사실은 더이상 비밀이 아니다. 영웅은 비극적으로 스러져가고 없어도, 그의 영웅담은 계속 재생산되면서 국가적 민족적 정체성을 확립하는 도구가 되었던 것이다.
영웅의 일대기를 역사로 본다면, 영웅이 일대기가 그 도구적 역할에 의해 창조되었다는 사실은 도리어, 역사가 그 도구적 역할에 의해 창조되었다는 사실로부터 연역될 수 있다는 것을 깨달을 수 있을 것이다. 역사에 대한 상대주의적 관점이 확립된 이래로, 역사는 상아탑의 학문이 아니라, 역사가 개인의 감정이나 정치적인 도구의 산물로서 해석되기 시작했다.
이처럼, 오랜 군사 독재가 지배하던 시절의 영웅 이순신에는, 어떤 불순한 의도가 섞여있으리란 생각을 떨칠 수 없다. 충의정신, 얼마나 전근대적인가. 그의 희생정신은 파쇼에의 의심마저 들게한다. 거북선이 실제로는 이순신이 창제한 것이 아니라는 사실은 언급할 필요조차도 없다. 하지만, 신기한 것은, 이러한 낡은 정신들이나 인식은 철이 들면서 기꺼이 버렸지만, 이순신이라는 인물은 영웅이라는 생각이 머리 속에 각인되어있다는 것이다. 게다가, 그 영웅을 둘러싸고 있는 정신들은 완전히 지워진 것이 아니라, 내 무의식 중에서 그 본연의 목적을 충실히 수행하고 있을지도 모르는 일이다. “내 귀의 도청장치”랄까.
정치가나 독재자가 역사 속의 영웅을 적절하게 해석하고 변용하여 모종의 목적을 이루어 내려는 것처럼, 작가도 글을 쓰는 목적이 있고, 문학작품 속의 허구적 인물을 통해 이루고자 하는 목적이 있다. 그렇다면, 역사가 아닌 문학이, 역사가가 아닌 김훈이라는 작가가 얘기하는 영웅 이순신은 어떤가를 살펴보아야할 것이다.
김훈의 이순신은 임금이나 다른 장수들의 무능함, 세상이 돌아가는 방식을 제대로 인식하고 있다. 그러면서도, 필요할 때는 맞서고, 필요할 때는 타협하는, 현실적이고 합리적인 인간이다. 그는 군기를 어긴 자는 엄하게 다스려 곤장을 치고 목을 베나, 아들의 마지막 순간을 얘기해달라고 청하며 슬퍼하는, 엄격한 아버지이자, 동시에 자상한 아버지이기도 하다. 여진이라는 한 여자에 대한 욕과 정을 동시에 지닌, 그는 한 인간이기도 하다. 한마디로, 김훈의 이순신은 전근대에 살고 있는 현대적 인물이다. 그는 잘 나가는 기업의 중역 정도의 캐릭터를 맡아도 아무런 문제가 없을 정도다.
김훈의 이순신은 자신의 무능력함에 고뇌하면서도, 때로는 투쟁하면서, 때로는 타협하면서 세상을 헤쳐가는 인간형을 나타낸다.
임금이나 원균, 명의 수군 총병관 진린과의 거듭되는 정치적인 게임에서도 이순신의 그러한 면을 잘볼 수 있다. 세상은 그가 원하는 것을 도와주지 않지만, 그는 적절하게 투쟁하거나 타협함으로써 그가 원하는 것을 얻어낸다. 이러한 정치 게임도 재미있게 볼 수 있지만, 이순신의 인간형을 가장 극적으로 보여주는 부분은, 이순신이 그와 정분이 있던 여진의 시체를 발견하지만, “내다 버려라.”라고 명령하는 장면과 이 때 그의 심정이 아닐까. 그는 여진의 죽음앞에서 성욕을 느끼는 자신을 발견하며, “세상은 칼로써 막아낼 수 없고 칼로써 헤쳐나갈 수 없는 곳”이라는 것을 확인한다.
한편, 어린 시절 알고 있던 이순신의 영웅성에 비해, “칼의 노래”의 이순신은 너무나 인간적이다. “칼의 노래”를 읽는 것은 마치 그리스 로마 신들의 찬란함에 가려진 인간적인 모습이 드러나는 장면 같달까. 이순신의 인간적임은, 그의 주변에 있는 인물들의 인간적임과 어우러져 묘한 여운을 준다. 예를 들어, 자신이 사랑하는 여자와 탈영하다가 붙잡힌 군관의 자기 여자를 살려달라는 애원 앞에 선 이순신의 모습을 보자. 이순신은 그 군관의 생사여탈을 결정할 수 있는 신 또는 영웅의 위치에 있다. 하지만, 곧바로 형 집행을 명령하는 장면과 애원대로 그 여자를 놓아주는 장면 사이에 있는 여운은, 노골적인 찬사보다도, 이순신의 인간성을 훨씬 돋보이게 만들어준다.
영웅에는 필수적인 조건이 있다. 보통 사람보다 싸움을 잘한다거나, 불사의 몸을 가졌다거나, 지혜로운 것이 아니다. 바로 영웅을 영웅으로 기억해주는 사람들의 가치나 생각을 반영해야한다는 것이다. 이러한 의미에서, 김훈의 이순신은 김훈의 영웅이자, 김훈이 현대를 살아가는 우리 모두에게 영웅으로서 제시해주고 싶었던 이순신의 모습이 아닐까? 우리가 삶의 고통이라는 질곡에서 빠져나올 수 있다는 실날같은 희망을 주는 인간적인, 너무나 인간적인 본보기를 보여주고 싶었던 게 아닐까?
세상의 끝이……이처럼……가볍고……또…….고요할 수 있다는 것이……, 칼로 베어지지 않는 적들을…… 이 세상에 남겨놓고…… 내가 먼저……, 관음포의 노을이…… 적들 쪽으로……
“칼의 노래”는 이 마지막 독백을 통해 죽음을 앞둔 영웅이, 아니 한 인간이, 어떤 진리를 깨닫는 것으로 끝난다. 그것은 “칼로 베어지지 않는 적”이라는 인간의 힘으로 어찌할 수 없는 문제에 고뇌하며, 진중한 영웅의 삶을 살았으나, 결국 죽음의 앞 – 세상의 끝에서는 모든 것은 아무런 가치를 지니지 않게 되어버린다는, 너무나 진부하지만 역시 참일 수 밖에 없는 삶의 진리가 아닐까.
덧붙임: 위의 글은 “문학의 이해” 강의 숙제로서, 가능한 한 “무난하게” 쓰려고 노력한 것이지만, 사실 그다지 새로울 것도 없는 문제의식이라고 생각한다. 평범한 주제를, 이순신이라는 대중적인 소재와 결합한, 베스트셀러용 작품이었다고 생각한다. (김훈 씨 자신도, 자신은 밥벌이를 위해 글을 쓴다고 했으니, 대단히 예의에 어긋나는 말은 아닐 것이다.) 그 결합 자체가 도발적이었는가 하면, 우리가 살고 있는 시대에 있어, 결코 아니다라고 생각한다. 추천하기는 힘들 것 같다.
The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition by Frederick P. Brooks
소프트웨어 엔지니어링 과목을 수강한 적이 있다면, 소프트웨어 엔지니어링에 어느 정도 관심이 있다면, 한번쯤은 이 책 제목 정도는 들어보았을 것이다. M-MM은 소프트웨어 엔지니어링의 고전이다.
Brooks는 IBM에서 OS/360 개발 프로젝트의 관리자였다. 나중에 Brooks는 이 경험을 분석하고, 그것에 관하여 여러 동료들과 논의했다. 그래서 그 결과로 나온 책이 바로 M-MM이다. 이 책은 각각 하나의 주제를 가지고 있는 에세이 모음의 형식으로 되어있다.
그 중에서도 가장 유명한 내용은 아무래도 Brooks’ Law가 나오는 책과 동명의 에세이인 ‘The Mythical Man-Month’일 것이다. Brooks’ Law는 간단히 말하면,
늦어진 소프트웨어 프로젝트에, 인력을 더 투입하면, 그 프로젝트는 더욱 늦어진다.
는 것이다. Brooks의 논지를 따라가다보면 당연한 얘기다. 하지만, M-MM이 쓰여진 지, 30여년이 지난 지금도, 소프트웨어의 생산을 부품 생산 공장에 빗대어 생각하려는 경향 – 미신은 여전히 존재하는 것을 보면, Brooks’ Law는 아직도 강력한 의미를 지니고 있는 것 같다.
이 책이 워낙 오래 전에 쓰여진 책이라, 현재의 기술에는 약간 맞지 않는 얘기도 나오지만, 대부분은 여전히 유효한 얘기들이다. 뿐만 아니라, 요즘에 나오는 소프트웨어 개발에 관한 수많은 철학의 근간은 M-MM에 빚지고 있는 것으로 보인다.
내가 산 책은 1995년에 나온 Anniversary Edition으로, 그 시점에서 원래의 M-MM에 대한 스스로의 평가를 내리고 있다. 특히, 인상적이었던 것은 , 원래 Parnas가 주창한 Information Hiding을 격하게 비판하던 Brooks가, “Parnas Was Right, and I Was Wrong about Information Hiding”이라고 적으면서, 자신이 틀렸음을 솔직하게 인정하고 있다는 것이었다.
Anniversary Edition에는 역시 엄청나게 유명한 에세이인 “No Silver Bullet”을 함께 싣고 있는데, 이 에세이는 소프트웨어 개발자라면 반드시 읽어봐야할 에세이라고 생각한다. (인터넷에서도 쉽게 구할 수 있고, 번역도 되어있는 걸로 알고 있다.) 이 에세이는 소프트웨어 개발에 있어서의 어려움은 본질적인(essential) 어려움과 비본질적인(accidental) 어려움으로 나눌 수 있다고 얘기한다. 비본질적인 어려움은 기술의 발전과 함께 개선되고 점차 사라져왔지만, 본질적인 어려움에 있어서의 기술 발전은 10년 내의 범위에서 크게 이루어지지 않을 것이다라는 그의 예측은, 이 책이 쓰여진 1975년에도, Anniversary Edition이 쓰여진 1995년에도 맞았고, 지금도 맞지않을까 하는 생각이다. 그가 생각하는 본질적인 어려움의 궁극적인 해결책은 소프트웨어 컴포넌트의 시장화를 통한 재사용이다. 현대에는 어느 정도 컴포넌트의 시장화가 진행되었지만, 본질적인 어려움을 해결할만큼의 재사용에 있어서는 벽에 부딪히고 있는 것이 실정이다. 하지만, “Software Factory”같은 개념을 발전시켜 나가고 있고 그와 같은 개념은 바로 Brooks의 이상을 정확하게 표현한 것이 아닐까 싶다.
흔히, 고전을 “오래된 것”, 그래서 낙후된 것으로 생각하는 사람들이 많다. 하지만, 고전의 참뜻은 “전범”이다. 그리스/로마 신화를 이해하지 못하고서, 서양의 미술을 이해하기 힘든 것처럼, 소프트웨어에 관해 이해하기 위해서 반드시 읽어야할 책들 중의 하나가 바로 M-MM이다.
한국의 현대 소설은 잘 읽지않는 편이다. 그렇다고, 이런 저런 소설은 읽지 않아야겠다고 작정할만한 이유가 있는 것은 아니다. 굳이 이유를 찾아본다면, 내가 살을 접하며 살고 있는 현실과 너무 가까운 것은, 날생선을 먹는 것처럼 비린내가 난달까. 나와 같은 언어로 말을 하고, 나와 비슷한 체험을 하는 사람들의 이야기는, 일부러 스스로를 지목하여 촘촘히 들여다보게 만들어서 불편하다. (“불편하다”는, 김영하의 소설들을 읽으며, 그 유용함을 발견한 표현) 기왕이면, 어느 먼 왕국의 이야기가 좋고, 수억광년 떨어진 외딴 별의 이야기가 좋다. “킬킬, 당신도 결국 이딴 종류의 인간일 뿐인거 아냐?”라고 말하는 것보다는, “원래 인간이란게 이런거라네.”라고 하는 소설이 좋다.
본의든 아니든 “문학의 이해”를 수강했던 것은, 내가 복학했던 탓이고, 본의든 아니든, 본의든 아니든 한국 작가의 소설을 읽어야 했던 것은, 내가 숙제를 하기로 마음먹었던 탓이다. 본의든 아니든 김영하를 집어든 것은, 그 사람의 책이 내겐 재미있어 보였던 탓이다.
뭐, 대단찮은 취향을 굳이 지키려고 끙끙댈 필요가 있나, 책 한 권 읽는 것에 무슨 대단한 이유가 필요한가. 사람이 그리워 서울로 향하는 버스 안에서 가볍게 꺼내들었다. 대체 왜 “우등”이라고 이름을 붙이는지 이해할 수 없는, 덜덜 떨리는 버스 안에서 책을 읽은 탓에, 친구와의 만남은 좀 피곤했지만, 책 자체는 재미있었다. 상당히 재미있었다. 대강 때려맞춰봐도, 이 작가 나랑 코드가 맞고, 이야기를 잘한다, 다른 책도 한번 사서 읽어볼까. 책 맨 뒤에 있는, 짤막한 평론은, 당연하고 대단찮은 이야기를, 굉장히 어렵게 써놓은 것 같다. 이게 뭐야. 이럴거면 그냥 붙이지말지. 내가 “문외한”이라서 그런가?
첫번째로 나오는 소설이 (얘기안했던가? 이건 단편소설집이다.) “사진관 살인 사건”이다. 제목이 말해주듯 추리소설이라는 감이온다. 실제로 추리소설의 형태를 하고 있다. 중간쯤 가면 흥미진진하다. 그런데, 이 소설에서는, 김전일 만화였다면 “범인은 바로 이 중에 있다!”라고 외치며, 의외의 인물을 지목해야하는 시점에서, 그만 시시해져버린다. 거기가 아니라, 이어지는 수사관의 후일담이 나오는 지점이 바로 독자들이 무릎을 탁쳐야하는 지점이다. 연애를 한번이라도 해본 사람은, 특히 짝사랑인지 사랑인지 모를 중간쯤의 연애을 해본 사람은, 이 단편 전체에 흐르는 두 용의자의 미묘한 감정의 흐름에 쾌감을 느낄 수 있을 것이다. 졸졸 흐르던 감정이 결말에 가서는 엄청난 양으로 증폭되어 쏟아져나온다. 그만큼 긴 여운. 그런데, 그것은 수사관 얘기처럼, 신문에 흔하디흔하게 오르내리는 추잡한 감정 놀이였을 뿐인데. 그 두사람에게는 또는 독자에게는 그만큼 드라마틱하지 않을 수 없었을 것이다. 당신이 소중하게 생각하는 연애담을 인터넷 게시판에 올리거나, 술자리 선배에게 얘기를 한번 해봐라. 다른 사람들에게는 그저 흔하디흔하고 너절한 연애 얘기에 지나지 않는다. 영화 “엽기적인 그녀”를 보면, 탈영한 군인에게 인생 강좌를 해주며, 사랑보다 인생이 중요하지 않냐고 한다. 자기네들은 사랑가지고 울고 불고 지지고 볶으면서 말이다. 지하철에서 토한 여자를 여관에 업어다 줄만큼 엽기적이고, 맞선 보는 자리에서 헤어진 여자친구를 만날 정도로 드라마틱하지 않으면, 그런 생각은 절대 않는게 좋을 것이다. 결국, 치정살인사건이 아니었다는 건, 그다지 중요하지 않다. 치정살인사건이어도 아무것도 이상할 것이 없었다는 것이 우리들이 하는 감정 놀이의 진수다.
“흡혈귀”에 나오는 흡혈귀는 멋있다. 삶과 죽음을 초월하고, 사랑을 초월하고, 시간을 초월하고, 덤으로 아는 것도 많다. 한가지라도 빠졌으면 덜 멋있었을 것이다. 내 이상형이라고 해도 나쁘지않다. “정말로 그런 멋있는 사람이 있는거야? 어떻게 그럴 수 있지?”라는 물음에, “별거 아냐, 그 사람, 흡혈귀라서 그런거아냐?”라는 느낌이다. 숨겨진 한마디는, “그런데, 뭐 어쩌라고, 제 멋대로 살겠다는데.” 정도일까.
“피뢰침”은 벼락을 맞아본 사람의 모임을 소재로 한 소설이다. 진짜로 그런 동호회가 있나하고 찾아봤지만, 그 동호회 이름인 “Adad”가 고대 오리엔트의 뇌신이라는 것 정도만 알아냈다. 주인공이 그 동호회의 회장인 J에게 대체 왜 위험을 감수하면서 다시 벼락을 맞으려하는지 묻자, J는 그 이유를 예술적 희열에 비교한다. 간단하게, 예술적/종교적 희열을 벼락 맞기의 희열로 비유한 것을 유추해볼 수 있다. 나처럼 예술이나 종교와 거리가 먼(?) 사람들에게, 명화을 그리면서 느끼는 희열이 뭔지, 신을 섬기면서 느끼는 희열이 뭔지를 말로, 글로 설명해봤자 이해할 사람은 별로 없다. 하지만, 발기한 피뢰침으로는 설명이 되는 것 같다.
“당신의 나무”는 앙코르 사원으로의 여행과, 히스테리아를 앓는 여성과의 연애를 소재로 하고 있다. 개인적으로는 히스테리아라는 단어에는 묘한 감정을 가지고 있다. 거기에는 비정상 자체가 정상인의 권력이 낳은 횡포라는 인식도 작용하고 있고, 요즘 시대에 히스테리아에 대해서 좀 알고 있으면 유식하게 보이는 것도 있고, 더욱 근본적으로는, 히스테리아를 앓는 여성을 사랑한 적도 있었기 때문일 것이다. 나도 그런 시절의 어느쯤엔가는 “당신의 나무”가 되고 싶었던 적이 있었고, 이성으로 설득하려고도 해보았고, 감정을 내세워 달래보기도하고, 정신의학 입문서나 프로이트도 읽어보았다. 결론은, 난 “당신의 나무”가 될만한 능력따위는 애초부터 없다는 것이었고, 포기할 수 밖에 없었다. (어쩌면 그러한 포기 자체가 그 점을 입증하는 걸지도 모른다.) 내가 그녀에게 “당신의 나무”가 아닌 것은 확실하지만, 그녀는 나에게 “당신의 나무”인가? 글쎄, 별로. 소설에서처럼 앙코르에라도 가봐야 깨달음을 얻을려나.
친구들이 이 책에 대해서 어떻게 생각하느냐고 묻는다면, “글쎄, 읽어볼 만 하긴 하다” 정도가 될 것 같다. 덧붙인다면, “매우 재미있다. 김영하를 한권 정도 더 사볼 생각이다.”가 될 것 같다. 한가지 아이러니는, “친구”는 보통 접근성이나 신뢰의 정도에 의해서 결정되고, 정작 책을 추천해줄 때 중요한 기준이 되는 취향에 의해서 결정되지는 않는다는 점이다. 그래서, 이 글은 별로 쓸모가 없는 것 같다.
Exceptional C++ Style by Herb Sutter
Exceptional C++, More Exceptional C++에 이은 세번째 gotw 책이다. gotw (Guru of the Week)란, C++ 프로그래밍에 관한 Herb Sutter의 연재물이다. Herb Sutter의 홈페이지에 잘 정리되어있으면서, CUJ에 가끔 실리기도 하고, 책으로도 출간된다. 현재까지 87번까지 나와있는데, #1~#30은 Exceptional C++에, #31~#62는 More Exceptional C++에, #63~#86은 바로Exceptional C++ Style이다.
주변이나 커뮤너티에서 C++ 관련 질문을 하면, 내가 자주 언급하는 것은 바로 gotw다. 그만큼 C++ 프로그래머가 자주(언젠가는?) 접하게되는 문제들을 gotw가 다루고 있기 때문이다. (Effective 시리즈들도 비슷한 성격을 갖고 있지만, C++ 프로그래머들이 보편적으로 읽는 필수서라서 굳이 언급하게 되는 기회는 없는 것 같다.) 굳이 책을 사서 읽지 않더라도, 시간날 때마다 웹에서 gotw item 하나씩 읽어보는 것도 괜찮을 것이다.
기존 Exceptional 시리즈의 형식이나 내용의 질을 그대로 유지하고 있기 때문에 기존의 글에 덧붙여서 별다른 설명은 필요하지 않을 듯 하다. 아쉽게도, 아직 번역은 되지 않았다.
Writing Solid Code by Steve Maguire
번역판을 읽었다. 원제는 ‘Writing Solid Code: Microsoft’s Techniques for Developing Bug-Free C Programs’. 대체로 C/C++ Programmer를 대상으로 한 버그를 줄이기 위한 프로그래밍 기술에 관한 유명한 책이다. 하지만, programming language에 한정되지않는 조언들도 있다. Steve Maguire의 Microsoft에서의 실제 경험을 바탕으로 지어진 책이고, 실제로 그의 경험들이 예시로 등장한다.
이 책에는 다음과 같은 조언들이 등장한다.
– Enable compiler warnings and pay attention to them.
– Use assertions to validate your assumptions.
– Don’t quietly ignore error conditions or invalid input.
– For a complicated, critical algorithm, consider using a second algorithm to validate the first. (e.g. validate binary search with a linear search).
– Don’t write multi-purpose functions such as realloc (it can grow memory, shrink memory, free memory, or allocate new memory — it does it all).
– Check boundary conditions carefully.
– Avoid risky language idioms.
– Write code for the “average” programmer. Don’t make the “average” programmer reach for a reference manual to understand your code.
– Fix bugs now, not later.
– There are no free features; don’t allow needless flexibility (like realloc).
– Ultimately the developer is responsible for finding bugs; he shouldn’t write sloppy code and hope that QA will find all his bugs.
[from Paul J. Mantyla’s comments in Amazon]
대체로 programming을 1-2년 정도 한 경험이 있는 사람이라면, 이러한 충고들은 대체로 스스로 익힐 수 있다. 시행 착오를 피하기 위한 책 정도가 될까. 오래된 책이라서 (1993년에 출판), 설명을 위한 예들 역시 오래된 감이 있지만, 충고들 자체는 여전히 유효하다. C/C++ programming job을 얻기 전의 학생들은 한번씩 읽어보면 좋을 듯한 책이다. 어느 정도 숙련된 programmer라면 부담없이 읽어볼만한 책이라서, 화장실에 두고 심심풀이로 읽는 것도 나쁘지는 않을 듯하다.
번역은 몇가지 용어의 번역이 모호해서, 원서를 찾아보기도 했지만, 무난한 편이었다. 번역서다 보니, 1-2일 정도만에 다 읽을 수 있었다. 조판 자체가 깔끔하지 못해서, 딱히 소장하고 싶은 마음이 들지 않는다. 번역서는 누군가에게 줘버리고, 원서만 가지고 있을 생각이다.