개발자에 대한 궤변을 접할 때마다 떠오르는 질문,

"사냥꾼은 과연 어디로 갔는가?"

https://upload.wikimedia.org/wikipedia/commons/4/41/Clevelandart_1916.1782.jpg

휠 락(wheellock) 방식 전장총. 불이 붙은 심지를 화약 접시에 집어 넣는 방식이던 기존의 매치 락(match lock) 방식 대신 방아쇠에 장착된 부싯돌을 사용해서 불을 당기는 방식이다. 구조가 복잡하고 고장이 많아 생각만큼 많이 쓰이지는 않았으며, 이 총을 쓰던 것은 대부분 사냥꾼들이었다. 이 총이 언제 발명되었는지는 불분명하나 이미 1580년경에는 이 총이 발명된 것으로 보이는 Tschinki 시 (현재 폴란드 남부) 의 이름이 총 이름으로 사용되었던 것으로 알려져 있다. 이 총은 1630년 ~ 1650년 사이에 만들어진 것으로 보인다. (출처: cleveland museum of art)

일전에 이야기한 바 있듯이, 총이 처음으로 등장한 이래 오랜 세월동안 사냥꾼은 특별한 인력으로 대우받았다. 초기의 총은 좀처럼 보기 힘든 신무기였고, 다루기도 아주 까다로웠다. 사냥꾼은 유혈과 단체행동에 익숙했을 뿐 아니라 이런 골치아픈 도구를 능숙하게 다룰 수 있었기 때문에 오랫동안 중요한 인력으로 취급받았다.

시간이 흐르면서, 총은 아주 기본적인 무기가 됐다. 일주일만 훈련시키면 누구나 총을 다룰 수 있을 정도로 쉬워졌다. 가격도 싸서 이라크 같은 데서는 10만 원이면 중고 돌격소총을 살 수 있을 정도다. 사정거리나 정확도, 파괴력에 있어서도 초기의 총과는 비교가 안 된다. 이렇게 기술은 총을 사냥꾼의 전유물에서 해방시켰다. 그렇다면, 사냥꾼은 이제 사라졌을까?

왠 뚱딴지같은 소리냐고 할 지도 모르지만, 총과 사냥꾼의 이야기는 기술과 일자리의 관계에 대해 중요한 점을 시사한다.

사냥꾼은 어디로 갔는가

전쟁터에서 사냥꾼이 하는 일은 명확하다: 총으로 적을 쏘는 것. 하지만 모든 일이 그렇듯이, 여기에도 난이도 차이가 있다. 창을 들고 대열 앞에 선 적병을 쏘는 건 비교적 쉽다. 반면 멀리 있는 적 지휘관이나 군기를 사살하는 건 어렵다. 후자가 가지는 가치는 전자와는 비교가 되지 않을 정도로 크지만, 어쨌든 처음엔 이 모든 일이 사냥꾼의 일이었다.

https://live.staticflickr.com/65535/51312455286_89e591bb03_b.jpg

파비아 전투를 묘사한 디오라마. 신성 로마 제국의 철포병 부대가 대활약한 이 전투는 총이 냉병기를 대체하기 시작한 분수령으로 여겨진다. 영국 리즈, 로열 아머리 소장. (출처: 개인 촬영. flickr@gorekun)

그런데, 아무나 쓸 수 있을 정도로 쉽고 신뢰도 높은 총이 등장하면 어떻게 될까? 사냥꾼이 적장을 저격하던 시절, 창을 든 적병들은 사냥꾼을 위협할 수 없었다. 하지만 이제 적병들도 모두 총을 들고 있으니, 적 지휘관이나 군기를 잡으려면 훨씬 더 먼 거리에서 쏘는 수밖에 없다. 요컨대, 쉬운 일은 아무나 할 수 있을 정도로 쉬워졌지만 어려운 일은 훨씬 더 어려워진 것이다.

