SW의 神은 디테일에 있다

전문가 칼럼입력 :2014/03/10 07:13    수정: 2014/03/10 08:45

임백준
임백준

디에고 포를란이라는 축구선수가 있다. 2010년 월드컵에서 우리나라를 떨어뜨린 우루과이 출신이기 때문에 그를 기억하는 사람이 많을 것이다. 한창 나이에는 맨체스터 유나이티드의 공격수였는데, 영국리그에서는 별다른 활약을 하지 못하고 스페인리그로 옮겨갔다가 전성기를 맞이해서 득점왕 자리에 오르기도 했다.

포를란과 관련해서 영국친구에게 들은 재미있는 일화가 있다. 포를란은 항상 축구화 아래에 올록볼록 튀어나와 있는 스터드가 짧은 신발을 이용했다고 한다. 하지만 맨유의 퍼거슨 감독은 그에게 스터드가 길게 나와 있는 축구화를 착용할 것을 지시했다. 영국의 축구경기장은 언제나 축축하게 젖어있기 때문에 공격수인 그가 미끄러질 것을 염려했기 때문이었다.

하지만 포를란은 퍼거슨 감독의 말을 듣지 않았다. 감독에게는 스터드가 긴 신발을 착용했다고 거짓말을 하고 여전히 스터드가 짧은 신발을 착용했다. 그러던 어느 날 그는 경기도중에 상대방 골문 바로 앞에서 결정적인 찬스를 맞이했다. 제대로 슛만 날리면 골을 기록할 수 있는 상황이었다. 하지만 그는 발이 미끄러지며 넘어지고 말았다.

경기가 끝나자마자 포를란은 락커룸으로 전력질주 했다. 락커룸에 들어가자 신발을 벗고 스터드가 긴 축구화로 부랴부랴 갈아 신었다. 하지만 분노한 퍼거슨 감독이 락커룸의 문을 박차고 들어왔고, 그는 신발을 갈아 신는 모습을 들키고 말았다. 그가 경기에 자주 나오지 못하게 되어서 이적을 고려하게 된 것은 이때 퍼거슨 감독의 눈 밖에 나버렸기 때문이라는 후문이다.

이 일화를 듣고 나는 스티브 잡스를 떠올렸다. 윌터 아이작슨이 쓴 스티브 잡스의 전기를 읽으면 그가 소비자의 눈에 보이지 않는 컴퓨터 내부 기판의 미학까지 고민했다는 이야기가 나온다. 케이스 내부의 색상을 선택하는데도 고민을 거듭했다고 한다.

진정한 목수는 눈에 보이지 않는 가구의 뒷면이라고 해서 싸구려 합판을 대지 않는다는 잡스 아버지의 교훈도 언급된다. 퍼거슨 감독이 그렇게 오랫동안 최정상의 자리를 0지킬 수 있었던 동력은 아무도 보지 않는 축구화 밑창의 스터드 길이까지 관리를 하는 철두철미함에 있었을 것이다.

아이작슨의 책에는 “신은 디테일 속에 존재한다.”는 멋진 말이 나온다. 스티브 잡스나 알렉스 퍼거슨 같은 당대의 일인자들은 타인의 시선을 떠나서 스스로의 완벽함을 추구하기 위해서 디테일에 집착했다. 이름이 알려진 사람들은 왠지 크고 거창한 일에 몰두할 것처럼 생각되지만 그들의 힘과 명성은 디테일에서 비롯되었다. 그렇다고 해서 이렇게 디테일을 통해서 완벽함을 추구하는 것이 유명인사의 전유물은 아니다.

벽에 시멘트를 바르거나 지하실의 파이프를 수리하는 사람을 보아도 디테일의 육신을 입고 현현하는 신(神)을 만나게 되는 경우가 있다. 지나치다 싶을 정도로 반복해서 수평을 잡고, 거듭 칠하고, 같은 자리에 계속 납땜을 하는 사람을 보게 되는 것이다.

그런다고 해서 더 많은 돈을 받는 것도 아닌데 말이다. 그런 사람에게 아무도 보지 않을 곳에 왜 그리 정성을 들이냐고 물으면 깜짝 놀란다. 누가 보고 안 보고는 그가 정성을 들이는 이유와 아무런 상관이 없기 때문이다.

