7bee8971b4d73ca538e8d4b74484726e1f4b62e705712779a0e3249335f01d98ff99e88324ea7a2c6dbcdf086a9ae8a40cd719c022f441939131



코드를 짜다가 주변 사람을 긴장시키고 싶은가. 그렇다면 수정하던 코드에서 손을 뗀 채 사내 슬랙챗에다 타이핑하라. “프로그래머란 무엇인가” 아마 함께 커밋하던 동료들이 해피해킹 타이핑을 멈추고 걱정스러운 눈초리로 당신을 쳐다볼 것이다. 정체성을 따지는 질문은 대개 위기 상황에서나 제기되기 때문이다. 사람들은 평상시 그런 근본적인 질문에 대해 별 관심이 없다. 컴퓨터가 무엇인지, 프로그래머란 무엇인지에 대해 궁금해하기보다는, 어떤 브랜드의 컴퓨터를 쓰는지, 프로그래밍으로 연봉을 얼마 버는지에 대해 괸심을 갖는다, 즉 정체성보다는 물질과 직업에 대해 더 관심을 가진다. 그러나 프로그램의 존재 규정을 위협할 만한 특이한 사태가 발생하면, 새삼 근본적인 질문을 던지지 않을 수 없다. 


내 친구가 그 좋은 예다. 그의 부인은 일상의 사물을 재료로 작품을 만드는 예술가인데, 얼마 전 전시회를 열었다. 전시된 작품 중에는 오래된 C++ 코드를 활용해서 만든 것도 있었다. 특이한 작품이라는 생각이 들어서 그 앞에서 구글링하여 작품의 소재가 된 옛 코드를 읽어보았다. 그런데 그 가독성과 기법들이 내 뇌가 받아들이기에는 너무 지저분해서 부인에게 그만 그 자리에서 클린코드 통암기하고 오라 할 뻔했다. 혹여 내가 코드를 다시 짜게 되는 상황에 다시 처한다면, ipaddress를 나타내는 변수를 한 글자로 줄여서 i 이라고 자칭하지는 않으리라. 모든 숫자 변수들을 싹다 double 로 선언해놓지 않으리라 . “재귀의 개념을 이해하지 못해서 스택을 썼다”와 같은 주석을 달지 않으리라. “이 프로그램이 하여간 돌아가기는 하는데 도대체 왜 돌아가지 이해가 안간다”와 같은 주석은 결코 남겨놓지 않으리라.


심정지가 올 정도로 더러운 코드로 가득 찬 그 코드가 하도 인상적이어서, 그 코드를 만든 친구 부인에게 이거 대체 누가 짠 코드냐고 물었다. 그러자 천연덕스럽게 “대학 시절 캠퍼스 커플할 때 제 남편이 제게 보낸 알고리즘 과제에요”라는 대답이 돌아왔다. 아, 개발자의 탈을 쓴 그 친구에게 이와 같은 면모가 있었다니! 며칠 뒤, 그 친구를 만날 기회가 있었을 때 급기야 “그거 네가 쓴 코드라며?”라고 묻고 말았다. 그랬더니 평소 감정의 큰 기복이 없던 그 친구가 정서적 동요를 보이면서, 자신도 전시회에서 그 편지를 보고 그 내용과 표현에 큰 충격을 받았다고 털어놓았다. 놀리고 싶어진 나는 왜 그런 코드몽키같은 코들 짰냐고 따져 물었다. 그러자 그 친구는 갑자기 개발자다운 평정심을 잃고 고성을 질러댔다. “그 코드를 짜던 때의 나와 지금의 나는 다른 사람이라고 생각해! 내가 왜 그랬냐고 묻지 마!” 그러고는 벌떡 일어나 괴성을 지르며 나를 할퀴었다. 그 더러운 손톱에 할퀴어지는 바람에, 내 손목은 진리를 위해 욕들어져먹은 리누스토발즈처럼 피를 흘렸다.


그 친구의 이러한 난동은 정체성의 질문이란 위기 상황에서 제기되는 것임을 잘 보여준다. 자신이 받아들이고 싶지 않은 코드를 부정하기 위해, 기존에 가지고 있던 자기 정체성을 스스로 파괴하려 들었던 것이다. 하나의 통합된 인격과 내력을 가진 인간으로 살아가기를 포기한 것이다. 오늘도 그는 그 쓰레기같언 코드를 써제끼던 자신과 현재의 ‘쿨한’ 자신을 화해시키고, 새 시대에 맞는 새로운 정체성을 구성하기 위해 ‘인문학적으로’ 씨름하고 있으리라.


추석을 맞아 모여든 개발자들은 늘 그러했던 것처럼 당신의 근황에 과도한 관심을 가질 것이다. 취직은 했는지, 맥북은 살 건지지, 프로그램은 언제 배포할 것인지, 연봉은 언제 오를 것인지 등등. 그러나 21세기의 냉정한 개발자가 폐기물 코드를 보내던 20세기 청년이 더 이상 아니듯이, 당신도 과거의 당신이 아니며, 하드웨어도 과거의 하드웨어가 아니며, 개발자도 옛날의 개발자가 아니며, 주석도 과거의 주석이 아니다. 따라서 “그런 질문은 집어치워 주시죠”라는 시선을 보냈는데도 불구하고 다른사람들이 명절을 핑계로 집요하게 당신의 코드에 대해 캐물어 온다면, 그들이 평소에 직면하지 않았을 근본적인 질문을 던지는 게 좋다. 디자이너가 “너 언제 맥북살 거니”라고 물으면, “곧 사겠죠, 뭐”라고 얼버무리지 말고 "컴퓨터란 무엇인가”라고 대답하라. “월급 때라서 일부러 물어보는 거란다”라고 하거든, “경제란 무엇인가”라고 대답하라. 엄마가 “너 대체 취직할 거니 말 거니”라고 물으면, “직업이란 무엇인가”라고 대답하라. 거기에 대해 “얘가 미쳤나”라고 말하면, “지능이란 무엇인가”라고 대답하라. 아버지가 “홈페이지라도 한개 만들어 다오”라고 하거든 “웹이란 무엇인가”. “늘그막에 외로워서 그런단다”라고 하거든 “isolation이란 무엇인가”. “프로그래머들끼리 이런 이야기도 못하니”라고 하거든 “프로그래머란 무엇인가”. 정체성에 관련된 이러한 대화들은 신성한 주문이 되어 해묵은 레거시 같은 오지랖들을 내쫓고 당신에게 자유를 선사할 것이다.



by 통암기 스탠포드 대학교 컴퓨터 사이언스 교수




오랜만에 생각나서 검색해서 보려는데 사라졌길래 올렸습니다. 백업해놔서 다행입니다. 다들 화이팅입니다.