sangminpark에 관하여

Software Engineer at Eucalyptus Systems. Father of two lovely girls. Living in Seattle, Washington smpark.uva@gmail.com

장관님, 코딩은 좀 하십니까?

창조의 추억

창조경제부가 위기다. 큰 누님 등극후 언론의 사랑을 한몸에 받던 그들이 “진상의 거인” 윤창중에 의해 아웃오브안중이 되는 사태가 발생했다. 어쩌면 언론의 관심에서 잠시 벗어난 지금 어디 다같이 MT라도 가셔서 SW 공부, 코딩 공부라도 다시 하는 일은 당연히 상상할 수 없겠다. 창조경제부의 수장 “최문기” 장관님.. 처음 이름을 들었을때 이상하게 낯이 익었다. 높은분 내가 알리가 없는데… 얼마전 그의 프로필을 훑어 보다가 내겐 잊을수 없는 단어를 발견했다.

2001.10 : 그리드포럼코리아 의장”, “ICU 그리드미들웨어연구센터 최문기 소장”

아 그분은 내가 10년을 연구했던 그리드 컴퓨팅의 한국내 최고 책임자셨구나. 그래서 내가 그 이름이 친숙했구나. 이거 참 너무 반가워서 블로그를 안할 수가 없다. 기대하시라!

그리드 컴퓨팅. 10년전 SW 최고 핫 이슈! 이곳저곳 인터넷에 연결된 컴퓨터를 연동해 하나의 컴퓨터처럼 공유한다는게 비전이었고, 미국에선 제 2의 인터넷이라 불리며 정부에서 몇천억을 학교에 뿌려주던 그런 프로젝이다. 미국 따라하기 좋아하는 우리 역시 참여정부 출범직후 수백억을 학교에 하사한다. 창조의 역군 최문기님이 그 프로젝의 리더였다.

때는 2002년, 석사 1학년 “꼬꼬마”였던 나는 우연히 그리드 컴퓨팅에 발을 들였다. 수많은 논문을 읽으며, 나 역시 서양것들이 이야기하는 그런 “진짜” 그리드 시스템 — 여러개의 학교, 연구소의 컴퓨터가 연결되어 프로그램이 돌아가는 — 을 만들고 싶었다. 상상하니 신이났고, 또 하면 할수 있을것 같았다 (이게 꼬꼬마의 문제다). 두가지가 관건이었다: 프로그램을 만드는 것과 전국의 클러스터 컴퓨터를 모으는 것. 그런 일이 일어날 수 있을까?

happened

아, 이제 막 학부 졸업한 꼬꼬마도 맘먹으니까 되는구나 그때 알았다. 몇달간 밤새 프로그램을 만들고 전국의 몇개 학교 대학원생에게 클러스터를 사용해도 될지 이메일을 돌렸다. 과부사정 홀애비가 잘안다고 그들은 너그러웠고, 몇몇은 root 패스워드를 가르쳐주는 과잉친절까지 보였다. ‘이렇게 진짜 그리드 테스트베드가 생기는구나’, 그게 참 신이났다. 당시 채팅으로 열정을 나누던 타학교 학생들을 신촌까지 찾아가 만나고, 맥주마시며 신나게 연구 이야기를 하던 기억이 아련하다. 결과적으로 그 당시 꽤 잘나가던 국제 학회에 논문을 집어넣고 채택되는 행운을 얻는다. 사실 아이디어는 구닥다리였지만 아시아에서 테스트베드를 만들고, 실제 그리드를 만들어 실험했다는 그 사실이 서양것들에겐 신기했다. 자랑같지만 실제 한국에서 그리드를 만들어서 논문 채택된 것은 처음이고 마지막으로 기억한다.

그런데 나는 한국에서 연구하던 2년내내 그리드의 변방에 머물렀다. 내 연구결과를 가지고 교수님이 제안서를 썼고, 돈 얻으러 발표 다녀오신후 한마디: “어 그거 안됐어…거기 될 사람들은 자기들끼리 다 알더라고…”. 그리드 포럼 코리아, 창조의 역군께서 의장으로 계시던 그곳은 이미 네트웍이 단단해서 나같은 변방 학교 꼬꼬마가 들어갈 자리는 없었다. 내가 논문을 어디에 냈건, 어설프지만 테스트베드를 만들었건 그게 큰 상관은 없었다. 그 분들은 이미 뛰어난 플랜을 가지고 계신 한국에서(만) 알아주던 전문가 들이니까. 2년간 그래서 좀 외롭게 연구하다가 미국에 나왔다. 결과적으로는 지금의 클라우드 회사에서 같은것을 만들고 있고.

그럼 정부의 돈을 다 빨아간 “그리드 포럼 코리아” 이 분들은 몇년간 무슨 일을 하셨을까? 처음엔 제법 서양것들처럼 조직을 만들었다. 포럼, 워킹 그룹, 리서치 그룹 등등. 회의도 많이 했다. 그리고 그분들은 꾸준히 그림을 그렸다. 비전을 담은 그림, 연간 계획도, 기술스택, 담당기관 연락처등등.. 몇년간 계획세우고, 그림그리고 발표하고…

그렇게 끝났다. 몇년 후 이젠 “유비쿼터스”가 대세라고 정부가 방향을 트니 예산이 사라졌고, 포럼의 교수들, 기관들 다 그쪽으로 돌아섰다. 나랏님이, 그 돈받는 교수님이 이제 유비쿼터스 하라시니 대학원생들은 별수가 없다.

yesyes

몇년간 수백억 세금을 들인 사업에 남은 건 파워포인트와 그림들 뿐이다. 코드도 남지 않고, 사람도 남지 않았다. 허무한 그림만 여러개 구글 이미지 캐쉬에 남아있다. 아래는 당시 최문기 장관의 인터뷰 기사다.

“한때 ETRI에서 연구열정을 불사르기도 했던 최 소장은 “오는 2010년께는 지금보다 1만배 빠른 인터넷이 일상생활에 활용될 전망”이라며 “미들웨어 연구는 향후 예상되는 인터넷 트래픽을 해결하는 데 큰 기여를 하게 될 것”이라고 말했다. 최 소장은 산·학·연 컨소시엄을 활용한 공동연구로 미들웨어 분야에 전문적인 지식을 지닌 석박사급 인력을 향후 4년간 50명 정도 배출할 계획이다.”

묻고 싶다. 약속했던 미들웨어 분야 코드는 어딨습니까? 전문인력 50명? 난 그동안 한 사람도 못 보았는뎁쇼?

관료의 나라

우리는 관료의 나라다. 최문기 장관도, “기가 코리아” 시대를 열어야 한다는 그 아래 윤종록 차관도 모두 한때 엔지니어였다. 언론은 그들이 한때 우리처럼 코딩하던, 그래서 현장감있는  새시대의 일꾼이라 칭찬하지만, 내가 경험한 그들은 모두 “관료”일뿐이다. 돈이 있는 곳에, 인기가 있는 곳은 제일 먼저 달려가 큰 그림을 그리는 사람. 팝송을 번역해 부르는 것처럼 미국의 인기 기술, 그 호사스런 미래상을 소개하는 사람들. 파워포인트에 미래상을 그려주면, 언젠가 진짜 엔지니어, 해커들이 그것을 이루어 줄 것이라 착각하는 사람들. 그림만 그려대는 사람들, 그들은 관료다.

Licklider와 Arpanet

J._C._R._Licklider