20세기에 들어오면서 각국 육군이 전문 저격수 부대를 편성하고, 아예 저격수의 양성을 전담하는 기관을 설립하는 데 열중하게 된 데는 이런 이유가 있다. 중세의 군대가 사냥꾼을 중요한 전력으로 취급하는 것과 마찬가지로, 현대의 군대도 저격수를 육성하고 관리하는 데 큰 돈을 쓴다. 그런 점에서 사냥꾼은 사라진 게 아니다. 이름을 바꾼 채 더 어렵고 가치가 높은 일에 집중하고 있는 것에 불과하다.1

너무 극단적인 사례라고 생각되는가? 그렇다면 이번엔 시계공의 예를 보자. 14세기 이후 중세 유럽 사회에 등장한 시계공은 같은 시기의 다른 장인들과는 완전히 구분되는 존재였다. 흔하게 읽고 쓸 줄 알았던 데다가 셈 같은 건 기본2이었기 때문이다. 지금이야 그게 뭐가 대단한가 싶겠지만, 당시 사회는 문맹자가 거의 다였으며 셈 같은 추상적 사고를 할 필요 자체가 없던 시기였다. 시계공은 사냥꾼 이상의 전문 인력이었던 것이다. 변덕스러운 추나 태엽의 에너지를 안정화시켜 정확하게 시간을 알리는 시계들이 이들의 손에서 만들어졌다.

티치아노, '시계와 함께 있는 성 요한 기사단원' 캔버스에 유화. 1550년. (출처: wikipedia commons)

시간이 흐르면서 시계는 아주 흔한 물건이 되었다. 중국산 전자시계는 만 원도 안 한다. 그만큼 시계를 제작하는 데 들어가는 공구나 부품값도 싸지고 공정이 표준화되어 조립도 쉬워졌기 때문이다. 흡사 누구나 총을 다룰 수 있게 된 것처럼 말이다. 하지만 그렇다고 '시계공'이 사라졌는가? 그렇지 않다. '시계공'은 여전히 있다. 우리 같은 일반인은 평생 한 번 차볼 수도 없고, 아무에게나 팔지도 않으며, 거액을 지불하고서도 1년씩 기다리는 그런 시계는 아직도 오랜 수련을 거친 시계 장인의 손에서 만들어진다.

그러니까 이 경우도 마찬가지다: 쉬운 문제는 더 쉬워졌다. 하지만 어려운 문제는 더 어려워졌다. 시계공은 결코 사라지지 않았다. 사냥꾼이 사라지지 않은 것과 마찬가지로 말이다. 다만 이름을 바꾸고, 방대한 지식과 고도의 숙련도가 요구되는 고급 제품만 만들 뿐이다. 현대의 '사냥꾼'이 아무나 쏘지 않듯이.

총, 시계, 컴퓨터

작전중인 소련군 저격수 팀. 1942년, 레닌그라드 전선.

개발자 이야기를 한다고 해 놓고서 이런 이야기를 장황하게 떠들어대는 데는 이유가 있다. 컴퓨터 프로그래머(속칭 '개발자')가 걸어온 길이 사냥꾼이나 시계공과 본질적으로 다르지 않기 때문이다. 초기의 컴퓨터는 좀처럼 보기 힘든 기계였다. 다룰 기회가 어지간해서는 없다는 점에서는 초기의 총하고 비슷했던 셈이다. 성능도 만만치 않았다. 국가 예산을 들여 구입하는 물건인 주제에 다루기는 엄청나게 까다로워서 어지간히 머리가 좋은 사람이 아니면 다루기가 어려웠다. 재활용할 수 있는 코드나 개발 도구조차 변변찮은 게 없어서 뭘 하나 만들려고 해도 돌에 새기듯이 작업을 했고, 그렇게 힘들여 만들어 놓고도 실행시키는 데 또 한세월이었다.