더아트오브컴퓨터프로그래밍(The Art of Computer Programming이라는 책으로 잘 알려진 도날드 카누스, 리눅스를 개발한 리누스 토발즈, 자유 소프트웨어의 기수 리처드 스톨만, 과거에 둠(Doom)이라는 게임으로 명성을 날린 존 카르맥과 같은 사람들은 당대 최고의 컴퓨터 프로그래머로 손꼽힌다.

(이러한 목록에는 끝이 없다.) 이러한 사람들의 공통점은 결코 '돌아가는 것처럼 보이는 소프트웨어'를 만들었다고 해서 작업을 멈추지 않는다는데 있다.

다른 사람들이 몇 달에 걸쳐서 만들 만한 복잡한 프로그램을 주말에 뚝딱 만들어내는 괴력을 자랑하던 카르맥은 그것도 그냥 만드는 것이 아니라 소프트웨어 내부의 병목을 제거하기 위해서 컴파일러나 복잡한 알고리즘, 혹은 멀티쓰레드 관련 코드를 어셈블리를 이용해서 최적화하는 것으로 유명했다.

(프로그래머라면 어셈블리가 모래알 같은 디테일로 이루어져 있다는 사실을 알 것이다.) 오랜 시간에 걸쳐서 ‘버그일지’를 기록하면서 위대한 소프트웨어인 TeX를 만든 도널드 카누스의 꼼꼼함도 그에 못지않았다. 자신이 작성한 책이나 프로그램에서 오류를 발견하는 사람에게 일정한 돈을 지불하는 '도널드 카누스 수표'에서 디테일에 집중하는 그의 열정은 절정에 달했다.

프로그래머가 일을 할 때는, 그러니까 진짜로 집중해서 일을 할 때는 디테일 속에 존재하는 신을 만나러 가는 것이다. 사용자들은 결코 볼 일이 없는 코드 자체의 완성과 아름다움을 위해서 기꺼이 (강요된 야근이 아니라) 밤샘을 한다.

카드로 쌓은 집처럼 조금만 건드리면 쓰러지는 허약한 구조물을 만드는 것이 아니라 망치로 두드려도 단단하게 견디는 건축물을 만든다. 프로그래밍이라는 행위가 갖는 기쁨과 흥겨움의 비밀은 이러한 밤샘과 집중 속에 존재한다.

디테일이 살아있고 빠르고 안정감 있게 동작하는 코드를 작성하는 것은 ‘능력’의 문제인 경우가 많지만, 때로는 ‘태도’의 문제이기도 하다. (나도 가끔 그러긴 하지만) 눈앞에 닥친 마감일 때문에, 자신의 작업에 대한 애정이 결여되어 있기 때문에, 아니면 그저 천성이 게으르기 때문에 코드를 흉한 모습으로 우그러뜨려서 어쨌든 동작하게끔 만드는 사람도 많다.

그래놓고 룰루랄라 콧노래를 부른다. 퍼거슨 감독이나 스티브 잡스의 눈에 뜨이면 지옥을 경험하게 될 사람이다.

관련기사

디테일에 집착하지 않으면 위대한 성취는 없다. 심지어 적당한 수준의 성취도 없다. 혹여 디테일을 사소함과 혼동해왔다면, 지금부터라도 생각을 달리하기 바란다. 커다란 성공을 꿈꾸고 있다면 작은 일들에 대한 집착에서부터 출발해야 한다.

완성의 기준은 타인의 시선이 아니라 자신의 내면에서 울리는 목소리가 되어야 한다. 점 하나에 따라서 코드 전체의 의미가 달라질 수 있는 프로그래밍 세계에서 디테일은 덤이 아니라 생명이다.

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.

임백준 IT컬럼니스트

한빛미디어에서 『폴리글랏 프로그래밍』(2014),『누워서 읽는 퍼즐북』(2010), 『프로그래밍은 상상이다』(2008), 『뉴욕의 프로그래머』(2007), 『소프트웨어산책』(2005), 『나는 프로그래머다』(2004), 『누워서 읽는 알고리즘』(2003), 『행복한 프로그래밍』(2003)을 출간했고, 로드북에서 『프로그래머 그 다음 이야기』(2011)를 출간했다. 삼성SDS, 루슨트 테크놀로지스, 도이치은행, 바클리스, 모건스탠리 등에서 근무했고 현재는 맨해튼에 있는 스타트업 회사에서 분산처리, 빅데이터, 머신러닝과 관계된 업무를 수행하고 있다.