언젠가부터 내게 던져지는 질문들에 대한 생각들.

1.

"컴퓨터 전공해서 참 좋겠어요."

언젠가부터 이런 말을 듣는 횟수가 부쩍 늘었다. 아마도 하루가 멀다하고 화제가 되는 IT 기술 때문일 게다. IT 기업들의 행보 하나하나는 화제와 관심의 대상이 되고, 다른 산업 전체를 합친 것만큼이나 많은 뉴스가 쏟아진다. 정부에서는 정작 당사자들은 달가와하지 않지만 미래 산업에 투자를 하겠다며 호들갑을 떨고 방송국에서는 sw산업에 대한 다큐멘터리를 방영한다. 한쪽에서는 과연 모두가 프로그래밍을 배워야 하는지를 놓고 논쟁이 치열하다.

unix를 개발중인 데니스 리치와 켄 톰슨. 그들 앞에 높여진 머신은 DEC의 전설적인 미니컴퓨터 PDP-11이다. 아직 개인용 컴퓨터가 등장하기 이전, 기존의 거대한 컴퓨터에 비해 훨씬 작고 강력한 성능을 가지고 있었던 이 컴퓨터는 현대 운영체제와 데이터베이스 등 많은 소프트웨어 인프라의 요람이 되었다.

이따금 이 말은 약간은 변형된 형태의 질문으로 주어지기도 한다. "오늘날 현대 공학의 꽃이 뭐라고 생각해요? 기계? 전기?" 꼭 재료공학이나 화학공학을 전공한 사람들이 즐비한 자리에서 유독 나한테 묻는 건, 아마도 '컴퓨터과학은 현대 공학의 꽃처럼 받아들여지는데, 정작 해당 산업 종사자는 어떻게 생각하는지 알고 싶다.' 는 의미일 게다. 유사한 질문에는 이런 것도 있다: "나중에 뭐 하고 싶어요? 스타트업 안 해요?" "고어쿤은 웹 서비스나 앱 같은 거 안 만드나 봐요?" 이런 질문을 하시는 분들과 이야기를 나눠 보면, 보통 'sw산업 = 모바일 앱이나 웹서비스를 만들어서 몇 명이 떼돈을 버는 것'으로 이해하고 있는 경우가 많다. 그렇기 때문에 나를 보면 궁금한 거다: "쟤는 나름 실력도 있는 모양인데 왜 앱이나 웹서비스 만들었다는 얘기를 안 할까?" "너도나도 스타트업을 한다, 투자를 받는다 열심인데 정작 쟤는 별로 관심이 없어 보이네?"

오늘은 나를 둘러싼 이런 질문들에 대해서 답해 보고자 한다.

2.

https://live.staticflickr.com/3225/2473208638_fc748f5963_b.jpg

"The Art of Computer Programming" by Donald Knuth (출처: flickr@hvc)

우선 첫 번째 질문부터 살펴보자. "현대 공학의 꽃은 무엇인가?" 결론부터 말하자면, 이 질문은 좋은 질문이라고 할 수 없다. 공학, 혹은 기술의 본령은 생산성에 관련된 현실의 문제를 해결하는 것이다. 그렇기 때문에 '현대 공학의 꽃' 이라는 타이틀에 걸맞는 것을 찾고 싶다면 이러한 본령을 얼마나 잘 수행하고 있느냐를 따져보는 게 옳다.

문제는 이게 흔히 생각하는 학과 구분 - 'xx학' 같은 거 - 하고는 아무 상관이 없다는 거다. 이런 류의 구분은 철저히 교육의 편의성을 위해 만들어진 기준이기 때문이다. 예를 들어 나는 컴퓨터공학부를 나왔고, 운영체제론이나 알고리즘 같은 수업을 들었다. 하지만 나와 같은 교과과정을 밟은 사람들이 모두 나와 같은 일을 하고 있지는 않다. 오히려 내가 하고 있는 일과 연관이 있는 사람은 오히려 통계물리학 혹은 산업공학을 공부했거나 심지어 '문과'로 분류되는 수리심리학을 하는 사람들이 많다. 도대체 왜 이런 일이 벌어지는 것일까? 그 이유는 간단한데, 내 친구들은 나와 같은 문제를 풀기 위해 같은 수업을 들은 게 아니기 때문이다. 그저 비슷한 기초지식을 쌓아야 하기 때문에 같은 학부에서 같은 수업을 들은 것일 뿐이다. 그렇기 때문에 학부를 졸업하고 대학원을 가거나 직장에 가게 되면 볼 일이 별로 없다. 내가 통계물리학이나 산업공학을 공부한 사람들과 함께 일을 하는 것만큼이나 프로그래밍 언어론을 공부하는 친구들은 논리학을 공부한 철학 전공자를 볼 가능성이 더 높을 게다.