사정이 이렇다 보니 초기의 프로그래머는 아무나 하는 직업이 아니었다. 컴퓨터를 다루는 방법을 배우기 위해서는 컴퓨터의 복잡한 구동 원리를 세세한 데까지 알고 있어야 했고, 충분한 시간동안 쓸 기회도 있어야 했다. 이걸 만족하는 사람은 사실상 명문 대학을 나온 엘리트 뿐이다. 총이 비싸고 까다로운 무기이던 시절, 이걸 다룰 수 있는 사람은 총을 많이 다루면서 탄도에 대한 경험을 쌓을 수 있었던 사냥꾼 뿐3이었던 것과 마찬가지로 말이다. 요컨대, 40년 전의 개발자와 지금의 개발자는 도저히 같은 직업에 종사하고 있는 사람이라고 할 수가 없을 정도로 차이가 난다. 지금 총을 쏠 수 있는 사람의 가치가 중세의 사냥꾼(총잡이)과 다르고, 지금 시계공의 가치가 중세의 시계공과 다른 것과 마찬가지로 말이다. 굳이 말하자면, 현재 시점에서 전근대의 사냥꾼에 가장 가까운 포지션은 저격수라고 할 수 있겠다. 중세의 시계공에 가장 가까운 포지션은 시계 장인인 것과 마찬가지로 말이다.

문제는 개발자를 둘러싼 궤변들이 이런 지극히 당연한 사실을 간과한다는 거다.

"공부를 왜 해야하죠?"

https://live.staticflickr.com/4144/5036073417_9699f5a9ff_c.jpg

영국군 저격수. 아프가니스탄, 2008년. 출처: 영국 국방부 flickr@defenceimages

이따금 이런 질문을 받는다: "프로그래밍은 몇 달이면 배울 수 있는 거 아닌가요?" "운영체제나 컴파일러 등이 동작하는 방식을 꼭 공부해야 하나요?" "프로그래밍이 갈수록 쉬워지고 있는데, 컴퓨터 공학 전공 했다가 나중에 실업자 되면 어쩌죠?" 내 귀에는 이 말이 이렇게 들린다: "총 쏘는 법이나 시계 만드는 법은 일 주일이면 배울 수 있는 것 아닌가요?" "탄도가 날아가는 법이나 시계 무브먼트의 내부 구조를 꼭 공부해야 하나요?" "총은 누구나 쏠 수 있잖아요. 앞으로 저격 같은 거 할 필요가 있기는 한 거에요?" "이제 시계는 누구나 만들 수 있게 됐는데, 시계 장인은 뭐 먹고 살죠?"

물론 프로그래밍은 몇 달이면 배울 수 있는 것 맞다. (어디 서점 가서 파이썬 프로그래밍 같은 책 한 권만 사봐라.) 요즘 사용되는 프로그래밍 언어들은 무식하게 cpu 명령 코드를 하나하나 입력하는 방식도 아니고, 치명적인 실수를 저지를 여지도 적다. 과거와는 달리 이런저런 기능들을 미리 구현해 놓은 모듈들도 많아져서 프로그래밍 하기도 훨씬 편해졌다. 하지만 이 정도 수준으로 경제적 가치를 가진 제품을 만들기는 불가능하며, 특히 부가가치가 높은 대형 시스템이나 복잡한 연산 같은 건 여전히 깊은 지식과 높은 숙련도를 요구한다. 아니, 수행하는 연산이든 사용되는 컴퓨터 시스템이든 예전보다 훨씬 복잡해졌기 때문에 이런 종류의 일은 오히려 훨씬 더 어려워졌다. 바로 그런 이유 때문에 외국 대기업 인사팀이 서울까지 와서 고급 호텔에 며칠씩 방 잡아 놓고 사람 뽑고 있는 것이다. 내가 그런 어려운 일을 못해서 문제지