J.C.R. Licklider (http://en.wikipedia.org/wiki/J._C._R._Licklider). 20세기를 살았던 이상한 이력의 소유자다. 심리학을 전공한 그는 하버드와 MIT에서 교수를 하다가 60년대 처음 컴퓨터를 만난다. 그리고 쉴세없이 빠져들어가 심리학자가 코딩을 시작한다. 지금과는 차원이 다른 기계어를 직접 넣어야하는 어려운 코딩말이다. 컴퓨터에서 미래를 본 그는 교수 생활을 접고 BBN이라는 컨설팅 회사에 들어간다. 음향전문회사인 BBN을 설득해 비지니스에 아무 상관없는 컴퓨터를 구입하고, 몇명의 해커를 고용해 컴퓨터 부서를 만든다. 그는 곧 미 국방부의 연구 지원 프로그램 ARPA에 들어가 스스로 “공무원”이 된다. 그리고 두개의 프로젝을 시작한다. 프로젝과 시작 동기는 이렇다.

  • MIT의 프로젝트 MAC: 그는 코딩을 하던중 비싸고 큰 컴퓨터를 혼자만 이용하는 것이 가장 큰 문제임을 깨닫는다. 한대의 컴퓨터에 여러명이 접속해서 공유할때 컴퓨터의 진짜 가능성이 실현된다고 믿었다. 프로젝트 MAC은 처음으로 time sharing을 구현했다.
  • ARPANet: ARPA의 사무실에는 여러개의 국방부소속 컴퓨터 터미널이 놓여있다. 여러개의 모니터를 왔다갔다하는 것이 불편해, 컴퓨터들이 서로 네트웍에 연결되면 얼마나 편할까 상상한다. 그리고 대학들을 네트웍으로 연결하는 프로젝을 시작한다.

프로젝트 MAC에서는 훗날 유닉스와, C 언어, 그리고 넓게 봐서는 리눅스가 나왔다. ARPANET은 네개의 미국 대학 컴퓨터를 연결해 인터넷의 전신 패킷네트웍을 만들었고, 그 핵심기술인 IMP(라우터)는 BBN에서 Licklider가 심어놓은 해커들에 의해 만들어진다. TCP/IP의 아버지 Vint Cerf가 그의 프로젝 펀드로 연구하던 꼬꼬마 대학원생이다.

코딩하던 공무원은 Licklider 혼자가 아니다. 어느날  ARPA의 디렉터와 그 아래 ARPANET 책임자 사이에선 이런 대화가 오갔다.

ARPA 디렉터: “너희 ARPANET에서 만든 이메일을 쓰니까 정말 편하더라. 근데 난 이메일을 너무 많이 받아서 그거 관리하는게 정말 불편해…ㅠㅠ”
며칠후 ARPANET 디렉터: “내가 이메일 관리 코드를 짜봤어 한번 써봐.”

이렇게 세계 최초의 이메일 관리 프로그램을 고위 공무원이 만들었다. 그리고 그 코드는 곧 ARPANET 유저사이에 사랑받는 프로그램이 된다.

마무리

정권이 바뀔때마다 정부에서 외치는 구호에 학교들이 화답한다: “그리드”, “유비쿼터스”, “월드클래스 유니버시티”, 이제는 “창조경제”. 우리에게 더이상 큰 그림 그리는 사람은 필요 없다. 언론에 떠들어댄 몇조원 경제 효과, 수백명의 전문가 양성, 이제는 주워남을 수 없는 그 약속들이 부끄럽지는 않은가? “장관님, 차관님 코딩을 좀 하십니까? ” 물으면 아마 속으로 ‘내가 이 나이에, 이 자리에 그짓을 왜..?’ 묻겠지..하지만 우리에겐 해커의 심성을 지닌 사람, 즉 문제가 왜 문제인지를 제대로 파악한 사람이 절실하다. 문제를 정말 사랑하고, 그 본질을 경험해 본 사람만이 창조의 그림을 그려낼 수 있다.

한때는 나와같은 엔지니어, 해커의 길을 걷던 “동지” 높은분들께 이렇게 묻고싶다.

brother

“어이 부라더, 너 만에 하나 내가 C코드 짜라하면 그거 감당할 수 있긋냐?”

대답을 제대로 못할 시 연변 너드들이 찾아갈지도 모른다.

yeonbyon

— 박상민 https://twitter.com/sm_park

우리의 강함은.

흔히 해커들은 어려서부터 프로그래밍에 빠졌다고 고백하는 경우가 많다. 솔직히 나는 아니다. 인문학부로 막 대학에 들어간 첫해는 국사, 국문, 영문과마다 MT를 따라다니며 그때까지 남아있었던 인문학의 끝자락 낭만을 구경했다. 제 멋대로 머리기르던 “스티븐 시발”형들이 길목마다 가득했다. 절친 형이 컴퓨터를 너무 사랑해 밤마다 프로그래밍 하던 모습이 사실 그것보다 더 좋아보였다. 그래서 컴퓨터과에 전과를 했다.

고등학교부터 인문학돌이였던 내가 그렇게 첫 프로그래밍 수업을 들었다 (참고로 나는 수능 언어영역에서는 늘 99.9% 에 들었고, 수리 영역에서는 50%를 간신히 턱걸이했다). C언어를 하는 그 수업에서 이렇게 생각했다. “아 처음이라 어렵긴 하구나…”.  두번째 수업을 마치고 “확실히 이과 애들은 다른가보다. 생긴것들 봐봐….”.  막 전과한터라 도움 받을 사람도 없이 결국은 학기말까지 이해 안되는 코딩…어떻게든 버텼고 랩실에서 기말 시험을 보았다.  시험 내용은 아마도 Sorting 알고리즘 하나를 구현하는걸로 기억한다. 그런데…

‘컴파일이 되지 않았다.’…

시험 마치기까지 데이터 정렬을 하기는 커녕 프로그램이 컴파일조차 안됐다. 조교가 결과값을 확인하러 왔을때 결국 컴파일 에러가 가득한 모니터를 보여줄 수 밖에 없었다. C언어 수업 결국 C를 받았다. 그날 부끄러워서 조교형 얼굴도 못쳐다보며 컴퓨터실을 나오고 마음속에 무언가 감정이 솟구쳤다.

학부 3학년, 때마침 한국은 벤처의 광풍이 몰아쳤다. 앞에 소개한 형이 한 벤처 회사의 CTO가 되었고, 그동안 간신히 덜덜덜 거리며 프로그램 수업듣던 내게 일을 제의했다. 일년간 정말 열심히 코딩했다. 낮에는 학교를 다니고 밤에는 코딩하다가 회사의 아주 조그만 서버실 뒤에서 매트리스를 깔고 잤다. 너무 생각을 많이해 때로는 꿈에서 알고리즘을 얻기도 했다. 아침에 회사 화장실에서 대충 머리를 감고 나오자면 청소부 아줌마가 늘 ‘저건 뭐하는 자식이야?…’ 이런 얼굴로 쳐다보던 기억이 난다.

이제 어느정도 자신이 있었다. 그당시 비지니스 모델 찾는다고 마음만 바쁘던 회사는 처음으로 (대기업!) 나우누리에서 프로젝을 수주했다. 그런데 사실 개발 경험이 거의 없던 회사였던지라 진도가 영 부진했다. 간신히 apache, tomcat 셋업하고 자바 서블릿 튜토리얼 보아가며 ‘달달달’ 겨우 코딩하던 꼬꼬마였다. ‘갑’ 나우누리는 진도가 안 나오는 우리를 전화로 닥달하다가 결국 개발자 보내라고 요구했다. 아…가지 말았어야 했는데, 왜 그랬는지..이제 겨우 학부 3학년 꼬꼬마가 그곳에 갔다. 그래도 ‘갑’이 부르시니 좋은거 입고 가야한다고…아 그러지 말았어야 했는데..은갈치 정장을 입고 갔다.

개발자들 수두룩하고 터미널이 가득한 커다란 방에 은갈치가 던져졌다. 그리고 데모를 해야 하니 준비를 하란다. 윈도우즈가 세상의 전부인줄 알았던 나는 리눅스를 배운지 이제 갓 몇주. “ls” “cd” “mkdir”..이런 단 몇개의 커맨드라인으로 무장한 나를 유닉스 터미널에 앉혀놓고 다시 올테니 데모를 준비해 놓으란다. 정장을 하고 앉은 나는 땀을 삐질삐질 흘리며 그렇게 갑의 회사 터미널에 한시간동안 ls, cd만 쳐대고 있었다. 결국 그날 갑의 팀장에게 정말 무섭게 혼나며 세상맛을 보았다. 속으로는

‘저 이제 학부 3학년 어린이예요..리눅스 지난주에 배웠어요’

말하고 싶었지만 분위기상 혼나는게 맞았다. ‘아 처음 만나는 사람에게도 혼날수 있구나’ 그날 알았다. 그렇게 그곳 개발실을 나오며 마음속에서 무언가 또 솟구쳤다.

몇년후, 이전 블로그에서 소개했던 내용이 계기가 되어 유학을 나왔다.(https://sangminpark.wordpress.com/2011/09/15/%EB%B9%84%EC%A0%84-%EB%88%88%EC%9C%BC%EB%A1%9C-%EB%B3%B4%EB%8A%94-%ED%96%89%EC%9C%84/) 비록 학부 학점은 요즘 류현진 방어율 비슷하지만 코딩은 이제 제법 자신있었다. 게다가 다른 신입생들과 다르게 나는 이미 여러편 논문을 쓴 경험이 있었다. 미국에서도 잘 할것 같았다. 두학기 지난후 퀄 시험이라는 박사자격시험을 보았다. 안될것같은 학생은 미리 걸러내는 시험이다. 열심히 준비했다. 아직 20대 초반 어린 아내가 싸준 도시락 도서관에서 같이 먹으며 공부했다. 아 이렇게 많이 배우는구나 생각했다. 시험을 치뤘다 그리고..

‘나는 한 문제도 맞추지를 못했다….’

아니 정확히 표현하면, 무어라고 답을 적어낸 문제가 거의 없었다. 빈 종이를 내고 나오며 혹 교수님과 눈이라도 마주칠까 부끄러웠다. 집에 돌아와 걱정 가득한 얼굴로 맞아준 아내를 방에서 나가게 하고 그냥 침대에 누웠다. 살면서 처음으로 ‘정말 안될것 같다’ 라는 패배감이 가득했다. 아마 한 문제만 제대로 답을 써봤어도 그렇진 않았을텐데…간신히 잠을 청하고 저녁즈음 일어나며 드는 어떤 감정이 있었다.

돌아보면 세가지 일을 겪은후 마음속을 가득 채운 그것은 “분함”이었다. C학점을 받은것도, ‘갑’에게 혼났던 것도, 빈 답안지를 냈던 것도 모두 내 모자람때문이었는데 나는 왜 그게 그렇게 분하고 원통했는지 모른다. “분함”이란 풀어 쓰자면, “두고봐라 내가 지금은 이래도 앞으로는 달라질 거다” 라는 일종의 선언이다. 그렇게 처음 분함을 품은지 10년이 좀 더 지났다. C코드 컴파일도 못시키던 꼬꼬마가 지금은10개 정도 언어로 몇십만 라인 코드를 짜고 있다. 리눅스를 몰라 ls, cd만 땀흘리며 톡톡댔었는데 지금은 ubuntu, redhat 사람들과 같이 일을한다. 정말로 안될줄 알았던 퀄시험도 그냥 책을 통째로 외우는 비장함으로 마쳤다.

이렇게 개인적 일화를 길게 적어간 이유는 “다 잘되었노라” 자랑하기 위함이 아니다. 나는 이 “분함”이 한국인이 가진 가장 강한힘이라 생각하기 때문이다. 지난번 블로그를 올린후 누군가 한국인으로서의 강점이 무엇인지 물었다. 우리는 미국과 같은 잉여 문화도 없고, 거대한 오픈소스 커뮤니티도 없다. SW를 제대로 만들어본 경험도 없다. 무엇일까…나름 고민을 하다가 결국 다다른것은 우리에겐 이 “분함”과 같은 강한 감정의 힘이 있다는 사실이다. 미국인 동료들과 일하며 그들의 너드스런, 잉여스런 집착에 감탄하고, 정말 화려한 코딩 실력에 많이 감동할때가 많다. 하지만 한국인 동료들만큼 자신의 코드에 감정적으로 접착(attach)되는 사람은 별로 못 보았다. 때로 우리는 툴툴대긴 하지만, 주말에도 밤에도 코딩할만큼 자신의 일에 감정적으로 몰입한다. 혹 누군가 내 코드가 영 별로라고 말하면 미국 사람들은 “입닫고 저리 가” 하겠지만, 한국 사람은 그말이 분해서 디버그하고 또 디버그한다.

우리가 가진 이 강한 감정의 힘. 이것이 어떻게 일상의 행복, 잉여의 문화와 결합할 수 있을까?…추상적인 질문이지만 개인적으론 여기에 SW의 해결이 있지 않을까 생각한다. 우리 한국인 고유의 감정의 힘과 잉여스러움의 조화…언젠가 멋지게 어우러지는 날이 오지 않을까?

https://twitter.com/sm_park

오픈소스의 승리

창조란다.

창조경제가 화제다. 큰 누님께서 “앞으로 5년은 창조여..” 하신후 언론, 정치인, 석학들이 제각각 “이게 창조 맞나여?” 떠들어대니, 드디어 그분께서 몇마디 하셨다. (http://news.mt.co.kr/mtview.php?no=2013041815465078255). “창조”라고 말은 꺼냈는데, 막상 그 담에 할말이 없어서 많이 고민하셨을 그뿐께서 싸이의 젠틀맨이야말로 모범 창조라며 숟가락 슬쩍 얹어보는 모습이 참 보기 좋다. 빌 게이츠, 스티브잡스와 같은 창조적 인재를 “양성” 해야 한다는, “인재 양성론” 역시 일관되서 보기 좋다. 과거엔 경제개발 5개년 계획이었다면 지금은 잡스 키우기 5개년 계획을 세우려나 보다.

그분께서 소프트웨어에 각별한 관심을 가지신 것은 나와 같은 일개 코더로서 참 황송한 일이다. 새 정부의 보호아래 높아진 코더의 존엄을 누리며 살게 될지도 모른다. 하지만 기사의 이 부분을 읽으며 마음속 깊은 곳에서 시작되는 빡침을 억누를 수 없다.

박 대통령은 “도전에 대한 두려움이 없어야 하고, 그것에 대해서 정당하게 가치를 인정해줘야 하는데, 그러기 위해서는 당연히 지적재산권이 잘 보호되어야 하고 국내기업들한테도 당연히 로열티를 지불해야한다”며 “소중한 가치를 보호하고 인정해 줘야 하는 것이 중요하다”고 강조했다.

오픈소스, 공짜? 해킹?

지적재산권, 로열티, 라이센스.. 아무래도 그분이 이쪽으로 관심을 가지신 듯 하다. 마음대로 복제 못하는 법을 만들어 코더의 밥 그릇을 보호해 주시려는 어머니의 마음을 느낀다. 물론 나 역시 SW의 불법 복제로 얼마나 많은 코더들이 고통받았는지 알고 있다. 하지만 쌓인 버그리포트에 허덕이는 내가 굳이 이렇게 글질하는 이유는 법과 제도가 아니라, 오픈소스가 한국 SW의 근본적 해결이라고 믿기 때문이다.

그분께서 “거 오픈소스가 뭐요?” 라고 물으면 아마도 주변에서 이리 대답할 것이다: “소프트웨어 공짜로 쓰자는 운동입니다. 소스를 공개해서 로열티도 없다네요. 리차드 스톨만이라고 극좌파 MIT 해커가 시작했는데, 지금은 리눅스라고 서버실에서 종종 쓴다고 합니다요…”. 일단, 뭐 “공짜”, “해커”, “좌파” 요 부분에서 불꽃 싸다구가 한대 날아오지 않을까?

슬프지만 이게 한국의 오픈소스 인식 수준이라고 생각한다. 얼마전 한국에서 거의 유일하게 오픈소스를 만들고, 작디 작은 개발자 커뮤니티를 유지하던 KTH가 정리해고를 했다. 제법 실리콘밸리의 스타트업과 같은 문화를 만들었고, 오픈소스 바닥에서 실력이 쟁쟁하던 사람을 많이 보유했던 회사다. 그런데 사장부터 날고 기던 개발자까지 모두  날려버리고는 이제 SI를 한단다. 작년에 나는 뉴욕의 잘나가는 스타트업 thefancy.com에서 아키텍트로 잠시 일했다. 내가 만나본 사람중 가장 천재같았던 미국인 창업자는 신기하게도 한국인들로 개발팀을 꾸몄다. 그가 꾸린 한국인 팀과 일해보니 이유를 알만했다. 정말 뛰어난 팀이었다. 그런데 그가 유별나게 공들이며 한국 개발자를 스카우트 하던 회사가 있다. 그게 KTH였다. 정말로 삼성같은 곳 출신은 쳐다보지도 않았고, 오로지 KTH 사람만 은밀히 접근해 뽑아왔다. 왜냐하면 거기에 보물들이 있었으니까…그런데 우리의 공적 기업인 KT는 오픈소스쟁이들 돈 못번다고 매몰차게 쫓아냈다.

제국과 문화

역사적으로 현재의 성공적인 실리콘밸리가 있기까지 두개의 가장 큰 SW 물줄기가 있다. 오픈소스 “해커” 파와 비공개소스 “머니”파 이렇게 나눌 수 있다. 그 시작은 해커파였고 큰 형님은 아래의 리차드 스톨먼이라 하겠다

이미지

사진 1: 리차드 스톨먼 – 해커파 원조. 극진 좌파.

1970년대 MIT에서 서식하던 학부 새내기 몇몇은 연구용 메인프레임을, 운영체제나 게임등을 만들어보려 밤마다 해킹했고 그중 스톨먼님이 강력한 해킹실력을 선보였다. 그분은 강한 심성을 지니셔서 MIT에서  패스워드를 사용하는 보안 시스템을 도입하자 곧바로 해킹해 모든 유저에게 패스워드를 사용하지 말라는 경고를 보내기도 하셨다. 사실 그들의 해킹은 파괴가 아니라 재미와 자유의 추구였다. 누구에게도 피해를 주지 않았고 초기 SW의 발전에 핵심이었다. 이후 스톨먼은 오픈소스계의 완전 좌파 GNU를 조직하고 (우파는 Apache 재단), GPL이라 불리는 오픈소스 라이센스를 만들어 이후의 오픈소스 운동에 이론적, 법적 토대를 확립했다.

70년대 미 동부파를 스톨만님이 장악했다면 서부파에는 스티브 워즈니악이라는 얼굴로는 절대 밀리지 않는 분이 있었다. 스티브 잡스와 워즈니악은 Homebrew Computer Club 이라는 직역하자면 “가내수공 컴퓨터 동호회”에서 처음만났다. 잡스가 비지니스로서 컴퓨터의 가능성을 보았다면 워즈니악은 컴퓨터 설계도와 소스를 공짜로 나누어주는 자비로운 해커였다. 워즈니악에겐 만드는 것뿐 아니라 그것을 공유하며 디자인에대해 신나게 떠드는 그 과정이 재미였다. 그래서 해커의 핵심은 파괴가 아니라 공유와 재미다.

이미지

사진 2: 얼굴로 디버깅 하시는 워즈니악님

동네 동호회나 학교 연구실에서 신나게 해킹하던 세력에게 도전장을 던진이가 바로 빌게이츠다. 그가 짠 베이직 컴파일러 소스코드를 당연하게 자기들끼리 나누던 해커 세력에게, 하버드 범생 빌게이츠는 1976년 이런 도발적인 편지를 보낸다 (http://g-ecx.images-amazon.com/images/G/01/books/orly/GatesLetter.pdf). 그 중 한 부분을 번역하자면:

“너희들(해커) 왜 이러니? 너희 취미로 하는 녀석들 왜 소프트웨어를 훔치고 그러니? 너희들 하드웨어는 돈주고 사잖니? 근데 왜 소프트웨어는 공유하고 지랄이야?…좋은 말할때 아래 주소로 돈 보내세요.”

어쩌면 아버지가 부자 변호사였던 빌게이츠에게는 “지적재산권”이 당연한 권리였는지 모른다.

여기로부터 오픈소스 “해커”파와 비공개소스 “머니”파가 갈린다. 머니파에는 그후 오라클의 래리 엘리슨등 거친놈들이 세력을 형성했고, 돈에 눈 뒤집히는 저널리즘은 동호회에서 소스코드나 나누어보는 너드들 커뮤니티보다는 빌게이츠와 래리 엘리슨의 불어나는 재산에 더 관심이 많았다. 폭발적으로 늘어나는 PC, 기업용 컴퓨터 시장이 가져다주는 돈이 “머니”파의 세력을 불렸다. 머니파는 결과적으로 돈의 제국을 만들었다.

그럼 오픈소스 해커파는 죽었는가? 절대로 아니다. 그들은 머니파에 대항해 돈 대신 넘쳐나는 잉여력과 시간으로 그들에 대항했다. 80년대 핀란드의 한 대학생 리누스 토발즈가 재미로 시작했던 리눅스가 윈도우즈에 대항했고, 역시 핀란드의 천재적 해커 몬티가 시작했던 MySQL은 오라클 데이터베이스에 대항했다. 한 두 사람 천재적 해커의 지휘아래 전세계의 개미때같은 해커들이 일어섰다. 누가 돈 주는 일 아닌데도 재미있으니까, 그리고 해커에게 본능적으로 내재된 자유정신이 계속해서 해커파를 살아있게 했다. 오픈소스파는 결과적으로 SW문화를 일구었다.

승리자

자, 그럼 이쯤에서 과거를 정산해보자. 두 세력의 싸움에서 누가 승리했는가? 나는 오픈소스편이지만 과거만 돌아봤을때 머니파의 손을 들어주겠다. 솔직히 리눅스 데스크탑이 윈도우즈와 게임이 되는가? MySQL은 1조원에 팔린 반면 오라클은 여전히 150조원짜리의 회사다. 하지만 우리는 “과거회상부”가 아닌 “미래창조부”라는 부서를 만들었으니 현재와 미래를 생각해 봐야한다. “머니” 제국과 “오픈소스” 문화의 싸움에서 현재 누가 이기고 있는가? 단언컨데 문화가 이기고 있다. 오픈소스 문화를 적극 활용한 곳이 구글, 페이스북등 2000년 이후의 인터넷 기업이다. 구글은 안드로이드를 리눅스 기반 오픈소스로 만들었고, 하둡과 같은 빅데이터 오픈소스 프로젝트에 아이디어를 제공했다. 최근 구글은 오픈소스 회사가 설령 자신의 아이디어를 복제하더라도 고소하지 않겠다는 맹세까지 했다. 구글은 오픈소스 진영의 날고 기는 해커들, 예를 들어 자바의 제임스 고슬링, 파이썬의 Guido van Rossum등을 영입해 오픈소스 문화 중심에 있고 싶어 한다. 구글의 회사가치가 마이크로소프트를 넘어선것은 우연이 아니다. 문화가 이기는 것이다.

스타트업과 오픈소스

하지만 오픈소스 해커 문화가 진짜 꽃피우는 곳은 실리콘밸리의 스타트업이다.  예를들어 github 이라는 오픈 소스 프로젝트의 말그대로 “허브”가 되는 곳이 있다. 2012년 techcrunch의 베스트 오브 베스트 스타트업으로 뽑힌 곳이다. 오픈소스계의 영원한 아이돌 리누스 토발즈는 리눅스 커널을 관리하는 기존 툴이 엉망인 것에 너무 빡친 바람에 git이라는  소스관리 툴을 만든다. 그게 리누스에게 얼마나 깊은 빡침이었는지, 단 2주만에 완성하는 기염을 토했다 (그러고는 후에 “git 만드는게 제일 쉬웠어요” 라는 인터뷰로 나와같은 빠돌이를 지리게했다). github의 두 창업자들은 동네 프로그래밍 동호회(이것봐. 또 동호회다…)에서 만나 git을 인터넷 기반으로 확장하는 아이디어에 착안했다. 각자 직업이 있는지라 주말마다 브런치 먹으면서 코딩을 하고 서비스를 런치했다.

2011년 기준 매일 4500(!)개의 오픈소스 프로젝이 github에서 생성된다. 현재 1조원 가치의 회사로 실리콘밸리의 “달링”으로 사랑받는다. 리누스가 단 2주만에 만든 툴이 1조원짜리 회사, 사실은 그것보다 더 가치있는 인터넷 스케일의 소스코드 저장소를 만들었다. 리누스가 github으로 돈을 벌었다고 들어본적이 없다. 어차피 재미와 빡침의 해소를 위해 코딩하는 사람이니까. 세상 어느곳에서 2주 재미로 코딩하고 1조원짜리 회사가 만들어질 수 있을까? 그게 오픈소스 문화의 힘이다.

마무리

현재도 마이크로소프트나 오라클은 종종 꽤 쿨한 제품을 낸다. 예를들어 클라우드에서 Windows Azure같은 것들이다. 그런데 현지의 분위기는 “뒷방 저 노인네 아직도 뭐 깎고있네…”  이 수준이다. 그들을 추앙했던 저널리즘마저 이제는 제국에 등을 돌려버렸다. 현재는 오픈소스를 가장 강하게 등에 업은 구글, 페이스북, 아마존등이 IT를 이끌고 있다. 그들 역시 문화를 잘 활용한 것일뿐 문화 자체는 아니다. 다음 영웅이 출현하면 언젠가 그  신진 제국들 역시 무너질 것이다. 하지만 문화는 절대로 죽지 않고 도도하게 흐른다.

다시 처음으로 돌아가, 우리는 미래에 대해 이야기하며 소프트웨어가 그 중심에 있다고 말한다. 하지만 청기와집이나 언론 모두 죽어가는 제국을 우러러보며 모델로 삼으려할 뿐이다. 스타트업이 많이 생겨야 한다고 대빵께서 이야기한다. 나는 오픈소스 아닌 MS의 플랫폼에서 만드는 스타트업을 도무지 상상할 수가 없다. 그들의 기억은 슬프게도 여전히 MS나 오라클이 한국에 뿌리내린 제국 그 안에 갇혀있다. 액티브엑스로 보안을 통제해야 하고, ‘을’이 짜낸 윈도우즈 프로그램이 ‘갑’에게 제값 받게 해주는 법 제정, 그것이 그들의 틀이다. 실리콘밸리의 가장 핵심에 있는 오픈소스 해커문화를 이해하는 것은 어렵다 치더라도, github처럼 한두명 젊은이가 오픈소스로 몇조원짜리 회사를 일구었다는 성공신화라도 좀 누가 전했으면 싶다. 제국은 죽지만 문화는 산다.

언젠가 우리 큰분께서 해카톤(Hackathon) 이벤트에 납시어서 해킹에 열중하는 우리의 희망들에게 인자한 미소 한방 날려주는 날이 왔으면 하고 바래본다.

– 박상민 http://twitter.com/#!/sm_park

오랜만에 블로그

거의 1년간 블로그를 안했네요. 다시 시작하면 하고 싶은 이야기가 여럿 있는데, 오늘은 우선 최근에 이메일로 했던 교수신문과의 인터뷰 내용을 올립니다. 별 내용은 없지만 Enjoy!

———————————

Q. 어렸을 때부터 컴퓨터와 프로그래밍을 좋아했는지요?

아니요. 컴퓨터를 처음 갖게 된것은 1991년이니까 얼리 유저라고 할 수 있지만, 사실 게임을 하는게 주 목적이었고 프로그래밍이나 해킹같은 것은 꿈도 꾸지 않았습니다. 그저 게임하는게 좋았습니다. 고등학교때 하숙하며 친한 대학생 형이 밤새 프로그래밍 하는 모습을 뒤에서 많이 지켜봤습니다. 왠지 모르지만 그 모습이 신나 보였고 그곳에 무언가 있어보였죠. 그래서 대학교때 전공을 컴퓨터로 선택했습니다. 프로그래밍을 처음 배울때는 늦게 시작해서 그랬는지 많이 고생했습니다. 그래도 어설프게나마 내가 만든 창조물이 돌아가는 모습을 보는 건 기뻤습니다. 일종의 중독이라고 생각합니다.

Q. 미국에서 박사학위 취득까지 가장 어려웠던 점은 무엇이었나요? 한국과 미국에서 공부하며 느낀 학술문화의 차이점이 있으신가요?

박사과정 초기에 퀄시험이 있습니다. 학위를 할만한 지식, 자질이 있는가를 테스트하는데 정말로 힘들었습니다. 같이 공부했던 한국 학생들 여러명중 한번에 통과한 분이 없었습니다. 어려움의 가장 큰 이유는 물론 제 자신이 뛰어나게 공부를 잘하지 못했던 것이지만, 사실 한국과 미국의 커리큘럼 차이가 큰 문제점이기도 했습니다. 미국의 컴퓨터과학(Computer Science) 경우 학부생들에게 기초 이론에 초점을 맞추어 교육합니다. 즉 계산 이론(Computational Theory), 알고리즘(Algorithm), 자료 구조(Data Structure) 등의 과목입니다. 한국의 커리큘럼은 기초 과목을 쉽게 쉽게 넘어갑니다. 대신 응용 분야를 많이 교육하고 학교들은 이를 자랑합니다. 예를 들어, 게임 프로그래밍, 실시간 시스템, 네트워크 프로그래밍 등입니다. 저는 이것이 정말 큰 문제라고 생각합니다. 응용 분야를 학교에서 강조하는 이유는 사실 기업과 정부의 보이지 않는 입김 때문입니다. 사회에 나가서 당장 써먹을만한 소위 “인재”를 키우라는 것입니다. 그 결과로 아는 것은 많아 보이는데 정작 기본기가 없는, 영혼 없는 인재들이 대학에서 배출된다는게 문제입니다. 제가 바로 퀄시험에서 여러번 탈락할 수 밖에 없는 영혼없는 인재였기 때문에 잘 압니다.

학부 4학년때 수강한 과목 교수님의 첫 수업시간 이야기가 잊혀지지 않습니다. 그 과목은 앞에서 이야기한 그런 “고급 응용” 과목입니다. 대략 이런 스토리였습니다: “너희들 졸업하고 나서 지금 배우는 과목 X를 써먹을 일은 없을거야. 이 분야는 이제 한물 갔고, 회사들은 Y 방식의 기술을 만들거든. 하지만 나는 X 기술에서 국내 최고였어.” 그 솔직하신 말대로 수업에서 배운것은 아무 쓸모도 없었습니다. 3학점을 환불받고 싶은게 지금 심정입니다.

Q. 박사까지 공부하려는 의지는 직업으로서의 학자를 염두에 둔 게 아니었는지요? 왜 학문으로서의 연구를 떠났는지요? 왜 논문을 쓰지 않으시는지요?

박사과정을 하면서 논문을 제법 많이 썼고, 최고 논문상 후보에 오르기도 했습니다. 졸업을 하고 스타트업 회사에서 일을 시작하면서는 논문을 쓰지 않았습니다. 가장 큰 이유는 스타트업 회사에서 일하면서 논문을 쓸 여유도, 이유도 없다는 점입니다. 박사과정에서는 논문을 쓰는게 당연했습니다. 그 과정도 즐겼고 결과도 좋았습니다. 특별히 논문을 쓰는 과정에서 얻어지는 훈련 – 즉 배경 지식을 습득하고, 아이디어를 생각해낸후 그것을 증명해 단 10장의 종이에 적어내려가는 것 -, 이것은 세상 어디에서도 배울 수 없는 최고의 지적 훈련이라고 생각합니다.

다만 내가 쓴 논문이 얼마나 내 분야에, 넓게 봐서는 사회에 공헌을 하는가 돌아봤을때는 자신있게 Yes라고 말할 수 없었습니다. 2000년 이후 컴퓨터 분야를 선도하는 것은 학계가 아니라 산업계입니다. 빅데이터, 클라우드 모두 구글, 아마존, 페이스북과 같은 회사들에서 처음 아이디어가 나왔고 이를 구체화 시켰습니다. 예전에는 반대의 경우가 많았습니다. 운영체제, 데이터베이스, 암호이론등 핵심 아이디어는 학교들에서 나왔고 이를 처음 구현했던 것도 학교였습니다. 예를 들어 현재의 애플 맥 OS는 카네기 멜론 대학에서 만든 Mach 라는 커널에서 비롯됐습니다. 그래서 예전에는 학교등에서 연구하고 논문 쓰는 것이 실제 공헌을 많이 했습니다.

현재 미국과 한국 많은 학교들의 연구 내용, 논문을 보면 회사들에서 이미 해결한 “죽은 문제”를 붙잡고 아주 작은 부분들만 바꿔보면서, 새로움으로 포장하고 있다고 생각합니다. 세상의 99%는 신경쓰지 않는 작은 문제들을 습관처럼 붙들고 해결하고 있지요. 졸업후 두가지 길의 갈래에 섰을때, 주저없이 좀 더 의미있는 일을 할 수 있는 회사를 선택했습니다. 비록 예전과 같이 10페이지 논문을 매년 몇편씩 생산해 내지는 않지만, 매일 매일 제가 만드는 코드는 전 세계 곳곳에서 사용되고 고쳐집니다. 그게 더 보람이 있습니다.

Q. 학자로서의 길과 개발자로서의 커리어 패스는 많이 다른 것인가요? 산학연 연구가 활성화되고 있는 측면에서, 오히려 현장에서의 경험이 더욱 중요하지 않은가요?

학자로서의 길은 그 종착역이 교수, 국가 연구소 연구원등 제한적인데 반해 개발자의 캐리어 패스는 아주 많습니다. 미국의 경우 회사들도 많고, 연봉등의 대우도 의사등의 몇몇 전문직을 제외하고는 가장 좋은 편입니다. 종종 직업의 안정성을 이유로 연구직을 선호하는 경우가 있는데 제 의견은 다릅니다. 젊어서 두뇌가 획획 돌아가는 사람들이 할 수 있는 영역 (예를 들어 스타트업 회사들)이 있고, 수십년간 닦아온 내공과 지혜를 필요로 하는 영역들 (예를 들어 시스템 아키텍트)이 있습니다. 어떤 회사도 “우리는 개발자가 너무 많다”고 불평하는 곳이 없습니다. 소프트웨어 개발에는 고유한 어려움이 있고 IT산업은 지속적으로 성장하기 떄문에, 전문성을 확보한 SW 인력은 영원히 부족합니다.

최근 미국에서 경험하는 한가지 트렌드는 학교의 고급 두뇌들이 산업계로 유출되는 현상입니다. 예를 들어 하버드 대학교에서 종신 보장(tenure)을 받은 컴퓨터과 교수가 구글로 이직했습니다. 제 논문을 지도했던 교수도 종신 보장을 받자마자 구글로 이직했습니다. 그만큼 현장이 매력적이기 때문입니다. 학교들은 교수를 확보하지 못해 비상입니다. 학교에서 산업계로는 유출되는데, 반대의 경우는 거의 없습니다. 제가 생각하는 한가지 문제는 학교가 산업계와 너무 담을 쌓아놓고 자신만의 프리미엄을 유지하려는 태도입니다. 예를 들어 산업계에서 뛰어난 인재를 학교에서 교수로 채용하는 것은 현재로서는 거의 불가능합니다. 한국에서는 규정상 논문의 정량을 채워야 하는데 산업계 인재는 사소한 논문 많이 쓰는 것에 신경쓰지 않습니다. 이러한 프로세스는 학교라는 우물에 과거형 인재들만 가득한 현상을 낳고 맙니다.

Q. 교육 및 연구의 측면에서, 한국으로 돌아오지 않는 이유는 무엇인가요?

한국에서는 스타트업을 하기 어렵기 때문입니다. 현재 제가 일하는 회사는 클라우드 스타트업입니다. 새로운 분야를 개척하는 일을 하고 있습니다. 연구를 시작할때도 그랬지만 새로운 분야를 개척하는 것이 가장 보람있고 즐겁습니다. 스타트업은 그 자체가 새로운 이론의 실험이기 때문에 논문을 쓰지 않더라도 연구입니다. 이전에 잠시 유명 스타트업에서 일한적이 있는데 그곳에서는 전략적으로 한국 개발자들만 채용했습니다. 왜냐하면 미국 개발자들에 비해 열정과 재능있는 사람들이 한국에 많이 숨어있기 때문입니다. 그런 분들의 경우 기존의 틀을 깨고 새로운 것을 시작하고 싶어하는 성향이 아주 강합니다. 그런 긍정적인 의미의 해커들이 미국에서는 스타트업을 해서, 마이크로소프트, 구글, 페이스북을 만들었습니다. 하지만 삼성등의 대기업이 독점해 큰 것을 더 크게 키우려는 한국 현실에서 그런 사람들을 받아줄 곳이 없습니다. 대기업은 정형화된, 적당히 잘하는 인재를 원하지 판을 깨고 새로운 것을 창조할 수 있는 해커를 원하지 않습니다. 저는 대기업 기준의 인재나 논문을 많이 쓰는 연구원보다는 긍정적인 의미에서의 해커로 남고싶기 때문에 미국에서 일합니다.

Q. 한국은 그야말로 클라우드 유행입니다. 클라우드 컴퓨팅 관련 전문가가 되려는 학생들이 많습니다. 현업에서 느끼는 클라우드 기술 동향과 향후 전망은 어떠한가요?

종종 설명은 화려하지만 몇년 지나고나면 사라지는 일종의 패션과 같은 기술들이 있습니다. 클라우드는 분명히 그런 buzzword 와는 다릅니다. 현재 IT의 큰 두갈래 줄기는 모바일과 클라우드입니다. 모바일 분야에서는 어떻게하면 컴퓨터가 사람과 가장 가까운 곳에서 사람을 도울까를 고민합니다. 구글 글래스가 그 뱡향에서의 새로운 실험입니다. 클라우드는 수십억개의 그런 모바일 디바이스들에게 서비스를 제공하는 보이지않는 백엔드 기술입니다. 과거에는 서버 몇대에 데이터베이스와 웹서버를 돌려서 처리했다면 지금은 수십억개의 디바이스에서 요청하는 정보를 수백만대의 서버들이 서로 통신하며 개인에 맞추어 서비스를 제공합니다. 미래로 갈수록 기존 개념의 데스크탑, 노트북은 사라지고 데이터와 서비스가 모두 보이지 않는 클라우드에서 제공될 것입니다. 그래서 지속적으로 클라우드 전문가에 대한 수요는 증가할 것입니다.

Q. SW개발자의 하루 일과는 어떠한가요? 한국과 미국에서 각각 일해본 경험이 있으신데, 비교해서 설명해주실 수 있는지요?

지금 일하는 회사는 특이하게 전 직원의 60% 정도가 집에서 일합니다. 회사의 본부는 캘리포니아에 있는데 몇달에 한번씩 회사로 출장(!)을 가서 디자인 회의등을 하고 개발, 테스트등의 모든 업무는 집안의 제 오피스에서 합니다. 어떤 직원은 심지어 케이블도 없는 산속 깊은 곳에 살면서 위성 인터넷으로 접속해 일을 합니다. 같이 일한지 3년이 되어가는데 아직 얼굴을 못봤습니다. 그만큼 회사의 분위기가 자유롭습니다. 제 경우에는 낮에는 아이들 학교에 데려다 주거나 같이 놀아주는 시간이 많고 대신 밤에 일을 많이 하는 편입니다. 혹 일이 잘 안되거나 모임이 있을때는 하루 쉬고 골프등으로 여가를 즐깁니다. 저희 회사에는 정해진 휴가 일수가 없습니다. 원한다면 언제든 휴가를 갈 수 있습니다. 즉 언제 일하는지, 어디서 일하는지에 대해 아무도 간섭하거나 하지 않습니다.

자유로운 분위기라고 적은 양의 일을 하는 것은 아닙니다. 스타트업에서 일하며 공유하는 목표가 있기 때문에 누가 시키지 않아도 스스로 일을 많이 합니다. 평균적으로 따지면 하루에 약 10시간 정도는 일을 하는것 같습니다. 관리와 승진이라는 보상체계가 동기를 부여하지 않고, 새로운 기술을 만드는 즐거움, 그리고 스타트업이 성공했을때 얻는 큰 금전적 보상등이 동기를 부여하기 때문에 더 생산적으로 일을 많이 합니다.

Q. 트위터에 SW만으로 성공한 케이스라든지, 1조원 가치의 코딩 이야기 등을 언급하셨습니다. 전통적 개념의 제품이 아닌, SW제품의 특징 혹은 가능성은 무엇이라고 보십나요?

SW제품의 특징은 한 사람이 하나의 산업 전체를 갈아 엎어버릴 정도로 영향력이 있다는 사실입니다. 예를들어, 현재 저희 회사의 CEO가 예전에 성공시켰던 오픈소스 데이터베이스 MySQL의 경우 창업자 혼자 90% 이상을 코딩했다고 합니다. 훗날 1조원 넘는 가격에 회사가 팔렸습니다. 즉 한 사람이 1조원 가치의 코딩을 했다는 이야기 입니다. 한 사람이 소프트웨어에 대해 가지고 있는 고정된 마인드가 회사와 산업 방향을 크게 결정합니다. 스티브잡스의 간결함에 대한 집착이 여전히 애플을 정의하고 있고, 빌게이츠가 추구한 생산성있는 SW는 마이크로소프트가 비지니스 영역을 꽉 잡고 있게끔 했습니다. 구글은 창업자 두 사람이 대학원 기숙사에서 시작했기 때문에 여전히 학교 기숙사 같은 매력적인 개발 문화를 유지하고 있습니다.

종종 한국의 기관, 언론에서 그런 인재를 길러내야 한다는 이야기를 하는데 얼토당토 않은 소리입니다. 그런 소위 IT시대의 영웅들은 길러내는것이 아니라 자유로운 문화속에서 자생하는 것입니다. 기존의 IT, 경제, 사회의 틀을 바꾸어보고 싶은, 일종의 반란을 꿈꾸는 사람들 중에서 툭 튀어 나오는 것 같은 사람들이 바로 그런 인재 입니다. 반란자를 길러낸다는 이야기는 애초에 모순입니다. 미국의 경우 매년 그런 사람들이 툭 툭 튀어 나옵니다. 한국의 경우 SW의 매력이 왜곡돼버려 애초에 큰 꿈을 품는 젊은사람들이 사라지는게 정말 안타깝습니다.

Q. 컴퓨터 관련 전공으로, 미국 유학을 준비하거나 유학 중인 (졸업예정자) 학생들에게 커리어패스의 관점에서 조언을 해준다면?

저는 박사학위 후의 커리어패스가 어찌보면 굳이 박사학위를 필요로 하지 않는 스타트업 업계입니다. 그렇지만 박사학위 6년의 시간이 아깝지는 않습니다. 그 시간동안 컴퓨터과학의 기본을 다시 배웠고, 연구하는 프로세스를 몸에 체득했습니다. 특히 학생시절에는 여유가 많아 SW나 과학 전반에 관련된 다양한 교양 서적들을 읽었던 건 럭셔리한 시간이었다고 생각합니다. 대학원은 충분하 가치있는 투자입니다.

위에서 언급했지만, 커리어패스를 생각할때 너무 직업의 안정성이나 주변의 시선을 생각하지 않았으면 합니다. 그보다는 자신이 가장 즐거운 일, 그리고 조금 위험스럽게 보여도 세상을 바꿀만한 일에 자신을 던지는 사람들이 많았으면 좋겠습니다. 미국의 스타트업 업계의 경우 한 회사가 혹 실패 하더라도 개발자들에겐 실패가 없습니다. 실리콘밸리 자체가 스타트업의 거대한 시스템이기 때문에 어디에든 다음 목표를 추구할 회사들이 존재합니다. 금전적인 보상도 대기업에 비해 부족하지 않습니다. 기회가 닿을때는 자신이 회사를 시작할 수도 있습니다. 아직은 한국 출신으로 실리콘밸리 스타트업에서 일하는 사람들을 많이 만나지 못했습니다. 몇년 후에는 더 많은 후배들을 만나서 신나게 이야기하는 날이 오면 좋겠습니다.

컴퓨터 이야기 #3 – 계산기에서 컴퓨터로

지난번 컴퓨터 이야기 #1에서 다룬 것처럼 버네버 부쉬(Vannevar Bush)의 막대기들로 이루어진 아날로그 계산기는 1940년대까지 전쟁터를 포함한 전세계 곳곳에서 사용됐다. 그리고 곧 클라우드 섀년(Claude Shannon)에 의해 수식계산뿐 아니라 논리연산까지도 기계로 표현할 수 있음을 알게됐다. 1940년대는 숨막히는 2차대전의 열기만큼, 계산기에서 컴퓨터로 넘어가고자 하는 과학자들의 열정이 뜨거운 시대였다. 이 시기 넘어야했던 가장 큰 두가지 산은 이렇게 요약할 수 있다:

1. 기계식 계산에서 전자식으로 발전

2. 계산기에서 사람처럼 논리를 수행하는 진짜 컴퓨터로의 발전 (이를 위해선 if/else와 같은 조건문, for 와 같은 반복문 수행이 필요하다)

두가지 산을 가까스로 넘은 첫 발명품이 바로 우리가 어렸을적 배운 최초의 컴퓨터 에니악이다. 여기서 한가지 짚고 넘어갈 점은 사람들마다 인류 최초의 컴퓨터가 무엇이냐에 의견이 다르다는 점이다. 혹자는 1820년대 디자인된 찰스 베비지(Charles Babbage)의 미분방정식 계산기가 최초라 주장하고, 최근에 와서는 에니악보다 5년이 앞섰다고 밝혀진 독일의 Z3 머신 (Konrad Zuse)이 최초다라는 주장도 있다. 하지만 컴퓨터를 정의하는 여러가지 관점들 — 즉 막대기들로 이루어진 기계식도 컴퓨터냐? 아니면 계산기도 컴퓨터냐? — 에 따라 다른 답이 나오기 때문에 정답은 없다고 생각한다. 다만 개인적으로도 그렇고 많은 학자들도 동의하는 것은, 현대식 컴퓨터를 처음 상상한 사람은 지난회 소개한 앨런 튜링 (Alan Turing)이라는 사실이다.

거인의 뇌 에니악

80년대 초등학교를 다닌 사람에게 “세계 최초 컴퓨터는?” 이라는 질문을 던지면 자동으로 “에니악!” 이라는 답이 튀어나올 것이다. 그리고 그 순간 머리속엔 괴물같은 거대한 검은 기계와 그 아래 작게 서있는 가운입은 과학자의 이미지가 그려질 것이다. 그렇게 컴퓨터를 소개해야했던 그 시대의 교과서가 한편으론 좀 씁쓸하다. 차라리 그 당시에 한창 히트하던 애플 컴퓨터를 소개했으면 좀 더 컴퓨터가 친숙하게 와닿았을걸… 아무튼 교과서가 거짓말하진 않았다. 실제 에니악의 생김새는 그 당시 사람들에게도 “거인의 뇌” 라고 불릴만큼 쇼킹한 모습이었으니 말이다.

에니악은 1943년 펜실베니아 대학교에서 만난 30대의 물리학자 마우쿨리(John Mauchly)와 20대의 전기과 대학원생 에커트(J. Presper Eckert)에 의해 만들어진 최초의 전자식 범용(all-purpose) 컴퓨터였다. 에니악은 당시 포탄의 궤적계산을 위해 미 육군이 추진한 프로젝트였다. 에니악은 과학 천재(예를들어 튜링)에 의한 놀라운 상상의 결과물이라기 보단,  노력파 엔지니어 마우쿨리와 에커트의 열정이 낳은 작품이라고 해야 적절할 것같다. 이전에도 비슷한 형태의 전자식 계산기, 예를 들어 아이오와 대학의 ABC 컴퓨터등이 이미 만들어졌고 에니악의 개발자들은 이것들을 참조했으니 말이다. 하지만 에니악이 대단한 것은 그때까지 현실성 없어보였던 진공관 컴퓨터를 실제 유용한 계산에 쓰일수 있을 정도로 성능과 안정성면에서 혁신시켰기 때문이다.

왼쪽 그림은 실제 에니악에 쓰인 진공관인데, 1940년대까지 진공관은 라디오나 TV등의 전자제품에 사용된 기본 부품이었다. 기계식 계산기에서는 막대의 회전 각도에 따라 숫자를 표현했다면 진공관에선 전류의 흐름 여부와 강도에 따라 숫자를 표현할 수 있고, 여러개의 진공관을 배열해서 덧셈등을 수행하는 기본 연산기를 제작할 수 있었다. 하지만 진공관의 문제는 쉽게 타버리는 불안정성에 있었다. 에니악은 17,468개의 진공관으로 이루어졌는데 한개의 진공관이 탈때마다 컴퓨터는 정지했고, 사람이 들어가 진공관을 교체해야만 컴퓨터를 다시 가동할 수 있었다. 에니악의 완성전까지 사람들이 프로젝트의 성공을 의심한 이유가 여기에 있었다.

하지만 마우쿨리와 에커트는 뛰어난 전기설계능력과 근성을 발휘해, 결국 에니악을 미육군이 흡족해할만한 수준으로 완성했고, 에니악은 1955년까지 수소폭탄 설계나 포탄의 궤도계산을 위해 사용된다. 에니악의 성능과 안정성을 요약하면 이렇다.

  • 평균 이틀에 한번 꼴로 컴퓨터가 멈췄고, 진공관을 가는데엔 15분 정도 걸렸다.
  • 초당 5,000번의 덧셈/뺄셈과 357번의 곱셈을 수행할 수 있었다 (참고로 아이폰 3GS는 약 20억번의 곱셈을 수행할수 있다; 즉 에니악보다 5천만배 빠르다)


에니악의 결정적 한계는 프로그래밍에 있었다. 새로운 계산프로그램을 에니악에 집어넣기 위해선 위 그림처럼 사람 (6인의 여성)이 직접 케이블을 연결하고 스윗치를 On/off 하는 과정을 거쳐야 했고 흔히 며칠이 소요됐다. 즉 새로운 소프트웨어를 돌리기위해 사람이 기계를 고쳐야 했던건 버네버 부쉬의 아날로그 계산기와 마찬가지였다. 이것은 튜링의 상상과는많이 달랐다. 튜링머신에선 소프트웨어를 테이프에 텍스트로 쓰고 범용 튜링머신(하드웨어)이 텍스트로 기록된 소프트웨어를 수행한다. 고쳐야 하는 계산기와 이론적인 튜링머신, 그 사이 간극을 연결한 “마법사”가 바로 폰 노이먼이다.

마법사 폰 노이먼 (John Von Neumann, 1903-1957)

폰 노이먼을 도대체 어떻게 설명할 수 있을까? 지금 블로그의 모티브가 된 책 [1]에선 그를 “마법사 (Wizard)” 라고 표현했는데, 그 보다 더 적절한 표현을 찾을수 없을것 같다. 헝가리 출신으로 미국에서 활동한 유대인 학자. 그의 동료 학자들은 그를 “마지막 위대한 수학자”, “두려운 능력자”, 혹은 “인류보다 고등한 존재의 뇌를 가진 사람”등으로 표현했다. 폰 노이먼은 건드리지 않은 현대 과학 분야가 없을 정도로 많은 분야에 빛나는 업적을 남긴다.
예를들어:

  • 경제학에 지대한 영향을 미친 게임이론을 창시
  • 양자역학과 논리학(logic), 집합론(set theory)에 결정적 공헌
  • 맨하탄 프로젝트에서 핵무기의 폭발에 관한 수학 모델을 세우고 계산
  • 현대식 컴퓨터 구조를 수립 (폰 노이먼 구조라 흔히 불림)

그 시대 폰 노이먼의 무게는 프린스턴의 고등과학원이 설립되며 초빙된 4인중 한명(아인슈타인, 괴델과 함께)이었다는 사실에서 쉽게 짐작할 수 있다. 1930년 독일의 수학학회에서 무명의 괴델은 “라이프니츠의 꿈은 이룰 수 없음”을 증명하는 이론을 내놓았는데, 그 당시 그 의미를 다른 수학자들 누구도 이해하지 못할때, 폰 노이먼은 그 자리에서 “논리학은 이제 끝장을 봤구나” 인식하고 다신 논리학쪽으로 고개를 돌리지 않았다.

폰 노이먼은 천재성에 더해 어쩌면 운이 좋은 사람인지도 모른다. 왜냐하면 그는 수학자로서 당시 비교적 알려지지 않은 튜링의 논문을 읽고 그 중요성을 간파한 소수의 사람중 하나였고, 동시에 맨하탄 프로젝트의 멤버로 에니악 프로젝트에 참여해 실물 컴퓨터를 경험한 특혜받은 인물이었기 때문이다. 즉 튜링의 이상적인 컴퓨터와 고쳐야 하는 계산기 ‘에니악’ 두가지를 모두 이해한 천재에게, 현대 컴퓨터의 첫 실물 모형 EDVAC의 개발은 어쩜 너무 당연한 수순이었는지도 모른다. 그는 에니악 다음 모델의 컴퓨터 EDVAC을 디자인한 리포트 “First Draft of a Report on the EDVAC (1945)”를 쓰고  현대식 컴퓨터의 아버지라는 명예를 얻는다. 그가 쓴 리포트는 실물 EDVAC뿐 아니라 곧 미국과 유럽에서 에니악 다음 세대의 컴퓨터 디자인에 기본 모델이 되었다. 리포트는 이런 내용을 담고 있다.

  1. 컴퓨터의 메모리에 프로그램과 데이터를 모두 저장해서, 사람의 개입없이 자동으로 프로그램의 명령어를 하드웨어가 수행하도록 한다 (stored program). 에니악은 사람이 케이블과 스위치를 조작해서 프로그램 해야 했다.
  2. 이진법을 사용한다 (에니악은 10진법).
  3. Program Counter 등의 레지스터를 사용한다.
  4. 수리연산 (덧셈, 뺄셈등)들의 회로 설계

리포트의 가장 중요한 내용은 프로그램이 데이터와 함께 메모리에 올려진다는 stored program 이었고 이는 프로그램이 테이프에 기록된다는 튜링 머신의 실물구현이었다. 아인슈타인에 버금가는 사회적 존경을 받았던 폰 노이먼은 불행한 두 천재 튜링, 괴델과는 다른 삶을 살았다. 명성 얻기를 주저하지 않았던 그는 그의 리포트에 튜링의 영향에 대해 전혀 밝히지 않는다. 후세의 연구에 의해 그가 튜링의 논문에서 직접적으로 아이디어를 얻었음이 발견됐을 뿐이다. 폰 노이먼이 프린스턴에서 박사를 마친 튜링에게 그의 조교 자리를 제안했던 사실은 그가 얼마나 튜링에게 관심이 있었는지를 말한다. 또한 폰 노이먼은 마우쿨리와 에커트와 함께 아이디어를 구상했으면서도 단독 저자로 리포트를 작성했다. 이로인해 이들 사이에선 훗날 특허 싸움을 치르기도 한다. 이상적인 컴퓨터와 현실적인 기계 사이의 간극을 연결한 폰 노이먼, 하지만 그 둘 모두를 자신의 업적으로 드러내고 싶었던 것은 지나친 욕심이 아니었을까?

튜링 (Alan Turing) – 진정한 소프트웨어의 아버지

튜링은 수학자로서 가상의 튜링머신을 상상하는 것에 그치지 않았다. 영국으로 돌아가 EDVAC과는 다른 형태의 컴퓨터 ACE (1946)를 구체적으로 하드웨어 레벨까지 설계하고 심지어 11,200 파운드라는 구현 비용까지 산정했다. 하지만 비전없는 영국 정부 (심지어 그를 자살로까지 내몰았으니)에 의해 ACE 프로젝트는 이리저리 표류하고 우울한 성격의 튜링을 더 좌절시키고 만다.

폰 노이먼이 비록 20세기의 빛나는 천재이긴 하지만 컴퓨터, 특히 소프트웨어의 진짜 아버지는 튜링이라고 할 수 있다. ACE 컴퓨터는 하드웨어의 역할은 최소한으로 하고 소프트웨어가 복잡한 연산을 수행하는 구조인데, 70년대 들어 개발된 RISC 프로세서가 그 연장선이라 할 수 있다. 폰 노이먼이 컴퓨터의 역할을 빠른 계산기 정도로 규정하고, 컴퓨터 프로그래밍을 단순 노동으로 치부한 것은 그가 EDVAC에 어셈블러 (프로그래밍 도구로 사람의 언어를 이진법 코드로 변환) 를 구현하려한 그의 학생에게 화를 냈다는 일화에서 잘 드러난다 [2]. 반면 튜링은 1947년 ACE 컴퓨터를  설명하며 사람과 대결하는 체스 프로그램을 예제로 소개해, 아직 실물 컴퓨터를 구경조차 못해본  수학자들을 놀라게 했다(이 당시엔 O/S, 컴파일러등 소프트웨어라는 개념 자체가 존재하지 않았다). 50년이 지난 1996년에 드디어 딥블루 컴퓨터가 체스 챔피언을 이겼다는 사실은 튜링의 비전 그 깊이를 알게 한다. 튜링에게 있어 컴퓨터는 사람처럼 생각하고 사람과 대화할 수 있는, 가리워져 있으면 사람인지 컴퓨터인지 구별할 수 없는 지적 존재였던 것이다. 이 글의 처음 에니악 사진을 다시 한번 보고 튜링을 생각한다. 그의 상상력의 깊이에 무한한 감사를 표현하고 싶다.

– 박상민 http://twitter.com/#!/sm_park

[1] The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal
[2] The Universal Computer: The Road from Leibniz to Turing by Martin Davis

컴퓨터 이야기 #2 – 천재들의 행진

2차대전을 둘러싼 시기(1940-60)는 아마도 “천재들의 행진”이라고 불러도 될만큼 컴퓨터 역사에 큰 발자취를 남긴 거인들이 가득하다. 전쟁이 조성해 놓은 급박한 분위기가 천재들의 상상력에 불을 지폈고, 때마침 히틀러의 나치즘을 피해 미국, 특히 보스톤 지역으로 몰려든 유럽의 천재들 (예: 아인슈타인, 커트 고델, 폰 노이먼..)은 MIT, 하버드를 중심으로 서로 아이디어를 나누고 토론하며 현재까지도 영향력을 미치는 학문 분야들을 만들어간다. 지난번 포스팅 [1]에서 다룬 인물 버네버 부쉬가 지휘하는 가운데, 미국 정부와 육/해/공군은 독일을 위협할 수 있는 잠재적 기술들에 아낌없이 연구자금을 지원했고, 이 당시에 연구됐던 기술들은 실제 무기로 개발되기도 했지만, 훗날 많은 학문 분야들과 IT산업의 근본을 이루었다는 점에서 더 큰 의미가 있었다.

컴퓨터의 개념과 결과물이 막 태어나는 시점이었던 1930-1945년의 특징은 수학, 철학, 인지학(두뇌를 다루는 학문), 심지어 생물학에 이르기까지의 분야를 섭렵했던 천재들이 혁명을 주도했다는 사실이다. 즉 단순히 기계의 조합, 계산기 수준의 생각으로는 컴퓨터의 탄생을 이룰 수 없었다. 17세기 라이프니츠의 꿈 (무엇이든 대답할 수 있는 꿈의 방정식)을 이해하고, 더 나아가 사람의 본질과 생각(reasoning)의 원리에 대해 끊임없이 고민하는 사람들이 컴퓨터를 상상해냈다. 그들에게는 컴퓨터란 독일군에게 보낼 포탄의 정확한 궤적을 계산하는 계산기 수준이 아닌, 사람의 마음(mind)을 심을 수 있는 기계였다. 그 천재들 중 하나가 노버트 와이너(Norbert Weiner) 였다.

노버트 와이너 (Norbert Weiner) (1894-1964)

한국에 천재소년 송유근이 있다면, 20세기 미국엔 노버트 와이너가 있었다. 와이너의 천재성은 그야말로 대단했다. 14세에 대학교를 졸업했고 17세에 하버드에서 수학 박사학위를 받는다. 그리고 그 과정에 수학, 동물학, 철학을 모두 공부했다. 학위를 마치고 유럽으로 날아가 스승으로 삼은 사람들의 면면도 대단하다. 지구 최고의 철학자 버틀랜드 러쎌 (Bertrand Russell), 수학자 데이빗 힐버트 (David Hilbert), 하디 (G.H. Hardy) 등등. 한마디로 20세기 모든 지식이 그의 머리안에 있었다고 해도 과언이 아닐것이다. 천재성 만큼이나 기행도 많았던 그는, 갑자기 노동문제에 관심이 생겨 기자로 일한다거나 전쟁시기엔 애국심때문에 군에 지원 복무하기도 하는등 “신동 증후군”을 톡톡히 앓았다. 그는 MIT의 수학과 교수로 평생을 연구에 몰두한다.

와이너가 컴퓨터의 발전에 미친 공적은 이것이다라고 하나를 내세우긴 힘들다. 그의 업적은 “피드백”이라는 개념을 공식적으로 도입한 학문분야 싸이버네틱스(Cybernetics)라 할 수 있는데, 싸이버네틱스의 피드백 컨트롤 개념은 훗날 인공지능, 인지학, 철학등에 걸쳐 다양하게 영향을 미친다. 말하자면 와이너는 인공지능과 로봇의 선구자쯤으로 요약할 수 있겠다.  피드백 컨트롤의 개념은 아래 그림처럼 아주 간단하다. 어떤 대상 (컴퓨터, 사람, 동물 등등. 그림에선 Process)에 인풋(Input)을 가하게 되면 그 대상은 그 인풋에 영향받아 측정할 수 있는 결과(Output)를 보인다. 그때 인풋과 아웃풋 사이에 대상의 행동을 제어할 수 있는 제어기(그림에선 Comparator)를 달아서 원하는 방식으로 대상을 제어하는 것이다.

이 간단한 피드백 루프(loop)의 응용은 아주 광범위한데, 예를 들어 실내 온도 조절기엔 “아웃풋=온도, 인풋=냉난방기를 적용하게 되면, 제어기는 자동으로 원하는 온도를 맞추기 위해 냉난방기를 동작시키게 된다. 나아가 뉴럴 네트워크(Neural Network)이라는 인공지능 이론이 여기에서 출발한다. 사람의 뇌 기본은 뉴론(neuron)으로 이루어져있고 각각의 뉴론은 전자 신호를 인풋으로 받고 뉴론의 프로그램에 따라 다시 전자신호를 아웃풋으로 배출한다는 개념이다. 그리고 왼편 그림처럼 수도 없이 많은 뉴론들이 서로 통신하며 인풋/아웃풋으로 엮인 큰 네트웍을 형성한 것이 바로 인간의 뇌라는 개념이다. 이를 구현하면 곧 궁극의 AI 머신이 된다.

와이너는 인웃/아웃풋, 통신(Communication), 그리고 제어기(Controller)를 수학으로 표현(모델링)할 수 있음을 보였다. 그리고 이는 단지 전자기술 한 분야를 넘어 생물학, 인문학에 이르기까지 깊은 의미를 갖는다. 왜냐하면, 세상의 거의 모든 존재들은 인풋-아웃풋, 그리고 그 사이에 위치해서 인풋을 아웃풋으로 바꾸어주는 제어기로 표현할 수 있기 때문이다. 예를들어 지금 노트북 스크린을 보는 내 눈은 “인풋”, 그리고 키보드를 두드리는 내 손은 아웃풋, 둘 사이의 “보고 두드리는” 속도를 조절하는 뇌는 “제어기”라는 의미이다. 일종의 목적을 갖고 인풋/아웃풋을 조절해 주는 제어기, 이것을 현실에서 구현해 내는 것은 바로 우리 두뇌와 동일한 일을 하는 인공지능 기계를 만드는 일이다. 이렇게 와이너가 정의한 제어 이론은 현대의 전자공학, 인지과학, 인공지능등의 분야에 기초를 마련했다.

고독한 천재 튜링 (Alan Turing) (1912-1954)

애플 컴퓨터의 로고 “한입 베어문 사과”가 튜링이 자살하면서 베어 물었던 사과에서 비롯됐다는 이야기가 있다. 그게 사실인지 아닌지는 확인할 방법이 없지만, 애플을 좋아하는 사람들은 그 이야기가 사실이기를 바란다. 컴퓨터 역사에서 튜링만큼 매력적인 인물이 없기 때문이다. 컴퓨터의 아버지라 불릴만한 발견을 했고, 독일군의 암호를 해독하는 일을 했으며, 인공지능의 선구자 였던 사실들, 그보다 호사가들의 마음을 더 끄는 것은 그가 바로 게이였고, 영국정부로부터 강제로 호르몬 주사를 맞은 사실, 그리고 그로 인한 수치심에 독사과를 먹고 42세라는 젊은 나이에 자살한 비극 때문일 것이다. 어쩌면 그렇게 비극적인 죽음을 맞지 않았다면 컴퓨터의 역사는 다르게 쓰여지지 않았을까 생각이 든다. 말년에 그가 몰두한 연구는 인공지능이었고, 최근에 iPhone의 Siri가 큰 반응을 불러일으키는 것을 보면 말이다.

튜링이 컴퓨터의 아버지라 불리는 것은 그가 상상한 튜링 머신 때문이다. 튜링 머신은 이전 포스팅 [2] 에서도 소개했는데, 형체를 가진 기계가 아니다. 튜링이 고안한 일종의 가상의 기계인데, 사람이 사고(thinking)할때의 과정을 표현한 모델이다. 튜링 머신은 정보를 읽고 쓸수 있는 무한한 길이의 테이프 (카세트 테이프라고 생각해도 OK), 테이프 좌,우로 움직이며 정보를 읽거나 쓰는 헤드, 그리고 언제 어떻게 테이프 내용을 업데이트 할지를 결정하는 제어로직(현대용어론 프로그램)으로 구성되어 있다.

튜링머신을 이해하기 위해 간단한 곱셈을 예로 들어보자. 15×24 라는 곱셈을 할때, 우리는 이런 과정을 거친다 (암산이 가능한 천재들도 한번 따라해 주시길..).
    15
x  24
——–
60
+300
——–
=360

처음에 테이프엔 왼쪽 맨 윗처럼 문제만 써있다. 제어 로직엔 오른쪽처럼 우리가 알고 있는 곱셈 방법이 프로그램 돼있다. 헤드는 테이프 내용을 읽어가며 곱해질 숫자의 맨 끝자리 수(4)를 찾은 다음 그 전 수 (15)를 곱한 중간 결과(60)를 테이프에 적는다. 이번엔 곱하는 수의10의 자리 (2)를 찾아서, 다시 그 전 수(15)를 곱하고 중간 결과를 적는다 (300). 끝으로 헤드는 중간결과값 적은 자리를 찾아가서 60과 300을 각각 읽어 들이고 두개를 더한 값을 테이프의 맨 끝에 적고 계산을 마친다.  위의 간단한 곱셈식은 튜링 머신으로 할 수 있는 “논리적 사고(thinking)” 의 간단한 예다. 결론적으로 테이프, 헤드, 제어정보로만 이루어진 튜링 머신은 인간이 할 수 있는 모든 형태의 논리적 사고를 표현할 수 있다.

그 다음 튜링이 보인 결과는 더 경이롭다. 튜링은 제어로직과 인풋데이터로 이루어진 튜링머신을 텍스트로 쓰고, 이를 또 다른 튜링머신 (Universal Turing Machine)에게 주어서 시뮬레이션 할 수 있도록 만들수 있음을 보였다. 즉, 위의 예에서는 복잡한 곱셈에 쓰이는 제어 로직(일의 자리, 십의 자리 순으로 계속 곱해나가고, 중간 결과값을 더함)을  [*, +, 헤드 이동…] 등의 일련의 텍스트로,  15, 24라는 인풋 데이터와 함께 테이프에 기록하는 것이다. 그럼 유니버설 튜링머신은 테이프에 새겨진 곱셈의 제어로직이 하라는 그대로 인풋 데이터를 가지고 수행하게 된다. 아하, 이렇게 튜링은 컴퓨터를 인류 최초로 상상한 것이다! 다음편에 소개할 폰 노이먼에게 튜링의 상상은 한줄기 빛이 된다.

이렇게 천재들은 인류의 역사에 큰 공헌을 하지만 한편으로 그들의 인생은 불행하게 마치는 것이 공통적이다. 강제로 호르몬주사를 맞아 가슴이 여자처럼 커지는 수모를 겪고, 결국은 독사과를 베어 물고 죽어야했던 튜링 (최근 영국 정부는 튜링에게 공식적으로 사과했다). 기술이 전쟁에 미치는 영향을 목격한후, 정부의 연구 자금을 스스로 끊고 일생을 함께 보낸 친구들 (폰 노이먼등)과의 관계마저 절교해 말년을 외롭게 보낸 와이너. 그리고 여기에 언급하진 않았지만 튜링보다 앞서 라이프니츠의 문제에 답을 한, 20세기의 최고 수학자 커트 괴델(Kurt Godel) 의 말년은 더 슬프다. 괴델은 정신불안에 시달리며 자신 아내이외의 사람이 주는 음식에 독이 들어있다고 의심하고, 아내가 병으로 입원해있는 동안 홀로 굶어죽고 만다. 빛나는 천재의 마음(mind)은 세상을 밝게 만들었지만, 그 밝음만큼 내면에 간직해야 했던 어두움은 그들 자신의 인생을 불행으로 몰고 간 것이다.

(다음 편은 폰 노이먼과 에니악, 에드박등을 다룰 예정입니다 ^_^b).

– 박상민 http://twitter.com/#!/sm_park

[1] 컴퓨터 이야기 #1 – 생각에서 기계로
[2] 소프트웨어, 하드웨어의 아버지

컴퓨터 이야기 #1 – 생각에서 기계로

왜 옛날 이야기를 시작하지?

지난번 괜히 제목만 거창한 글 “소프트웨어, 하드웨어의 아버지” 이후로 계속 컴퓨터, 특별히 소프트웨어 역사 이야기를 해보고 싶었다. 컴퓨터의 역사만큼 흥미진진한 이야기가 더 있을까 싶을 정도로 지난 70년은 컴퓨터, 인터넷, 웹을 창조한 영웅들의 무용담으로 가득하다. 사실 17세기의 라이프니츠까지 거슬러 올라가야 진정 소프트웨어의 역사를 이야기할 수 있겠지만, 우선 한동안은 20세기 초, 현대식 컴퓨터가 처음 만들어지던 시절부터 현재 실리콘밸리가 번영하기까지의 스토리들을 짚어보고 싶다. 굳이 옛날 이야기들을 써내려가는 건 컴퓨터, 소프트웨어가 얼마나 즐겁고 흥분되는 학문, 직업인지 이야기 하고 싶어서다. 어린 학생들이 가장 기피하는 전공이 컴퓨터 사이언스가 되었다는 이야기, 40대 프로그래머의 미래는 치킨집 뿐이라는 이야기들 (그래서 대학생들 컴퓨터 숙제하다 막힐땐 동네 닭집으로 달려가야 한다는데…), 그런 우울한 소식들에 지쳐있는 다음 세대들에게 소프트웨어의 “환상적인” 역사들을 소개하고 그래서 조금이라도 더 이 분야에서 일하고 싶은 생각이 들게 한다면, 그럼 지금의 잉여짓도 큰 보람이 있을거란 생각이 든다. 그럼 시작해 볼까?

생각에서 기계로

17세기 라이프니츠의 발칙한 상상, “세상의 모든 질문에 답을 주는 기계를 만들 수 있을까?“, 은 결국 괴델과 튜링의 증명을 통해 불가능하다고 결론이 났다 (관련 내용은 지난번 포스팅 참조 [1]). 즉 “신은 존재하는가?”와 같은 인간이 던지는 모든 질문들 중 어떤 것들은 Yes/No의 대답이 불가능하다고 결론난 것이다. 괴델은 그런 기계(궁극의 알고리즘)가 존재할 수 없음을 우회적으로, 세상의 어떤 논리로도 증명할 수 없는 다른 차원의 수들이 있음을 보임으로써 증명했다. 튜링은 거기에서 더 나아가 대답할 수 없는 질문의 “예제(example)”를 선보였고, 바로 이것이 튜링의 Halting Problem 이었다 (여전히 이게 뭔 이야긴가 궁금하시면 [1]을 꼭 참조!). 고대의 철학, 논리학, 수학자들을 미궁가운데 빠뜨렸던 질문에 답을 했으니 이제 과학자들 스트레스는 좀 덜어졌겠다 생각하면 오산이다. 이유는 바로 전 세계에 몰아닥친 2차대전의 여파가 과학 세계에도 몰아쳤기 때문이다.

전장에 나가있는 젊은이들의 생명이 과학자들에게 맡겨지게 된건 바로 현대식 전투에서 복잡한 수식 계산이 쓰이기 시작했기 때문이다. 예를들어 장거리 포의 궤적을 정확히 예측하기 위해서는 거리, 중력, 바람의 방향과 속도등 다양한 변수들을 궤도 방정식에 적용해야 했다. 전장에서 수식표를 들고 다니며 대입하는 방식으로는 목표물과는 엉뚱한 방향으로 포를 날릴수 밖에 없었다. 더 나아가 미국이 본격적으로 핵무기를 개발하는 “맨하탄 프로젝트”를 시작했는데, 플루토늄 239를 오직 원하는 시점에 폭발시키기 위한 장치를 만들기 위해서는 대단히 복잡한 계산식을 풀어내야만 했다 (실제 폰 누이먼에게 맡겨진 일이었다). 독일군의 암호를 해독하기 위해서도 빠른 계산기가 필요했다. 이것이1930-40년대에 과학계에 던져진 숙제였다.

버네버 부쉬(Vannevar Bush) 와 아날로그 계산기

그림: 버네버 부쉬(1890-1974)와 그의 미분계산기

버네버 부쉬 [2]의 이름을 들어본 적이 있다면 아마도 그가 현대식 “월드 와이드 웹(WWW)”의 첫 고안자였다는 사실때문일 것이다. 하지만 그것 말고도, 버네버 부쉬의 업적은 20세기 미국 과학계에 전설로 남아있다. 그의 몇가지 역할만 예로 들자면, “맨하탄 프로젝트의 지휘자”, “군수업체 Raytheon 설립자”, “최초의 미국 대통령 과학 비서관”등이다. 현재 세계를 지배하는 미국의 힘이 과학에 있다고 한다면, 그같은 과학정책을 처음 디자인한 사람이 바로 버네버 부쉬라고 할만큼 그의 영향력은 지대했다.

과학계에서 그의 첫 업적은 기계식 계산기의 개발이었다 [3] . 1920년대 MIT의 전자공학 교수로 일하며 그는 미분 방정식을 계산해 낼 수 있는 거대한 기계를 만들어냈다. 그의 계산기는 설명 그대로 기계였다: 위 그림처럼 막대, 기어, 도르래를 엮어서 만들었고 변수에 값을 할당하기 위해서는 여러개의 막대들을 정확한 각도로 회전시켜야 했다. 계산기에 새로운 방정식을 프로그래밍하는 건 더한 노동이었다. 막대와, 기어, 도르래를 다시 연결해서 주어진 방정식과 가장 유사한 형태로 조합해야 했던 것이다. 즉, 지금 우리가 C 언어로 몇줄 안되게 짜내는 방정식 계산 프로그램을 만들기 위해 이 당시에는 대학원 학생들이 땀 뻘뻘흘리며 막대기와 도르래를 회전시켜야 했다는 말이다. 그리고 계산기에 달린 모터를 돌리기 시작하면 기어가 돌고 막대기가 회전하면서 2%내의 오차에서 정확한 답을 계산해 냈다. 지금 시대의 우리가 보기에 너무나 조악한 이 기계는 그 당시 전 세계  과학계를 환희로 물들인 최고의 발명품이었다. 미국과 유럽등의 대학들에 날개돋힌듯 복제되어 배포되었고, 훗날 2차대전중 복잡한 계산식을 풀어내는데 사용되었다.

그림: 버네버 부쉬의 메멕스 (Memex)

앞에서 언급한대로 버네버 부쉬는 월드 와이드 웹의 개념을 처음으로 “상상”한 사람이다. 정보의 홍수속에 웹을 타고 헤엄치는 우리에게는 덜 와 닿겠지만, 그 시대의 유일한 미디어는 책과 마이크로 필름 정도였다는 것을 생각해보면 그의 상상력이 얼마나 기막힌것이었는지 알수 있다. 부쉬는 사람이 생각할때 꼬리에 꼬리를 물고 생각의 끈이 이어진다는 사실에 착안했다. 그리고 곧 사람의 두뇌에서 일어나는 그 원리를 그대로 기계로 만들어보면 어떨까 상상했고, 메멕스(Memex)로 불린 그의 상상속 기계를 구체적으로 “As we may think” 라는 논문에서 기술했다 [4]. 즉 마이크로 필름들에 쓰여진 정보중 다른 정보로 연결(association/하이퍼링크) 하는 부분에 문자 코드를 입력해 놓고, 필름를 읽다가 책상위 버튼을 누르면 책상속 기계가 돌아가며 문자코드가 가리키는 마이크로 필름을 찾아서 영사기에 올리고 출력해 준다는 개념이다. 이것은 지금의 WWW와 얼마나 유사한가! 문자 코드는 하이퍼링크고, 버튼은 마우스 클릭, 책상밑 기계는 네트워크로 대체하면, 곧 그의 상상이 바로 월드 와이드 웹 이었음을 알 수 있다. 1945년에 이러한 시스템을 상상했다니, 그저 놀라울 뿐이다. 그런 비전을 가진 사람이 만든 과학정책이 아직도 세계를 지배한다는 건 어쩌면 당연한 일인지도 모르겠다.

클라우드 섀넌(Claude Shannon)의 충격적인 석사 논문

클라우드 섀넌 (Claude Shannon), 1916-2001

20세기 최고의 “석사” 논문을 뽑으라면 누구나 주저하지 않고 클라우드 섀넌(Claude Shannon) [5]의 1937년 논문 “A Symbolic Analysis of Relay and Switching Circuits [6]”을 꼽을 것이다. 솔직히 박사논문들과 비교해봐도 그보다 영향력있는 논문을 과연 찾을 수 있을까 싶다. 왜냐하면 그의 논문이 역사상 최초로 추상적인 논리가 현실에서 돌아가는 기계로 만들어질 수 있음을 보였기 때문이다.

1936년 스무살에 수줍은 성격의 섀넌은 미시건 대학을 졸업하고 위에 소개한 버네버 부쉬의 석사 학생으로 MIT에 입학했다. 그는 부쉬의 기계식 계산기를 사용하면서, 계산기에 사용된 스위치 (switch: 막대와 막대를 연결)의 동작에 흥미를 갖게 됐다. 그리고 그는 곧 모터에 의해 열리고 닫히는 스위치가 오래전부터 사용됐던 불(Boole)의 이진법 연산(Boolean logic)과 동일하다는 사실을 발견했다. 참고로 이진법 연산이란 변수에 숫자가 아닌 참/거짓을 할당하고 더하기, 빼기의 사칙연산이 아니라 AND, OR, NOT과 같은 연산을 사용해서 주어진 식의 최종적인 참/거짓 여부를 구하는 계산법이다. 사람이 생각하고 결론에 다다르기까지의 논리를 바로 이진법 연산으로 표현할 수 있다. 섀넌은 아래 그림처럼 스위치 두개를 직렬로 이어놓았을때는 AND 연산, 병렬로 이어 놓았을때는 OR 연산과 같은 결과가 나오는것을 발견했다. 더 나아가 스위치들을 좀 더 복잡하게 조합하면 이전 스위치의 결과 (참/거짓)에 따라 다음 스위치의 열고 닫히는 여부를 결정할 수 있음도 발견했다 (즉 if/else 문을 수행할 수 있다는 뜻).

  

그림: AND 연산                                                                      그림: OR 연산

“이게 뭐 별거라고 21세기 최고의 논문 운운하냐?” 혹 이렇게 생각한다면, 좀 더 깊이 그 의미를 음미해보기를 권한다. 그것은 곧,

“사람의 생각을 기계의 조합을 통해서 표현할 수 있다”

는 충격적인 (적어도 내게는) 뜻이기 때문이다. 1930년대엔 모터로 스위치를 여닫는 기계가 쓰였지만, 곧 같은 원리가 진공관, 전자회로, 집적회로, 실리콘등 물질을 바꾸어가며 지금의 CPU와 메모리까지 이어져왔기 때문이다. 사람의 생각을 기계로 표현하는 것, 즉 컴퓨터 하드웨어의 시작을 연 것이 충격적이 아니라면 뭐가 더 충격이 될수 있을까?

지도교수 부쉬와 마찬가지로 섀넌의 천재성은 여기서 끝나지 않았다. 섀년은 10여년후 1948년 또 다시 세계를 놀래키는 논문 (A Mathematical Theory of Communication)을 쓰고 정보이론 (Information Theory)의 아버지가 된다. 일설에 의하면 그는 그의 발견을 논문으로 쓰기 싫었지만(귀찮았지만) 일하던 벨 연구소의 보스가 강제로 시켜서 출판했다고 한다. 그는 천재적인 수학실력으로 정보가 채널을 통해 전달되는 과정을 수학으로 표현하고, 채널에 노이즈가 있다 하더라도 정보를 표현하는 방식을 달리하면(encoding/decoding) 정보의 의미를 잃지 않고 전달할 수 있음을 보였다. 사람이 소음이 많은 환경에서 대화할때 몇개 중요한 단어만 들어도 문장 전체의 의미를 잃지않고 전달할 수 있는것과 같은 맥락이다. 그의 발견은 단순히 전화나 인터넷과 같은 통신망의 개발에만 중요한 것이 아니다. 정보의 교환이 이루어지는 모든 분야, 즉 인지과학, 인공지능, 데이터압축, 암호학, 또한 Compact Disc등 미디어에 이르기까지 모든 산업과 학문분야에 걸쳐 정보이론은 중요한 토대가 되었다.

(다음 편에는 튜링, 노버트 와이너를 다룰 예정입니다 ^__^b)

– 박상민 http://twitter.com/#!/sm_park

[1] 소프트웨어, 하드웨어의 아버지
[2] Vannevar Bush (위키 아티클)
[3] Differential Analyzer (위키 아티클)
[4] Memex (위키 아티클)
[5] Claude Shannon (위키 아티클)
[6] A Symbolic Analysis of Relay and Switching Circuits (위키 아티클)
[7] Information Theory (위키 아티클)

버그의 축복

1. 얼리아답터

언제부터인가 난 얼리아답터 (early adapter) 였다. 아마도 10년전쯤 나온 PDA 소니 클리에를 사면서 시작된것 같다. 지난번 포스팅한 너드들 특징중 하나가 바로 이 얼리아답터 성향이다. 남들은 아~무도 신경 안쓰는 새 전자기기를 부모님들이 알면 까무라칠 가격으로 사들인다. 그리고 어딜 갈때든 주머니속에 꼬옥 넣고 다니다가 괜히 한번씩 꺼내보고는 씩 웃는다. 몰려든 여동생들이 “와 오빠 이거 신기하다~” 외치면 기분이 업되서 한참동안 어썸한 기능을 설명하곤 한다 (하지만 결혼을 하고 여자의 심리를 좀 더 이해한 지금, 여자들의 감탄에 속지 말아야 함을 밝힌다). 곧 아주 간단한 기능들 – 예를 들어 바로 옆 메모지를 놔두고 기어이 PDA에 꾹꾹 노트를 입력하는 일 -을 데모하다보면 안쓰럽게 바라보던 여동생들은 어디로 사라지고 나와 PDA만 남곤했는데…

2002년 로망 클리에

새 기계와 소프트웨어로 마냥 행복할 것 같은 얼리아답터에게도 고통은 있다. 초기 제품들의 “버그” 때문이다. 새 제품 A가 출시되면 얼리아답터 커뮤니티는 (예: clien.net) 흥분의 도가니가 된다.  A의 새 기능들을 침이 마르도록 칭찬하고, 서로 서로 지름을 권유하고 축하한다. 하지만 이도 잠시, 곧 몇주가 지나고 나면 하나 하나 발견해가는 A의 버그로 인해 게시판이 서서히 불만으로 달구어진다. 곧 나온다던 SW 업데이트가 미뤄질수록 게시판의 분노는 점점 하늘을 찌르고, 누군가 당기면 촛불시위라도 시작할듯 A에 대한 첫사랑은 잊혀지고 만다.

그런데 3년전 나는 색다른 커뮤니티 경험을 했다. 아마존에서 이북리더 킨들이 나오기 전 네델란드의 iRex라는 회사에서 DR시리즈라는 이북리더를 출시했다. 당시 DR시리즈는 여러가지로 혁신적이었는데, 8″와 10″의 대형 스크린, 와콤 타블릿등  e-ink 디바이스의 매력을 처음으로 제대로 보여줬다. 그게 너무 갖고 싶어 가난한 유학생임에도 난  8″와 10″ 두 버전을 연이어 약 $400, $600 의 가격으로 샀다. 그리고 곧 인터넷의 DR시리즈 포럼에 드나들기 시작했다. 하지만 곧 얼리아답터의 고통이 비싼 가격만큼이나 강렬하게 찾아왔다. 수없이 많은 버그들을 발견했고, 어떤것들은 너무 치명적이었다. 그런데 곧 SW를 업데이트한다던 회사는 몇달이 지나도 감감무소식이었다. 더이상 참을 수 없던 나는 회사에 항의 메일을 써보내기 시작했고 나와 함께할 “동지”가 없는지 게시판 분위기를 살폈다. 헌데, 그곳 포럼은 이상하리만치 차분했다. 어떤 사람은 DR시리즈의 소프트웨어를 분석하며 왜 업데이트가 늦는지 설명했고 (그곳 직원이 아님에도), 어떤 사람은 DR이 오픈소스였던걸 활용해 몇가지 버그를 고쳐서 사람들에게 배포했다. 난 전공이 CS요, 시간많은 대학원생이었음에도 항의 메일이나 보내고 있는데, 비전공자를 포함한 너드들은 직접 문제를 해결하기 시작한 것이다.

몇년이 지나고 오픈소스 회사에서 일하고 있는 지금에서야, 그 경험이 바로 실리콘밸리의 고유한 해커 문화인걸 깨달았다.

2. 갑과 을 – 고통스런 파트너

뼛속 깊이 한국인인 내게 우리 소프트웨어 업계를 지배하는 ‘갑’과 ‘을’의 문화는 당연하게 다가온다. 얼마전 대기업에서 일하는 선배형이 페이스북에 남긴 메시지는, “금요일 퇴근하며 을에게 전화해 월요일까지 고칠수 있냐고 물었다. 미안하지만 할수없지….” 이런 것이었다. 여기서 SW개발을 두고 벌어지는 ‘갑’과 ‘을’ 가상의 시나리오를 한번 펼쳐보자.

  • 갑: 데이터 정렬(sorting)하는 프로그램 필요한데, 누가 해볼래?
  • 을:  제가 할 수 있습니다. 맡겨 주십쇼!
  • 갑: 기한은 일주일. 오케이?
  • 을: [월-화요일: 디자인] 바쁘다 바빠, quicksort를 쓸까 mergesort를 쓸까? [수-금요일: 구현] 제일 빠른 quicksort로 구현하자. 거의 다 됐다.
  • 갑: [금요일 오후] 아 참, 데이터 추출이 많은데, 당연히 해쉬테이블 썼지?
  • 을: 그런 얘기 안 하셨잖아요 ㅠㅠ
  • 갑: 그랬나?…이런 미안 ^__^ 월요일날 봐~
  • 을: [토-일요일]  출근하며 핸펀주소록 갑의 이름을 “멍멍이 키즈”로 바꿈.

스펙을 중간에 바꾸는 ‘갑’의 부도덕한 행위는 꼭 ‘을’에게만 고통을 주는건 아니다. ‘갑’ 자신도 즐거워야 할 주말에 일을 강요해야 하는 사실이 미안하고 부담스러울 수 밖에 없다.

3. 갑과 을  – 깔끔한 파트너

위 사례에서 몇가지만 수정하면 깔끔한 ‘갑’과 ‘을’의 관계를 만들 수 있다. 즉, ‘갑’이 월요일 정확한 스펙(해쉬테이블)을 넘겼다거나, 금요일 스펙을 변경하면서 일주일의 기한을 더 주었다면 ‘을’은 마음편히 주말을 보냈을 것이고, ‘갑’도 ‘을’ 보기에 미안하지 않았을 것이다. SW 계약시에 ‘갑’은 정확하게 스펙을 던져주고, 프로그래밍 실력이 출중한 ‘을’은 스펙의 기능을 버그 없이, 기한안에 완성해 낸다면, 이게 진짜 소프트웨어 유토피아 아니겠는가? 그런데 문제는,

두 사례 모두 소프트웨어 망국으로 향하는 길이라는 사실이다!

4. 버그와 혁신

위의 얼리아답터 사례에 비춰봤을때 나는 ‘갑’이었고, DR을 판 회사는 ‘을’이었다. 나는 당연히 ‘갑’의 마인드로 스펙과 기한을 못 맞춘 ‘을’에게 분노하고 심지어 고소를 운운했다. 그런데, 커뮤니티의 다른 ‘갑’들은 태도가 달랐다. 끈기있게 업데이트를 기다려주거나, 스스로 버그를 고쳐나가기 시작한 것이다. 그 당시 이해되지 않았던 그 현상의 의미를, 지금 오픈소스 회사에서 일하며 SW를 판매하는 미국판 ‘을’이 되고 나서야 깨달았다. 우리 소프트웨어(eucalyptus)는 약 60만 라인의 복잡도 만큼이나 버그가 많다. 며칠간은 잘 작동하다가도, 갑자기 어이없는 버그가 출현해 우리를 당황시키곤 한다. 그때마다 한국적 ‘을’의 마인드를 가지고 있는 나는 마치 내가 큰 실수 한듯 미안해하며 급히 고치겠다고 사과한다. 하지만 내게 더 당황스러운 것은, 별일 아니라고 하며 쉽게 넘어가주는, 심지어 스스로 우리 소스코드를 고쳐 다시 우리에게 제공해주는 해커 ‘갑’ 들의 모습, 그리고 그들의 회사들이다. 우리에게 돈을 지불한 그들이 우리 제품을 고쳐서 사용하고 결과물을 다시 우리에게 돌려주는 것이다!

이것이 바로 실리콘밸리에서 일어나는 버그를 통한 혁신이라고 생각한다. 오픈소스 프로젝트의 바이블인 Cathedral and the bazaar [1]에서 설명하듯이 새로운 SW프로젝트의 시작은 기존의 유사한 SW가 가지고 있는 버그나 결함에서 출발한다. SW를 사용하면서 불편함을 느낄때 혹은 새 요구조건을 기존 SW가 충족시키지 못할때 자연스럽게 창조의 욕구가 생겨나고 이는 곧 혁신적인 다음 세대 SW의 출현으로 이어진다. 그래서 오늘 ‘갑'(사용자)의 자리에서 불편함을 느끼며 SW를 사용하는 사람이 내일 ‘을'(개발자)의 모습으로 변해 새롭게 SW를 써내려가는 것이다. 그리고 종종 이 불편함에서 출발한 아이디어가 전 세계를 강타하는 초대형 SW로 탄생하는 것이다. Minix 라는 기존 O/S를 즐겨 사용하던 리누스 토발즈는 모뎀 기능이 없다는 사소한 불편함때문에  새로 리눅스를 만들었다. SW업계의 “쾌남” 래리 엘리슨도 메인 프레임 DB 프로그래밍하며 느낀 불규칙한 인터페이스의 불편함에 착안해 오라클을  시작했다.

불편함을 감수하는 얼리 아답터는 개인에게만 해당되는 것이 아니다. 스타트업에게 바이블중 하나인 Crossing the chasm [2] 을 읽다보면 실리콘밸리 기업들이 얼마나 조직적으로 이 불편함을 감수하는지 알수 있다. 기업들은 새로운 기술을 선보인 작은 회사들 SW를 전략적으로 구입하고, 그 기업이 성장하기까지의 과정을 유심히 지켜본다. 그들은 SW를 사가면서 완벽함을 기대하지 않는다. 새롭게 시작하는 회사의 비전을 믿어주고, 비전이 성공했을경우 자신들에게 돌아오는 혁신에 투자하는 것이다. 우리 회사는 직원 60명의 작은 규모지만, 고객중에 대기업들이 많다. 그리고 그 기업들의 엔지니어들은 꾸준히 자신이 고친 우리 소스코드를 우리에게 피드백한다. 대기업은 스타트업의 제품을 사서 스타트업의 생명을 이어가게 하고, 버그를 통해 스타트업의 혁신을 수혈받는 것이다.

5. 결론

우리에게 문제는 “버그(과정) = 고통” 이라는 등식이다. 깔끔한 솔루션을 원하는 ‘갑’에게 있어 버그는 ‘을’의 계약 위반이고, ‘을’이 어떻게든 해결해야 하는 그들의 “고통”이다. ‘을’에게 있어 버그는 SW 배달전 모조리 잡아야 할(아님 감춰야 할) 치욕이다. ‘갑’이 버그를 발견했을때 받을 더 큰 서러움(혹은 더러움)을 피하기 위해서는 기한전에 고통을 감수하는게 낫다. 버그없는 SW는 존재하지 않기 때문에 하나 하나 잡아내는 버그는 SW의 진화 과정 그 자체다. ‘갑’에게도 ‘을’에게도 이 과정은 피하고 싶은 고통일 뿐이다. 우리에겐 깔끔한 솔루션이 가장 달콤하다. 그리고 그 달콤함에 탐닉하는 동안 SW산업은 서서히 경쟁력을 잃어가는 것이다.

그래서 SW의 참 경쟁력은 버그를 해결해가는 과정과 거기에 참여한 개인, 기업들의 시너지에 있다. 그리고 실리콘밸리의 해커와 기업들은 그 과정을 기꺼이 즐긴다. 각자 짠 코드의 버그를 발견할때마다 한번씩 그 뉘앙스에 웃어주고, 누가 먼저할 것 없이 고쳐나가는 사람들.  하지만 뼛속까지 한국인인 나를 돌아볼때 너무나 자주, 결과의 깔끔함에 집착하고 과정을 즐기지 못하는, 달리 표현하면 높은 “생산성”에만 몰두하는 자신을 발견한다. 나와 내 동료들이 일의 과정을 대하는 다른 자세, 그 이유는 무엇일까 많이 궁금하다. 어쩌면 새마을 시절부터 “지금 삽질은 힘들지만, 훗날 떵떵거리고 살수있다” 는 토목 정신이 흘러서 그런가? 그런데, 지금 많이 넉넉해진 우리는 왜 여전히 불안하고 고통스러워 하는건지…  초중고교 시절을 이어온 주입식 교육 -배움은 고통이고, 극복하면 밝은 미래 – 이 여전히 뇌신경 줄기마다 박혀있어서 그런건지도 모르겠다. 오랫동안 유토피아를 갈망해온 우리에게 진짜 유토피아는 우리가 지나오던 그 길 이었는지도 모른다. 소프트웨어의 축복이 버그에 있듯이.

“It is better to travel hopefully than to arrive. – R L Stevenson”

— 박상민 http://twitter.com/#!/sm_park

[1] The Cathedral and Bazaar by Eric S. Raymond
[2] Crossing the chasm by Geoffrey A. Moore

너드의 코드

꽤 오래 블로그를 안해서 그런지 손가락이 찌뿌드드하다. 오늘은 무슨 이야기를 해볼까 생각하다가, 문득 그동안 관찰한 인류의 한가지 패턴중 하나인 너드(Nerd)를 떠올렸다. 한국에도 너드 인종이 분명 존재하지만, 여기 미국의 너드 인종은 사회가 자유로워서 그런지 마음껏 DNA에 새겨진 너드 향기를 풍기며 산다. 그리고 신기하게도 그들과 함께 지내면서 그들의 너드향에 취해 나 또한 너드가 되어 가는것을 발견한다. 완전히 너드인으로 감염되기 전에 어서 나의 발견을 세상에 알려야겠다는 사명감이 들어 키보드를 두들긴다.

우선 유식하게 보이기 위해, 너드 (Nerd)의 사전적 정의를 한번 먼저 살펴보자 (http://dictionary.reference.com/browse/nerd).

  1. 멍청하고, 쓸모없고, 매력없는 사람
  2. 똑똑하지만 비 사회적인 취미나 이상에 깊이 빠져있는 사람

멍청한 사람도 너드고 똑똑한 사람도 너드라니 재밌다. 미묘하게 두 반의어 사이를 오가는 인종을 너드인이라고 해야 할까? 참고로 유사어로는 Geek 정도가 있고, 한국에서 서식하는 너드는 흔히 오탁후, 잉여인등의 명칭으로 불린다. 그럼 본격적으로 너드의 코드를 분석해 보자.

1. 너드의 드레스 코드 (Nerd’s dress code)

너드라면 패션센스 없는게 상식이다. 나는 한국에 갈때마다 한가지 스트레스를 받는데, 나름 집에서 제일 깨끗한 옷으로 잘 차려입고가 비행기에서 내리면, 부모님, 특히 엄마가 너무 속상해하신다. 미국에서 거지온줄 알았다고…하루, 이틀 여행가방에 넣어온 옷들 — 주로 검은 티셔츠와 갭 반바지 — 을 입고 돌아다니면, 결국 이웃들 보기 부끄러우신지 내 손을 이끌고 메이커 옷가게로 향하신다. 몸에 착 달라붙는 그 옷들을 한국에서만 간신히 입어 드리다가 미국에서는 옷장에 쳐박고 다시 나만의 드레스코드로 돌아간다. 그럼 너드의 드레스 코드, 그 기준은 무엇인가? 개콘의 애정남 프로가 유행인데 최효종처럼 그럼 나도 이 자리에서 애매한 그 기준을 정확히 정해드리겠다.

  • C급 너드: 면바지 + 카라 있는 옷 (폴로 티셔츠나 남방)
  • B급 너드: 청바지 + 카라 없는 티셔츠
  • A급 너드: 청바지/반바지 + 공짜 티셔츠 (주로 컨퍼런스에서 주는 홍보 티) + 샌달
  • 일진 너드: 반바지 + 공짜 티셔츠 + 샌달 + 양말 (흰색이 갑)

여기에 예외는 없다. 내가 수년간 관찰한 결과이기도 하고 리누스 토발즈가 그의 책 (Just for fun)에서 밝히기도 한 그의 드레스 코드다.

        리누스 토발즈와 흰양말                                     귀여운 검은 티셔츠 고슬링 옹

오른쪽 사진은 두달전쯤 우리 회사에 놀러온 제임스 고슬링 옹이시다(고 밑에는 본인). 나의 기대를 저버리지 않고 그분은 반바지, 공짜 티셔츠, 샌달에 양말을 정확히 착용하고 계셨다. 우리 회사에선 마케팅 차원에서 회사의 로고가 새겨진 가장 싼(!) 티셔츠를 선물했고, 티셔츠의 로고를 약 10초간 흐뭇하게 바라보며 좋다고 하던 그의 모습을 잊을 수 없다.

우리 회사의 개발팀 막내는 작년 막 대학을 졸업한 ‘개럿’이라는 녀석이다. 이 친구가 저 멀리 미네소타주에서 인터뷰 하러 온날, 나와 동료들은 그의 모습을 보자마자 결론을 내렸다: “대박이다. 뽑자!”. 두뺨을 살포시 덮는 꼬불꼬불한 금발, 여드름끼가 가시지 않은 희고 큰 얼굴에 두툼한 안경을 낀 그 녀석의 호기심 가득한 얼굴은 동화속에서 막 뛰어 나온것 같은 너드나라 어린왕자였다. 깔끔해 보이려고 입은 흰 남방을 힘겨워 하는 그를 보며 , 면접을 위해 엄마가 정성껏 골라준 옷이었다는 사실을 모두 직감했다. 그의 패션센스는 반바지에 매달고 다니는 알루미늄 물통에서 절정을 이룬다. 회사에 들어온후 우리의 예상대로 그는 실력에서도 일진이었다. 개발팀에서 가장 어리고, 팀 절반은 박사들이지만 그의 패키징 지식은 팀의 그 누구도 따라갈 수가 없다. 개럿은 Fedora 커뮤니티에서 존경받는 개발자중 하나다.

2. 너드의 생활 코드 (Nerd’s social code)

너드들과 어울려 생활하다 보면 묘하게 발견되는 대화와 인간관계, 그리고 취미의 공통점이 있다. 오늘은 특이한 두가지만 소개해 본다.

– 마음 여린 독설가
경험상 성격이 유순하고 두루 두루 사람들과 잘지내는 사람가운데 뛰어난 프로그래머는 드물다. 뛰어나고 감각적인 코더들은 종종 성격이 지랄 맞거나, 아니면 대화의 기술이 부족해서 표현이 아주 직설적이다. 이를테면 우리 회사의 개발회의는 종종 이런식의 대화가 오간다.

CTO ‘리치’ (약 50세, 사진속 고슬링과 대화) – “얘들아 우리 경쟁회사 애들이 A라는 기능을 새로 추가했단다. 우리도 그 기능을 만들어볼까?”

나 (순한 32세) – “오 좋은 아이디어. 나도 그런거 생각했어요 (일종의 아첨…).”

개발자 ‘닐’ (31세) – “오 쒯, 왓 더 뻥! 코딩도 제대로 못하는 잡놈들이 만든걸 따라하라고?”

회의중에 “쒯” “왓 더 뻥” 이런 상스런 표현은 아주 흔하게 접한다 (뻥유 까지는 안한다). 회사에 ‘닐’ 이라는 이름의 31살 친구가 있는데 이 친구는 욕쟁이다. 까무잡잡한 얼굴에 까만 구레나룻이 나서 좀 무섭게 생겼고, 운동을 열심히 해서 몸도 근육질인데 이 친구는 회의할때면 종종 흥분해서 욕을 내뱉는다. 개발팀엔 50대 아저씨들도 있고 CTO는 예전 지도교수인데도 욕은 때와 장소를 가리지 않는다. 사실 표현이 거칠어서 그렇지 대부분 맞는 이야기를 한다. 약간은 어색한 가운데 회의가 끝나면 ‘닐’은 이런 사진을 모두에게 보내곤 한다.

            

그렇다. 그는 험상궂은 얼굴에 욕을 달고 살아도 마음만은 고양이 사진을 좋아하는 여린 청년인 것이다!

대부분 너드들은 마음이 여리고 착하다. 뛰어난 화술과 감정을 숨길줄 아는 사회 생활 스킬은 부족해도, 그래서 종종 친구들이 없고 외로워 보여도, 내가 만난 진짜 너드들은 모두 착한 사람들이었다. 소프트웨어 회사의 진정한 힘은 MBA 출신에 서글서글 사교성 좋은 사람들보다, 이렇게 거칠지만 마음 여린 개발팀 너드들이다.

– 잉여 폭발
지금까지 여러번 강조했지만, 폭발하는 잉여력은 너드들의 특징중 하나다. 회사에서 누가 지시하지도 않았는데 너드들은 종종 밤을 세우고 심혈을 기울여 대단한 작품을 만들어 내곤 한다. 그리고 그 작품에 다들 감탄하지만, 누구나 곧 이 의문을 갖게 된다. “근데 왜 했지?” — 예를 들어 ‘앤드류’라고 주말에도 회사에서 사는 젊은 너드가 최근 액셀 파일을 하나 만들었는데, 실시간으로 회사의 서버 정보들을 취합하는 매크로를 사용해 대단한 그래프를 선보였다. 내가 보기에 너무 멋졌다. 근데 왜 한건지는 잘 모르겠다. 이미 그 기능을 하는 웹페이지가 있었는데…

종종 이런 잉여력은 취미 생활로 나타난다. 우리 회사엔 자전거에 미친 사람이 많은데, 매일 나가서 20 km 정도를 달리고 온다. 보기 좀 민망하게 어떤 부위에 착 달라붙는 자전거복을 입고 복도를 왔다갔다 하는 사람들 보면 “난 누군가, 여긴 어딘가” 생각이 절로 난다. 회사의 한국인 교포 친구는 써핑을 좋아해서 매일 아침 써핑하고 1시에 출근한다. 밤늦게까지 일하며 자기 몫은 잘 해낸다. 코딩을 하다보면 종종 기타소리가 들리는데, 자기 방에서 갑자기 미친듯 기타를 치는 대니얼과 그의 전 지도교수 리치다. 한때 골프에 미친 나는 1년동안 매일 아침 라운딩을 돌고 출근했다.

3. 너드의 인생 코드 (Nerd’s life code)

너드의 인생은 호기심으로 충만하다. 재미있는 장난감에 어린아이처럼 좋아하고, 새로나온기계에 흥분을 멈추지 않는다. 우리 회사 사무실엔 장난감 헬리콥터가 날아다니고 모형 기차가 비좁은 개발실 가운데에서 빙글빙글 돌아간다. 고등학생 아들이 있는 엔지니어 아저씨 ‘데이빗’은 어느날 흥분하며 로봇 프로그래밍을 해보자고 제안한다 (회사의 비지니스와 관련도 없는데). 그의 입사를 환영하는 회식은 비좁은 사무실에서 시켜먹은 인도 카레와, 그가 들고온 X-box 게임이 전부였다.

잉여짓과 같은 작은 비전도, 때로는 세상을 바꾸는 큰 비전도 너드의 세상가운데 피어난다. 너드는 자신이 꿈꾸는 비전을 향해 코딩을 멈추지 않는다. 나이가 들수록 오히려 그 열망은 강해지는듯 하다. 우리 개발팀 최고 노장 아저씨 ‘밋치’는 아마 나이로는 50을 넘겼을거다. 하지만 우리 개발팀중에 그가 제일 유명하고 실력도 최고다. 구글을 포함 수만명이 그가 만든 아마존 웹서비스 클라이언트 라이브러리를 사용한다. 아저씨는 낮에는 회사일로, 밤과 주말에는 사람들이 보내온 패치를 적용하고 코딩하느라 정신이 없다.  우리회사의 창업자이자 CTO인 ‘리치’역시 비슷한 연배의 대학 정교수다. ‘리치’는 개발팀 사람들 중 매일 아침 가장 일찍 출근해 코딩한다. 노트북 스크린을 뚫어버릴듯이 집중하며 키보드를 두들겨대다가, 밝게 웃으며 느즈막이 출근하는 우리들을 맞는다. CTO 역할은 좀 더 높은 자리에서 회사의 비전과 경영을 논해야 하건만, 그는 여전히 버그를 잡으려 GDB를  돌리고 시스템을 테스트할 스크립트 짜기에 여념이 없다. 출장길 공항에서도 그는 SSH로 접속해 시스템을 점검한다.

“너드: 똑똑하지만 비 사회적인 취미나 이상에 깊이 빠져있는 사람” — 그 이상이 세상을 바꾼다.

4. 마무리

의문이 든다. 나는 진짜 너드일까?
패션감각은 제로니까 OK. 지금쓰는 블로그를 포함해 종종 잉여짓을 하니까 그것도 OK.
그런데 내가 프로그래밍하게끔 하는 힘은 정말 호기심과 비전일까?

두 딸과 아내의 생계를 위해 내가 희생한다고 생각했던적이 얼마나 많았는데…
박사학위를 받으면 코딩하지 않아도, 고상한 논문에 남들을 지도하는 것만으로도 존경받을거라 생각한적도 있었는데…
뛰어난 프로그래머가 아니면 도태될까봐, 그 “공포”에 질려 기술책들을 읽어가던 그런 때가 얼마나 많았는데…

그런데 50세가 넘어서도 코딩하는 나의 모습을 나는 정말 바라고 있었던 걸까? ….

아무쪼록, 훗날 내 아이들의 아이들을 무릎에 앉혀놓고 내가 만든 시스템을 보여줄 그런 날을 맞게되길 소망해본다.

– 박상민 http://twitter.com/#!/sm_park

클라우드, 새 술 담는 부대

1. 들어가며
사실 블로그를 처음 시작한 이유는 일하는 분야인 클라우드를 설명하고 구체적으로 아마존 웹서비스 같은 대세 기술들을 소개 하자는 것이었다. 하지만 어쩌다보니 잉여와 공포, 영웅등의 이야기에 빠져들어가 꼭 써야 할 클라우드 이야기를 미루고 있었다. 그런데 막상 글쓰기를 시작하고 발견한 사실은 클라우드, 이놈이 설명하기가 정말 까다롭다는 점이다. 사실 어제도 두어시간 키보드를 타닥 타닥 대다가 접고 말았다. 모두들 대세라고 인정하는 IT 기술 클라우드. 이 회사 저 회사마다 “내가 진짜 클라우드요!” 등장하고 있고, 특히 애플에서 독점적인 컨텐츠가 결합된 플랫폼 iCloud 를 가지고 나오니 사람들마다 “클라우드 어우썸!”을 연발하고 있다. 장님이 코끼리 만지기 시합하듯 “컨텐츠가 클라우드요~”, “가상화가 클라우드요~”, 비용절감이 클라우드요~” 제각각 만져본 코끼리 모양을 설명하고 있다. 오늘은 나도 그럼 내가 만져본 클라우드의 몸통을 묘사해 보리라.

“새술은 새부대에 담아라” – 성경에 나오는 교훈인데 왠지 클라우드의 출현배경을 설명하기에 적절해 보여서 제목으로 따왔다. 우선은 클라우드라는 새 “부대”에 담길 “새 술”로 시작해보자.

2. 불어나는 새 술
굳이 길게 설명하지 않아도 이제는 스마트폰과 타블렛이 지배하는 세상이 되었다. 새 세상이 왔구나! 가장 강렬히 느낀건 컴맹이였던 우리 부인께서 침대에 누워 아이폰으로 아이돌의 동향을 탐색하고 있을때였다. 나만 해도 정보에 중독이라도 되어 있는지 쉴새 없이 트위터와 페이스북을 살피고 스카이프로 통신하며 하루의 대부분 시간을 보낸다. 아래의 그림처럼 불과 3년이 채 안된 사이에 손바닥위의 컴퓨터가 우리 일상을 완전히 지배하기 시작했다. 스마트폰뿐 아니라 이제는 자동차 [1], 바다위 서핑보드 (제임스 고슬링의 새 벤처) [2], 풀뜯는 가축들까지 데이터를 인터넷으로 발산하고 있다. 마크 앤더슨 (Marc Andreessen)은 10년안에 지구의 절반 50억 인구가 스마트폰을 휴대할 것이라 예견했고 [3], 더 나아가 IBM은  2015년까지 1조개의 디바이스들이 인터넷에 연결될 것이라고 전망했다 [4]. 1조개의 디바이스들이 뿜어낼 데이터의 양은 상상하기도 힘들다.

스마트폰 가입자 수.

폭발적인 디바이스, 데이터증가와 더불어 생기는 변화는 기존의 구식 산업들이 점차 온라인 소프트웨어로 대체되어 간다는 점이다. 앤더슨이 최근 유명한 “왜 소프트웨어가 세상을 먹어치우는가 [3]”, 기고문에서 밝혔듯 넷플릭스는 TV를, 킨들은 종이책을, 스카이프는 전화선 통신사들을 최근 몇년사이에 먹어치웠다는 사실이 이를 잘 보여준다. 땅 덩어리가 너무 넓어 택배 서비스가 형편 없는 미국인데, 아마존에서 주문한 물건은 빈틈없이 하루만에 배달된다. 몇시까지 주문했을경우 다음날에 배달되는지를 초단위로 정확히 계산해주는 아마존 백엔드 소프트웨어는, 이미 대부분 미국인들을 구식 택배서비스에 만족할 수 없게끔 중독시켰다. 얼핏 보면 IT와 거리가 있어 보이는 회사(월마트, 페덱스)와 산업 분야들(자동차, 금융, 의료, 음악) 모두 허겁지겁 온라인 소프트웨어로 달려들고 있다. 소프트웨어에 의해 잡아먹히느냐 아니면 잡아먹느냐 무한 경쟁을 시작했다해도 과언이 아닐것이다. 아래의 그림은 현재 아마존 클라우드로 운영되는 일부 회사들이다. 대부분 설립된지 5년이 안된 기업들인데, 세개의 회사(Netflix, Zynga, Dropbox) 추산가치만 합해도 20조원이 넘는다. 그리고 이들은 각각 DVD대여, PC 게임(EA), 하드디스크와 같은 구식 산업들을 잡아먹고 있다.

불어나는 새 술 — 데이터의 폭발적 증가와 온라인 소프트웨어의 확산 — 이 산업 전반에 퍼져나가고 있음은 확실하다. 아마존 클라우드의 수백개 고객리스트(참조 [5]) 를 보면 거의 모든 산업분야들이 총망라 되어있다. 내가 일하는 갓 2년된 클라우드 스타트업에서는 종종 전혀 예상치 못한 회사와 기관들이 고객이 되는 것을 경험한다. 예를 들어 신발회사 퓨마, 정부기관 NASA, FDA,  무기회사, 심지어 이름을 밝힐수 없는 종교기관까지(!)…급증하는 데이터를 온라인 소프트웨어로 처리하는 “새 술” 어플리케이션은 분야를 가리지않고 생겨나고 있다.

3. 헌 부대: 클라이언트-서버 시스템
그런데 문제는 불어난 새 술을 담기엔 기존의 기술이 헌 부대라는 사실이다. PC가 안방을 차지하고 웹이 거미줄처럼 세상을 엮어버린게 이제 15년 지났다. 초기 인터넷 시대의 아키텍춰는 클라이언트-서버 (C/S) 모델로 쉽게 요약할 수 있다. 몇대의 서버들이 수만명 클라이언트의 웹 요청을 처리하는 방식이다. 사실 C/S 모델은 더 오래전으로 거슬러 올라가는데, 호랭이 담배피던 옛날엔  회사나 학교에서 돌리는 메인프레임에 집에서 dumb (멍청한) 터미널로 접속하는 너드들이 있었다. 쉰세대의 로망 하이텔, 천리안 시대를 생각해 보라. PC와 웹의 시대가 도래한 이후에도 기본적인 클라이언트/서버 구조는 증가하는 웹서버와 PC 인구를 무리없이 커버했다. 흔히 LAMP 스택 (Linux-Apache-MySQL-PHP) 으로 칭하는 오픈소스로 구성된 백엔드가 대표적인 기술이다. 아래의 그림은 흔하게 볼수 있는 C/S모델의 백엔드 구성을 보여준다.

하지만 폭발적으로 증가하는 인터넷 접속 단말들과 데이터의 양은 점점 기존의 C/S 모델이 지탱할 수 있는 범위를 넘어서고 있다. 우선 서버가 감당해야할 클라이언트의 수가 너무 많아진다 (뻥쟁이 IBM임을 감안하더라도 1조개의 숫자가 갖는 의미는 대단하다).  그리고 과거 단순히 사용자가 PC로 정보를 읽어내려가던 웹이 이제는 실시간으로 사용자가 정보를 제어, 융합하는 interactive media로 변하기 시작했다 (Ajax, HTML5 등등). 누군가 외쳤던 것처럼 이제는 “네트워크가 컴퓨터다”, 이게 현실이다. PC, 타블렛, 스마트폰은 이제 거대한 컴퓨터(네트워크)와 상호 작용하게끔 돕는 사람들의 네트워크 말단(edge) 인터페이스가 되어가고 있다 (스카이넷의 손, 발, 눈이 되어간다고나 할까?)

디바이스, 데이터, 온라인 소프트웨어가 범람하는 이 시대엔, 헌 부대 — 클라이언트/서버 모델 — 로는 담을 수 없는 몇가지 중요한 특성이 있다.

  • 스케일: 디바이스가 게임이나 검색등으로 네트워크에 무언가를 요청할때마다 백엔드에서는 서버자원을 소모한다. 디바이스가 많아지는 만큼 백엔드의 서버도 증가하게 되어있다 (최근 122개의 타블렛 컴퓨터가 팔릴때 1대의 서버가 증가한다는 인텔의 보고서가 있다 [6]).  최고로 재미있는 웹게임을 만들었어도, 백엔드가 준비되어 있지 않을 경우 급속히 증가하는 게이머를 받아들일 수가 없다 (예를 들어 앵그리버드의 제작사는 이미 아마존 웹서비스를 사용중이다). 한정된 서버를 두고 서비스하는 C/S 모델은 근본적으로 디바이스의 폭발적 증가를 감당할 수 없다.
  • 정보의 실시간성: 트위터와 페이스북이 재미있는 이유는 정보들이 바로 몇초전에 누군가의 뇌에서 튀어나온 신선한 것이기 때문이다. 이미 우리는 어제 생산된 지식은 의미가 없어진 시대에 살고 있다. 농산물을 가공해 음식을 만들어내듯, 정보들은 온라인 소프트웨어에 의해 유용한 지식으로 가공돼 사람들에게 전달된다. 헌데 정보의 양이 많아질수록, 단 몇분 안에 정보를 유용한 지식으로 가공해 내는 것은 제한된 서버로는 불가능하다. 불현듯 마이너리티 리포트에서 탐크루즈가 몇번의 손짓으로 영상정보를 조합해내던 모습이 떠오른다. 그게 현실이 된다면 탐크루즈가 손가락을 까딱할때마다 어딘가에서 수백대의 서버들이 그가 원하는 영상을 처리해야 한다.
  • 디바이스의 이동성: 한가지 확실해지는 트렌드는 네트워크 말단 디바이스들이 끊임없이 이동한다는 점이다. 사람과 함께 걷는 스마트폰뿐 아니라 앞으로 자동차에 장착될 디바이스들은 빠른 속도로 이동하며 주변의 정보를 모으고 네트워크와 소통할 것이다. 헌데 기존 C/S 모델에서의 서버는 IP 주소와 물리적 위치가 고정되어있기 때문에 재빨리 이동하는 디바이스들에 적절한 서비스를 제공할 수 없다. LA 공항에서 보던 스트리밍 영화를 인천 공항에 내려 연속해서 플레이 할 수 있을까? 이것은 단순히 한 사람 이동경로의 문제만은 아니다. 종종 유명한 서비스들은 한 국가에서 다른 국가로 흥행이 전파되는것을 본다. 한국에서 흥행한 게임을 미국 유저에게는 어떻게 서비스 할까?

기존의 C/S모델을 뛰어넘어 위 특성들을 해결하는 시스템은 사실 지금도 존재한다. 구글의 경우 100만대 이상의 서버로 매일 매일 데이터를 처리하고 있고,  그 결과로 오늘 올리는 이 글은 몇 분안에 인덱스에 업데이트돼 검색 결과에 나타날거다. 하지만 구글과 같은 소수의 회사들이 독점하는 시스템을 클라우드라 부를수는 없다. 일반에게 오픈되어 새로운 아이디어를 가진 사람이 단 며칠만에 수천대의 컴퓨터를 프로그래밍 하게끔 하는 기술, 그게 정말 클라우드다.

4. 새 부대: 클라우드

클라우드는 그래서 서비스의 스케일, 정보의 실시간성, 디바이스의 이동성을 모두 해결하는 거대한 기술의 모음이다. 어떤 회사든 위 조건을 충족시키는 서비스를 제공한다면 클라우드라고 부를만 하다. 그래서 “클라우드는 아마존이다, 구글이 진짜다. 아니다 끝판왕은 MS다” 이런 논쟁은 그다지 의미가 없다. 각각의 특성을 해결하는 몇가지 클라우드의 예를 들어보면 —

  • 스케일: 아마존의 데이터 서비스 S3는 현재 5,000억개의 데이터 오브젝트를 저장하고 있다 (세계 인구가 100개씩 오브젝트를 갖고있는 셈이다!). 최근 한 회사가 아마존 EC2를 사용해 3만개의 코어로 구성된 초대형 클러스터를 만들었다 [7]. 슈퍼컴퓨터 랭킹으로 30위쯤에 위치할만한 성능인데, 아마존이 직접 만든게 아닌 제 3의 회사가 아마존의 컴퓨팅 자원을 사서 구성했단다! 2009년 팜빌 (Farmville)이라는 초대형 히트게임을 출시한 징가는 게임 출시후 몰려든 하루 3천만명의 유저를 아마존 클라우드로 서비스 할 수 있었다. 영화 스트리밍 1위 회사 넷플릭스는 전체 시스템을 아마존에서 돌리고 있다.
  • 정보의 실시간 처리: 하둡(Hadoop)은 원래 구글이 내부적으로 사용하던 MapReduce라는 분산프로그래밍 시스템을 오픈소스로 만든 것인데, 대규모 정보를 유용한 지식으로 재가공해야 하는 사람들에게 가장 각광받고 있는 시스템이다. 이제 사람들은 하둡 프로그램을 아마존, 구글, MS 클라우드의 수백, 수천대의 서버에서 돌리고, 빠른 시간안에 유용한 지식을 산출해서 각자의 분야에 활용한다.
  • 디바이스의 이동성: 아마존은 미국의 동부와 서부, 유럽의 아일랜드, 아시아에서는 싱가폴, 일본에 데이터센터를 운영하고 있고, 사용자는 어느 지역의 데이터센터에서든 같은 서비스를 운영할 수 있다. 즉, 영화를 보다가 인천 공항에 내렸을 경우 가까운 일본의 서버에서 영화의 남은 부분을 스트리밍 하는것이 가능하다.

클라우드는 이러한 속성들을 다양한 레이어의 서비스로 제공한다. 아마존은 사용자가 마음껏 환경을 꾸미고 무제한의 서비스를 만들수 있는 가상머신과 스토리지 서비스를 제공하고 (IaaS), MS와 구글은 웹, DB, 이메일등 잘 알려진 서비스 패턴을 손쉽게 구성하는 플랫폼을 제공한다 (PaaS). 누군가 “새로운 술” 아이디어가 있다고 한다면 나는 주저없이 “새 부대” 클라우드로 가라고 권할것이다. 우선 아마존, 구글, MS의 클라우드에서 한두대의 서버로 서비스를 운영해보라. 하루 운영하는데 커피 한잔값밖에 들지 않는다. 혹 서비스에 사람이 몰려든다면 하루 몇만원 더 지출하면 된다. 그렇게 서비스를 늘려가다보면, 언젠가 우리도 몇조원 비지니스를 클라우드에서 운영하는 날이 올지도 모른다.

5. 결론
글을 다 마쳐가는 지금에 와서도 내 클라우드 소개가 완전히 맘에 들진 않는다. 내가 만져본 코끼리 몸통을 설명한것은 같은데, 어째 몸통 반 정도나 제대로 묘사했는가 싶다. 아마도 클라우드가 그만큼 거대한 흐름이고 또한 여전히 진화하며 모양을 형성해가는 기술이기 때문일 것이다. “새로운 술 (폭발적인 디바이스와 데이터의 증가, 그리고 이것들에 끊임없이 서비스를 제공하는 백엔드 소프트웨어)을 담는 새 부대가 클라우드다!” 이 정도로만 정리하는 것으로 오늘은 만족해야겠다. 나는 새 부대를 짜는 일 (클라우드 시스템을 만드는)을 하는데, 지금까지완 전혀 다른 방식의 시스템을 만드는 것은 정말 신나는 일이다. 그런데 새 술을 빚는 사람들 (게임, 컨텐츠, 소셜네트웍…)은 얼마나 더 신선한 아이디어를 가지고 신나게 클라우드를 프로그래밍 하게 될까 상상해 본다.

[1] http://www.youtube.com/watch?v=WyBO32jz7Vg&feature=player_embedded#

[2] http://nighthacks.com/roller/jag/entry/i_ve_moved_again
[3] http://online.wsj.com/article/SB10001424053111903480904576512250915629460.html
[4] http://www.readwriteweb.com/enterprise/2010/06/ibm-a-world-with-1-trillion-co.php
[5] http://aws.amazon.com/solutions/case-studies
[6] http://www.ft.com/cms/s/2/48f1caac-81bd-11e0-8a54-00144feabdc0.html#axzz1Yd2YknDN
[7] http://blog.cyclecomputing.com/2011/09/new-cyclecloud-cluster-is-a-triple-threat-30000-cores-massive-spot-instances-grill-chef-monitoring-g.html
[8] Man-Computer Symbiosis, J.C.R. Licklider. http://groups.csail.mit.edu/medg/people/psz/Licklider.html