https://live.staticflickr.com/7254/7078882221_0c750e890e_b.jpg

(출처: flickr@kirbyurner)

이렇게 흔히 생각하는 학과 구분은 어떠한 문제를 다루느냐에 별로 상관이 없는 경우가 많다. 심지어 이 기준은 극도로 자의적이기까지 하다. 나는 얼마 전 독일에는 화학공학과가 따로 없다는 얘기를 듣고 놀랐던 적이 있다. 기계 공학과와 화학과가 있을 뿐 화학공학과를 따로 설치하지는 않는다는 것이었다. 그러니까 공학 내부의 경계를 나누는 독일의 기준은 한국이나 미국의 기준하고 다른 셈이었다. 사실 컴퓨터과학도 원래는 수학에서 갈려 나온 것이고 내가 읽은 논문의 상당 부분도 수학과 교수님들이 쓰신 것이었으니 나 또한 이러한 경향에서 그리 멀리 있지만은 않은 셈이다.

이러한 이유 때문에 나는 이 문제가 처음부터 잘못된 문제라고 생각한다. 굳히 현대 공학의 꽃을 따지고 싶다면, 모든 기술 분야에 걸쳐서 최신 문제 해결에 매진하고 있는 모든 부분이 공학의 꽃이라고 할 수 있겠다. 모래에서 석유를 뽑아내는 석유공학에서부터 정교한 생산 기계를 만들어 내는 기계 공학에 이르기까지 모든 분야 말이다. 그리고 이들은 서로 섬세하게 연관을 맺고 있는 경우가 대부분이다. 예를 들어 최신 제약 산업은 복잡한 유전자 분석과 정교한 생산 관리를 필요로 하는데, 이 부분의 문제 해결을 맡고 있는 게 컴퓨터공학이다. 바로 그렇기 때문에 이런 데서 생산 장비를 증설할 때마다 내 주머니에 월급이 들어오는 것이다. 반대로 sw가 구동되는 각종 전자회로는 전자공학의 산물이고, 여기에 사용되는 재료는 재료공학의 산물이다. 이렇게 공학의 최전선을 독점하고 있는 학문 분야는 없다. 굳이 여기서 뭔가 패턴을 끄집어 내자면, '최신은 최신끼리 논다' 정도일 것이다.

3.

"어떤 일을 하고 싶은가" 에 대한 질문 역시 이러한 맥락에서 답변할 수 있다. 흔히 sw 산업은 그 자체로 첨단 산업으로 인식되지만, 40년 전 개발자의 위치가 지금의 개발자와 동일하지 않듯이 모든 sw 분야가 첨단은 아니다.12 그런 식으로 따지자면, 한두 시간이면 배울 수 있는 html 태그 몇 개의 무게가 최신 생명공학 지식과 비슷한 무게를 가지고 있어야 한다. '첨단'의 이름이 그렇게 가볍지 않다. 흔히들 빌 게이츠 같은 사람들의 이름을 대면서 '최신 sw 산업에서는 낡은 지식 따위를 머리에 집어넣지 않고도 크게 성공할 수 있다.' 같은 소리를 하는데3, 그 사람들은 sw를 했기 때문에 성공한 게 아니라 최신의 어려운 문제를 해결했기 때문에 성공한 것이다. 다만 그 문제와 해법이 어쩌다 보니 sw에 연관된 일이었을 뿐이고 말이다 - 학위 따위는 필요 없을 정도로 똑똑했던 건 덤이고.

예를 들어서, 1970년대 시점에서 자료를 신뢰성 있게 저장하는 문제는 매우 중요한 문제였다. 갑돌이가 을돌이에게 계좌 이체를 해 줬는데, 갑돌이 계좌에서만 돈이 사라지거나 을돌이 계좌에만 돈이 들어온다면 큰 문제 아닌가? 이 문제의 중요성은 은행에 국한되지 않는다: 무역 회사4에서부터 부터 CIA까지, 비슷한 문제를 겪고 있는 곳이 한두 곳이 아니었으니까. 근데 정작 아무도 이걸 하는 방법을 몰랐다. 이런 류의 문제를 어떻게 해결해야 하는지에 대한 방향 제시는 된 상태였지만, 정작 그걸 구현한 사람이 아무도 없었던 거다. 이런 것이 어려운 문제고, 이런 걸 해결하는 게 스타트업이라고 할 수 있다.