의심스러운가? 그렇다면 sw기업들(Google이라든지)의 구인 광고를 찾아보길 바란다. 이렇게 되어 있다: "하나의 프로그래밍 언어를 알고 있어야 함. c나 Java 환영." c나 Java는 컴퓨터 개론 수업에서도 다루는 언어인데 겨우 이걸로 괜찮은 것일까? 간단하다. 그 정도 수준의 인력을 찾고 있는 게 아니기 때문이다. 스위스의 고급 시계 공방이 중국의 어느 공장에서 시계 조립하고 있는 사람을 필요로 하지 않는 것과 마찬가지로 말이다. 내 경험일 뿐이지만, 내 근처의 그 수많은 Java 개발자(나 포함) 중에서 Java를 알고 있다고 감히 자신있게 말할 수 있는 사람은 여태 세 명도 못 봤다.

파텍 필립이 제작한 헨리 그레이브스 주니어 슈퍼 컴플리케이션. 미국의 은행가 헨리 그레이브스 주니어가 1925년 주문하여 1933년 완성되었다. 역사상 가장 복잡한 기계식 시계로 불린다.

좀 더 노골적으로 이야기해서, 컴퓨터공학을 몇 년째 전공하고 있는 학부생 입에서 저런 소리가 나온다면... 지금이라도 전공을 바꾸는 게 좋다고 생각한다. 몇 년을 공부하고도 저런 소리나 하고 있다면 안 봐도 뻔하다.

"기술 같은 건 중요하지 않아"

소위 스타트업 기업가, 혹은 IT 칼럼니스트라 불리는 사람들에게서 볼 수 있는 궤변이다. 실제로 얼마 전 어떤 IT 칼럼니스트가 "스타트업을 하고 싶다면 1년이면 배우는 기술 같은 것보다 인문학을 공부하는 게 낫다."는 발언을 했다가 웃음거리가 되기도 했다. 당사자가 지울까봐 얼른 캡쳐해 놨다

물론 스타트업이 기술적으로 완벽하다고 해서 성공하는 건 아닐 게다. 그런데 그렇다고 해서 지금까지 성공한 스타트업들 중에 아무나 할 수 있는 수준으로 기술이 허접했던 데가 있나? '상대적으로' 떨어지는 데야 물론 있을 수 있을 거다. 하지만 그 정도 수준조차 만만하지 않다. 과거 평범한 사냥꾼의 사격 솜씨조차도 지금의 우리에게 만만하지 않듯이 말이다: 영점 조절 장치도 없는 걸 가지고 뭘 어떻게 맞춰?! 예를 들어, 지금은 온라인 쇼핑몰 같은 게 그리 첨단 기술로 여겨지지 않지만 90년대 중반 Yahoo Store가 생길 때만 해도 전세계에 온라인 쇼핑몰 아니 웹 서비스 자체가 몇 없었다. 지금이야 표준화된 시계 부품처럼 웹 서버도 있고 웹 프레임워크도 있고 하지만 당시엔 그런 게 하나도 없어서 일일이 처음부터 하나씩 다 만들었다. 뭘 어떻게 만들어야 할지 깜깜한 상태에서 이런 걸 만들었다는 얘기를 듣다 보면, 톱니바퀴를 하나 하나 깎아서 지금도 엄두가 안 나는 복잡한 시계를 만들었다는 시계 장인의 전설이 농담으로 들리지가 않는다. 이 마당에 기술 같은 건 중요하지 않다? 이건 그냥 뇌내망상이다.

https://live.staticflickr.com/3616/3491779722_52632192b8_b.jpg

체코 프라하의 명물, 천문 시계 탑. 1410년 설치되었다. 이런 종류의 시계로는 세계에서 세 번째로 오래되었으며, 현재 가동되고 있는 것 중에서는 가장 오래되었다. 이 훌륭한 시계를 독점하고 싶었던 시 의회가 장인의 눈을 멀게 했다는 전설이 있다. (출처: flickr@iks_berto)