창사 1주년을 축하하는 Software Development Laboratories(SDL)의 동료들(1978). 이들은 CIA가 발주한 자료 관리 시스템을 개발하기 위해 다니던 직장을 그만두고 창업했다. 왼쪽에서부터: 에드 오에이츠, 브루스 스콧, 밥 마이너 그리고 래리 앨리슨. (*출처: 컴퓨터 역사 박물관 http://www.computerhistory.org/revolution/artifact/265/1120)

대부분의 문제가 이런 식이다. 과거 신대륙으로 가는 무역로를 개척하는 문제가 그러했고, 정확한 시계를 만드는 문제가 그러했으며, 무선 통신 기기를 발명하는 문제가 그러했듯이 말이다. 흔히들 sw 산업 = 스타트업 = 앱이나 웹 서비스 개발인 것처럼 여겨지고 있는데, 우리가 아는 인터넷 기업들(예: google) 역시 최신의 어려운 문제를 해결했기 때문에 성공한 것이지 앱을 만들거나 웹 서비스를 만들었기 때문에 성공한 것이 아니다.5 더군다나 이제 앱이나 웹 서비스는 그 자체로는 평범한 제품(commodity)에 불과6하다. 뭔가 문제를 푸는 과정의 일부일지는 몰라도 그 자체로는 최신도 아니고, 첨단도 아니고, 어려운 문제는 더더욱 아니라는 얘기78다. 그런 점에서 "너는 왜 앱이나 웹서비스를 안 만드느냐?" 는 질문은 목표와 수단을 혼동하고 있다고 할 수 있다. 솔직히 이런 질문을 받았을 땐, 도대체 무슨 표정을 지어야 할지 모르겠다.

4.

https://live.staticflickr.com/8452/8043794453_2a28208810_b.jpg

키노트 중인 Oracle(구 SDL)의 래리 앨리슨 회장. Oracle은 원래 CIA의 자료 관리 시스템 프로젝트 코드네임이었으나, 훗날 이들의 제품명 그리고 사명이 되었다. 위 사진의 기크력 쩌는 그 사람과 동일인물 맞다(...). 2012년. (출처: flickr@oracle_images)

"앞으로 어떤 개발자가 되고 싶어요?"

1년쯤 전, 졸업을 앞두고 모사 면접을 보러 갔다. 한 시간 정도 기술 면접을 본 뒤 이어진 중간간부 면접의 끄트머리에서 이런 질문을 받았다. 그 순간, 내 머릿속에 떠오른 것은 기술 면접의 마지막에서 오간 대화였다: "우리한테 질문하고 싶은 거 없어요?" 그 때 내가 면접관들에게 드렸던 질문은, 이것이었다: "일전에 ㅊ 검색엔진 만드신 분들이 여기 계시다고 들었는데 정말인가요?" 면접관들이 서로의 얼굴을 쳐다보면서 3초 가량 정적이 흐르더니, 폭소가 터졌다: "앜ㅋㅋㅋㅋㅋ 그 때 인덱서 형이 만들었잖앜ㅋㅋㅋㅋ" "면접 들어와서 이런 질문을 받을 줄은 몰랐짘ㅋㅋㅋㅋㅋㅋ"

왜 그런 질문을 했던 것일까? 간단히 말해서 그 사람들(=면접관 4인)은 최신의 어려운 문제를 해결한 사람들이기 때문이다. 한국어 웹 검색엔진은 최신의, 아주 어려운 문제였다. 국내 양대 포털업체도 그 해결책을 가지고 있지 못할 정도였다. 그들이 개발한 검색엔진이 결국 그 둘 중 하나에 인수된 건 당연한 귀결이었다. 그 검색엔진에 대해서는 그 뒤로도 이런저런 일이 많았다고 들었지만, 어쨌든 내 기억에 남은 건 그 문제를 해결해 낸 사람들이 있다는 것이었다. 축구선수를 지망하는 소년 머릿속에 동경하던 선수의 플레이 모습이 담기던 것처럼 말이다. 시간이 흘러 축구 클럽에 입단 면접 보러 간 소년이 이런 질문을 던지는 것은 이상한 일이 아닐 것이다: "이 팀에 제가 어릴 적 tv 중계로 보던 그 선수가 있나요?"

5.

"뭔가 최신의 어려운 문제가 주어졌을 때 문제 해결에 가장 작은 기여를 할 수 있는 개발자가 될 수 있다면 더 바랄 게 없겠습니다."

2초도 안 되는 시간 사이 과거 기억들이 휘리릭 지나갔다. 그 모든 기억들이 지나간 뒤 내가 꺼내든 답안은 대략 저런 것이었다. 앞서 설명했듯이, 성공의 최소 조건은 최신의 어려운 문제를 해결하는 것이다. 물론 크게 성공하기 위해서는 운도 많이 필요하지만, 그건 삼신할망 소관이지 내 소관이 아니다. 그렇기 때문에 가장 중요한 것은, 내게 그런 문제가 주어졌을 때 의미있는 수준의 기여를 할 수 있는 실력이 있느냐 뿐이라고 생각한다. 내가 어디서 뭘 하고 있든지 돈을 얼마 받고 있는지 따위의 문제는 거기에 비하면 전부 다 부차적인 문제일 뿐이다. 심지어 내가 컴퓨터공학을 전공하고 sw 개발을 업으로 삼고 있다는 사실조차도 이 문제에 비하면 하찮은 문제에 불과하다.

결국 이런저런 사정 때문에 그 때 면접봤던 회사를 선택하지는 않았지만, 그 뒤로도 나는 비슷한 질문을 받을 때마다 똑같은 답변을 내놓곤 했다. 전혀 바꿀 필요가 없었기 때문이다. 그 생각에는 지금도 변함이 없다.


  1. 반대로 흔히 '굴뚝 산업' 이라 불리는 제조업이 모두 비첨단 산업, 사양 산업인 것도 아니다. 오래 전부터 '제조업 일자리는 결국 싼 인건비만 중요하다[1][2]' '선진국은 제조업 같은 것 안 하고 영화나 패션 같은 고부가가치 산업으로 우아하게 돈을 번다' 같은 속설이 만연해 있는데, 나는 이런 주장이 '깊은 생각 같은 것 할 줄 모르는 무식한 공돌이' 같은 편견과 뿌리가 같다고 본다. 내 말이 의심스럽다면, 발전기 엔진이나 대형 선박 설계 같은 고부가가치 제조업 생산품이 어디서 만들어지는지 확인해 보라. 이런 한심한 궤변이 사실처럼 떠도는 사회에서 'IT산업에는 컴퓨터공학보다 인문학이 더 중요하다' 같은 헛소리가 신문지면에 당당히 실리는 건 결코 이상한 일이 아닐 것이다. 

  2. 나는 제조업에 대한 비이성적인 혐오, 증오와 함께 sw 산업에 대한 과도한 호의와 기대를 보이는 인문학 전공자들을 상당히 많이 보아 왔다. 개인적으로는 이 친구들이 그저 공장 혐오증에 걸려 있는 것에 불과하다는 심증을 가지고 있다. 

  3. 굳이 sw 산업의 첨단이 다른 분야의 첨단과 다른 점이 있다면, 1. 극소수의 사람만으로 의미 있는 결과를 낼 수 있으며 2. 생산 도구의 가격이 차지하는 비중이 매우 적다는 것 정도일 거다. 필요한 공구라고 해봐야 코딩 작업에 사용될 랩탑 정도고, 아무리 비싼 것도 200만 원이 안 된다. 

  4. 장거리 무역에 컨테이너를 사용하게 되면서 손으로는 더이상 처리를 할 수 없을 정도로 물류량이 급증했다. 

  5. 이래 놓으면 "페이스북이나 트위터가 뭐 최신 기술이 들어간 건가영? ㅋㅋㅋ" 이렇게 묻는 칠푼이가 있다는 데 500원 건다. 그거 졸라 어려워, 병신아. 

  6. 나는 이러한 현실을 근거로 '이제 기술은 많이 보급됐으니 IT 시장은 아이디어 싸움이 될 것이고, 따라서 기술 같은 것보다 인문학을 해서 인간을 이해해야 한다' 같은 이야기를 하는 사람들을 매우 많이 봤다. 이들은 아마도 스스로의 기획력과 아이디어가 다른 사람이 엄두도 못 내는 어려운 문제를 해결할 수 있을 정도의 수준이라 확신하고 있는 듯하다. 참으로 대단한 자신감이다. 

  7. 물론 이것도 잘 만드는 건 아주 어려운 일이다. 지난번 글에서 얘기한 것과 마찬가지로, 평범한 앱이나 웹서비스를 만드는 건 아주 쉬워졌지만 어려운 걸 만드는 건 훨씬 어려운 일이 됐다. 

  8. 반대로 90년대 중반을 기준으로 한다면, 온라인 쇼핑몰 시스템을 만드는 문제는 그 자체로 충분히 최신의 어려운 문제라고 할 수 있다. Y combinator의 폴 그레이엄이 실제로 이 일을 해냈다.