또 하나, 이런 류의 궤변은 경쟁 우위의 개념을 간과하고 있다. 일단 기술적으로 뒤지고 있다면 시도할 수 있는 건 서비스 벤처 뿐일 텐데, 여기서도 기술적 우위가 없으면 도대체 뭘로 우위를 차지할 수 있다는 것인지 알 수가 없다. 예를 들어, 당신이 소셜 커머스 사업을 하고 싶은데 유수 유통업체가 물건 확보하는 걸 도와 줄 정도 수준이라면 이런 소리를 해도 된다. 근데 과연 그런 사람이 몇이나 있는가? 여러 측면에서 우위를 차지하고 있어도 성공을 장담할 수 없는데, 그 중 하나를 그냥 버려도 된다고?

굳이 이야기하자면, 저 정도 수준의 인간들이 스타트업 한답시고 사장 놀이 하면서 돌아다니거나 IT칼럼 같은 걸 쓰고 있다는 게 진짜 문제라고 생각한다.

https://live.staticflickr.com/7474/15709797908_d7429fe94f_b.jpg

"남과 같이 해서는 남 이상 될 수 없다." 부산 초량밀면. (출처: 개인 촬영. flickr@gorekun)

"저는 직장인이 아니라 크리에이터인데요"

"sw 개발은 창조를 하는 일이죠. 그런데 제가 왜 노동자 취급을 받아야 하죠? 저는 창조를 하는 크리에이터인데?"

물론 sw 개발은 창조에 들어가는 일이다. 그런데 이렇게 물어 보자: "모든 개발자가 크리에이터인가?" 답하기 어렵다면, 힌트를 주겠다: 총 쏠 수 있는 사람은 모두 '사냥꾼'인가? 아니면, 시계 만들 수 있는 사람은 모두 '시계 장인'인가? 요컨대, 창조도 창조 나름이다.

당신이 더그 커팅이나 마이클 와이드니어스 같은 사람이라면 그렇게 자부심을 부려도 된다. 아니, 굳이 그 정도 수준이 아니더라도 함께 일하고 싶다는 데가 줄을 설 정도면 '나는 직장인 이상'이라고 자부심을 가져도 뭐라고 하지 않겠다.4 문제는 안 그렇다는 거다. 얼마 전 게임 개발자를 위한 단체를 이끌고 계신 분과 밥을 먹다가 이런 얘기를 듣고 뒤집어지게 웃었다: "뭐랄까, 미묘한 자부심 같은 게 가장 큰 걸림돌이에요. 나는 직장인보다 높은 존재니까 단체같은 건 필요 없다고 생각하는 것 같아요." 나 역시 x도 없는 주제에 내 잘난 맛으로 사는 인간이지만, 이건 좀 많이 심한 것 같다. 총 한두 번 쏴봤다고 자기가 저격수라도 되는 양 행세하거나, 나도 시계 만들어 봤으니 스위스 모 시계 공방의 시계 장인과 동급이라고 착각하는 것과 대체 뭐가 다른가.

"기술이 중요하지 않다"는 궤변에 변종이 있듯이, 이런 류의 궤변에도 변주가 있다: "sw 개발은 다른 직업들과는 완전히 구분되는 아주 특별한 일이다. 특별한 재능을 가진 소수의 사람만이 이 일을 할 수 있다."5 "건설업 같은 낡은 산업이 어쩌고 저쩌고..." "무엇 무엇 같은 건 무식한 제조업에서나 하는 짓..." 이런 류의 발언에 대해서는 언급을 하는 게 더 부질없는 일일 것이다. 걍 이따금 캡쳐해 놓은 거 보면서 낄낄댈 뿐

"실력 있는 개발자는 평범한 개발자 몇 명분의 일을 해낸다면서요?"

약간 미묘하지만, 이것도 궤변이긴 마찬가지다. 틀림없이 유능한 개발자 한 명이 평범한 개발자 수십 명이 못할 일을 해내기도 한다. 야후 출신 엔지니어 2명이 창업, 총 사원 수가 50여 명에 불과한 왓츠앱이나 전 직원수가 10명도 안 되는 stack overflow 같은 사이트가 좋은 예라고 할 수 있겠다. 왓츠앱은 올해 3월 20조 원(!)의 가격에 페이스북에 인수됐고, stack overflow는 전세계 개발자들이 가장 많이 찾는 사이트다.

문제는 이 말이 쓰이는 맥락이다. 이런 말은 특출난 소수와 나머지를 대비시킬 때나 쓰일 수 있다. 대충 이런 식으로 말이다: "이라크군 저격수 두 명이 바그다드로 진격하던 미군 6천 명의 발목을 잡았다." "스위스의 시계 장인이 만든 고급 시계 하나가 평범한 시계 수천 개 값이다."

https://live.staticflickr.com/8046/8097398553_3a9770853f_b.jpg

합동 훈련중인 영국군과 프랑스군의 저격수 팀. 2008년. 출처: 영국 국방부 flickr@defenceimages

하지만 최근 정부 지원을 받아 우후죽순으로 생겨난 양산형 창조기업™ 대표 같은 인간들이 개발자 갈굴 때 이 말을 인용한다는 얘기를 듣고 있자니, 과연 인간의 상상력은 그 끝을 모르는 것 같다. 임금 체불이 일상인 주제에 고용한 개발자에게 과중한 업무를 맡기고, 그걸 못 하면 실력이 없다고 갈구면서 저런 말을 한다는 거다. 벌써부터 이 친구들이 창업한 회사들의 미래가 기대가 된다. 뭐, 아예 틀린 말은 아니니 더 이상 뭐라고 하지는 않겠다. 다만 이 정도는 확실하게 말할 수 있다: 자신이 잡스라도 된 양 거들먹거리기 전에 함께 일하는 사람 존중이나 하는 법부터 배우는 게 여러 모로 좋을 거다.

결어

어쨌거나 전후사정 같은 건 엿바꿔 먹은 듯한 이런 멍청한 궤변들을 보다 보면, 실로 이 세상은 살만한 곳이라는 생각이 든다. 이런 한심한 소리가 그치지 않는 한 절대 심심할 일은 없을 테니까 말이다. 새해에도 이런 버라이어티한 헛소리들을 많이 감상할 수 있었으면 좋겠다.


  1. 바로 이러한 이유 때문에 초기의 저격수들은 거의 다 사냥꾼 출신이었다. 실존인물의 이야기를 소재로 한 영화 '에너미 앳 더 게이트'의 주인공 바실리 자이체프(주드 로 분) 역시 원래는 시베리아의 사슴 사냥꾼이었다. 조만간 개봉하는 영화 '아메리칸 스나이퍼'의 주인공, 크리스 카일 역시 원래는 텍사스 주의 카우보이 출신. 

  2. 카를로 M. 치폴라, '시계와 문명: 1300~1700년, 유럽의 시계는 역사를 어떻게 바꾸었는가', 미지북스, 2013, pp.97 ~ pp.100. 

  3. 초기의 총잡이들은 화약 정도는 그냥 만들 수 있는 경우도 많았다. 아즈텍 제국을 정복하기 위해 나섰던 스페인 정복자들은 탄약을 어떻게 조달했을까? 화산에 올라가 유황 캐서 그냥 만들었다. 

  4. 그런데 내 경험으로는, 저 정도로 잘 하는 사람들은 자신이 개발자라는 것 자체에 별로 자부심을 가지지 않는다. 자기 자신이 최고 수준의 일류라는 데 자부심을 갖을지는 몰라도 말이다. 저런 고수들이 대체 뭐가 아쉬워서 하수 '개발자'와 자신을 동일시하겠는가? 

  5. 물론 Oracle나 Spark같은 건 아주 특별한 재능을 가진 사람만이 시도라도 할 수 있을 것이다. 하지만 모든 sw가 그 수준인가?