31 May
2014
Posted in: 양피지
By    14 Comments

벌써 10년…


벌써 10년…
by 신영진(YoungJin Shin), codewiz at gmail.com, @codemaru, http://www.jiniya.net

#0

a0006606_23283530

디지털은 참 편리하다. 2004-08-28 21:06을 기억하게 해주었다.

2004년 8월 28일. 병역특례의 끝이 한달여 남짓 남은 그때. 학교 선배가 서울을 왔다며 연락이 왔다. 취직이 잘 안 돼 고민하던 형이었는데 떡하니 대기업엘 붙었다는 이야기를 했다. 자축을 하자며 들떠 있던 우리는 만나서 몇 마디 하다가는 그 분을 보러 가자는 이야기를 했다. 계획도 없었고, 약속도 없었다. 그렇게 고속터미널에서는 대전행 버스를 탔다. 목적지는 KAIST. 우리의 정신적 지주였던 선배가 있던 곳이었다.

깜짝 놀래켜 주자며 출동한 우리는 금새 문제에 봉착했다. KAIST를 왔지만 정작 선배가 어느 건물에서 공부하는지도, 어디에 있는지도 몰랐던 것이다. 물어물어 선배의 연구실이 있는 곳을 찾았지만 문은 잠겨 있고 선배는 연락이 닿질 않았다. 서울에서 여기까지 왔는데 정말 아스트랄한 상황. 하지만 궁하면 통한다 했던가 겨우겨우 선배 본가의 전화 번호를 알아 내서는 연락을 했다. 어머니께서 받으셨는데 집에도 연락을 잘 하지는 않는데 아마 출강 갔을 거라는 이야기를 했다. 그리고는 지금쯤 도착할거라는 이야기를 덧붙였다. 여기까지 왔는데 어쩔 수 없는 노릇. 기다려 보기로 했다. 제법 지루할만큼 시간이 지났을 때였다. 마치 TV는 사랑을 싣고에 나오는 것처럼 멀리서 선배가 걸어오는 모습을 보게 되었다. 그렇게 기적처럼 우리는 KAIST에서 만났다.

#1
우리가 찾아간 선배는 학교에서 기인으로 통하는 형이었다. 기계과로 입학해서는 전자과를 거쳐 컴공까지 왔다. 학교 다닐때 전산실에서 우연히 떠오른 아이디어를 ACM에 제출했는데 그해 최우수 논문상을 받았다. 형은 컴공과에 와서도 취미삼아 다른과에서 개설한 양자역학 수업을 들었다. 난 그당시 양자역학이 그렇게 어려운 학문인지도 몰랐다. 가난한 고학생임에도 IEEE를 정기 구독했었다. 도서관에서 무료로 볼 수 있는데도 말이다. IEEE를 아이트리플이라고 읽는다는 것도 형이 가르쳐줬었다 ㅋㅋ~ GRE를 치러 간다는 사람이 팔짱에는 능률보카를 끼고 있었고, 더 황당한 건 그러고도 GRE에서 상당히 높은 점수를 받았다는 사실이다. 시스템 프로그래밍 수업을 같이 들을 때였다. 내가 온갖 문자열 처리 함수로 SIC/XE 어셈블러를 주먹구구식으로 만들고 있을 때 형은 파스 트리라는 신세계를 나에게 보여줬었다. 형이 테이블에 명령어를 추가하자 마법같이 명령어들이 번역됐다.

컴공과 교수님 한분은 형에게 네 정체가 뭐냐는 질문을 했었고, 다른 교수님은 카멜레온 같다는 이야기를 했었다. 가난했지만 형은 자기 밥값을 털어서는 술값으로 용돈을 다 날려 책을 못사는 후배 책값을 대주는 그런 사람이었다. 말수는 적었지만 필요할때면 후배들에게 정말 멋진 이야기들을 한번씩 해주기도 했었다. 구도에서 공부를 할때면 종종 예쁜 여학생들이 같이 공부하자며 형에게 선물이며 추파를 던지곤 했는데 형은 절대로 넘어가는 법이 없었다. 형의 첫사랑은 고등학교 때였는데 그 여학생이 수녀가 됐다는 진짜 드라마 같은 이야기만 반복했다. 공부하는 머신이라고 놀려대면 형은 태연하게 그랬다. 대학교 1학년때 술마시고 모텔에서 수영한 적이 있었다고…

#2
아무 연락도 없이 찾아온 우리가 귀찮을수도 있을텐데 형은 싫은 내색 하나 없이 KAIST 구석구석을 구경시켜 주었다. 구경하면서 드라마 카이스트와는 정말 다르구나 하는 생각만 연신 하고 있었다. 형은 그 당시 KAIST에서 석사 과정으로 안테나 공부를 하고 있었다. 여기 아이들은 과고 출신이라 빠르게 졸업한 애들이 많아서 어리고 똑똑한 친구가 정말 많다는 이야기를 했다. 우리가 우스개소리로 걔들이 똑똑하긴 한데 형이 1등이죠? 했더니, 형은 아주 해맑은 얼굴로 그렇긴 하다고 했다. 진짜 말 그대로 괴짜였고, 기인이었다.

그날 우리는 KAIST를 돌아다니며 정말 많은 이야기를 했었다. 그도 그럴것이 같이 간 형은 대기업에 입사해서는 이제 사회에 첫 진출을 하는터라 풍운의 꿈을 잔뜩 가지고 있었고, 난 지긋지긋한 병특이 끝나고 학교로 복학할 단꿈에 젖어 있었다. 안테나를 공부하던 선배는 얼른 석사를 마치고 미국으로 유학갈 꿈에 부풀어 있었다. 그렇게 20대의 우리는 모든 걸 가진듯 했고, 모든 걸 가질 수 있을 것 같다는 포부에 가득차 있었다. 이런 저런 이야기를 하다가 KAIST 어딘가에서 각자 독사진을 찍어주며 10년 후에는 뭘 하고 있을지 말해보자는 이야기를 했었다. 그리고 10년 후에 여기서 다시 보자며… (손발이 오그라드는 ㅋㅋㅋ)

나름 장난기 충만해서는, 또 나름 정말 진지하게 우리는 이야기를 했다. 취직한 형은 입사한 그 회사의 부사장이 되겠다고 했다. 왜 사장이 아니라 부사장인지는 좀 의문이다. 아마 그 당시에 사장은 너무 멀고 부사장 정도는 될 수 있다고 자신했던 것 같다. 난 제법 구체적이었는데 20명 정도 규모의 회사에 20-30억 매출하는 그런 벤처를 창업해서 CTO를 하겠다는 이야기를 했다. 내 이야기도 좀 웃긴데 창업을 하겠다고는 CEO가 아닌 CTO를 지목했다는 점이다. 우리의 정신적 지주였던 KAIST 선배는 ARM과 같은 회사를 창업하겠다는 이야기를 했다. 형은 ARM이 칩 설계만 하고 제조를 하지 않는 점과 그 일이 굉장한 고부가가치 사업이라는 점에 집중했었다. 형이 계속 해오던 일도 칩설계 쪽이라 뭔가 잘 맞는 것 같기도 했다. 근데 선배의 이야기에서도 의문인게 칩 설계하면 INTEL을 떠올릴법 한데 ARM을 지목했다는 점이다. 물론 지금에 와서는 ARM이 INTEL을 견제할정도로 컸지만 그 당시는 잘나가는 변방의 벤처 정도였다.

그렇다. 여기엔 한가지 공통점이 있었다. 우리는 모두 약간씩 마이너한 근성을 가지고 있었다는 점이다. 그래서 죽이 잘 맞았는지도 모를일이다. 어쨌든 2004년 8월 28일은 다소 그런 말도 안되는 꿈들을 이야기하고, 서로 그 정도는 할 수 있을거라며 다독거려주는 그런 따뜻한 여름 날이었다.

#3
얼마 전 그때 같이 KAIST로 무작정 떠났던 학교 선배를 만났다. 둘이 마주 앉아서는 양꼬치를 뜯으며 이런 저런 이야기를 한다. 형은 지금까지 그때 입사한 회사를 다니고 있는데 지금은 다소 대기업에 회의적인 입장이 되었다. 거기다 최근에는 고강도의 구조조정이 시작되서 약간 사내 분위기가 살벌하다는 이야기를 했다. 요즘엔 첼로 연주에 한창 빠져 있는데 조금 있으면 연주회를 한다고 했다. 초대할테니 꼭 오라는 말을 덧붙였다. 그런 온갖 이야기 끝에 KAIST 선배 이야기가 또 올라왔다. 마주 앉은 형이 긁는다. 미쿡으로 가자고, 그때처럼 가서 놀래켜 주자고 말이다. 선배의 조언을 들으면 앞으로 10년은 또 문제 없이 헤쳐나갈 수 있을 것 같다고 했다. 그러고는 내가 가겠다면 자기는 갈 수 있다는 최후의 허세 카드를 작렬한다. 나도 질 수 없기에 알겠다고, 내가 연락처를 수소문 해보겠다며, 연락되면 바로 떠나자고 맞불을 놓았다.

헤어지고 집에 돌아와서는 구글에다 KAIST 선배의 영문 이름을 입력한다. MIT 연구소 페이지로 연결됐다. 거기에 형은 내가 아는 메일 주소로 기재돼 있었다. 2-3년 전 연락이 끊긴 그 메일 주소. 다시 메일을 보내볼까? 아니면 연구소에 형의 근황을 물어볼까? 하는 생각을 하다 그냥 관두기로 했다. 메일을 제대로 쓸 수 있는 정신이 아니었다.

#4

진짜 말하는대로, 생각하는대로 되는게 인생이고 꿈이란 사실

10년 사이 내가 배운 한 가지

양꼬치 사건은 한때 호기로 남아 기억의 저편으로 넘어가고 있을 무렵이었다. 어젠가 그제 코드 여기저기를 수정하다 정말 오래된 코드가 Visual Studio에 로딩됐다. 바이너리를 변환하는 유틸리티 코드였다. 막내 녀석이 최근 해커들이 바이너리 파일에 있는 익스포트 이름과 디버그 정보에 있는 pdb 경로로 꿀을 빨고 있다는 제보를 했던 터라 그 부분을 지워버리는 코드를 추가하기 위해서 프로젝트를 열었던 것이다. 코드 수정 작업은 간단했다. 수정하고 테스트 하고 커밋을 하려는데 그 파일에 주석 처리된 함수가 마음에 걸렸다. 지워버릴까 라는 생각과 놔두자는 생각 사이의 갈등이었다. 아주 오래된 코드였지만 그때 기억이 선명하게 났기 때문이었다. 그날이 언제였는지 궁금해서 블로그를 뒤졌더니 날짜가 나왔다. 2008년 11월 19일. 그 주석 처리된 코드는 패딩을 제거하는 코드였다. 압축 효율이 떨어져서는 만들어놓고 주석 처리를 해둔 터였다. 시간이 참 많이 흘렀다는 감상에 잠시 젖었다 결국은 그 코드를 제거하지 않고 커밋했다.

몇년이 지났는지를 머리속으로 곰곰 헤아리다 다시 그 KAIST의 밤이 떠올랐다. 10년이 지났는지 안 지났는지가 궁금해진 것이다. 2004년 인거 같기도 하고 2003년인거 같기도 하고 그랬다. 그러다 그날 찍은 사진의 EXIF 정보에서 정확한 날짜와 시간을 알아냈다. 2004-08-28 21:06. 그랬다. 올해가 꼭 10년이 되는 해였다.

야심한 밤에 10년 전 어린 내가 꾸었던 꿈을 마주한다. 아마 그때는 벤처, CTO 이런 단어에 허세가 가득차 있었던 건 아닐까라는 생각에 웃음이 난다. 그리곤 이내 현재 상황과 그 꿈을 오버랩 시켜본다. 2006년 9월에 창업한 회사의 CTO가 되었고, 회사 규모도 그때 내가 예측했던 범주에 다가가고 있다. 이제는 사실 그 꿈이 불가능보다는 가능이 훨씬 더 쉬운 상황이 돼 버렸구나 하는 느낌이 들었다. 신기한 사실은 그 꿈을 그때 이후로 상기한 적이 거의 없었는데 현재 상황이 그때 내가 말한 상황과 얼추 비슷한 시츄에이션이 됐다는 점이다. 시크릿의 끌어당김의 법칙 같은 말들을 개소리로 치부하면서 사는 입장인데 그 순간 만큼은 진짜 그런게 있는것도 아닐까라는 느낌이 잠시 들었다.

형들도 그날 이야기들을 기억하고 있을지를 추측해본다. 그리곤 이내 우리가 진짜 다시 10년 만에 재회한다면 이번엔 무슨 꿈을 말할지를 곰곰 떠올려본다. 내가 지난 10년간 배운게 있다면 진짜 생각하는대로 말하는대로 이루어진다는 것이다. 그래서 감당하기 힘들만큼 아주 큰 꿈을 말할지 아니면 그저 소박한 꿈을 말하는 것이 좋을지가 고민됐다. 어떤 걸 말하는게 좋을지 정하진 못했지만 진짜 신중하게 말해야 겠다는 다짐은 분명히 했다.

#5
꿈이 없는 시대라고 한다. 이제 더 이상 예전 세대의 영광은 없을 거라는 말들을 한다. 하지만 피끓는 청춘들은 지금 이 순간에도 어디에선가 우리가 10년전 그랬던 것처럼 미래를 꿈꾸며 이런 저런 이야기를 하고 있을 것 같다. 그런 청춘들에게 꼭 하나 보여주고 싶은게 있다. 회사를 같이 창업해서 지금 대표를 하고 있는 형이 몇 해전 우리가 아주 힘든 시기를 지나고 있을 때 메일로 보내준 “‘포기[抛棄]’에 관한 단상[斷想] …” 이라는 웹툰이다. 그 웹툰을 보면서 우린 쪽팔리지 말자는 이야기를 했었다.

모든 꿈이 그렇겠지만 이루어 나가는 과정은 그리 순탄하지도 않고 녹록하지도 않을 수 밖에 없다. 그 험난한 과정을 버티기 위해서 가장 먼저 구비해야 하는 아이템이 있다면 아마 ‘인내’가 아닐까라는 생각을 해본다.

#6

중요한 신제품을 만들어내는 것은 대개 시간이 걸리는 일이다. 프렌드피드는 6년 전의 지메일이 그랬던 것처럼 지속적인 변화와 개선을 필요로 한다. 프렌드피드는 많은 가능성을 보여주고 있지만 아직은 “성장하고 있는 중”이다.

내가 기대하는 바는 커다란 성공이라는 것이 여러 해에 걸친 노력을 요구하는 일이며, 이러한 원칙에 반하는 예는 (아직 제대로 된 수입을 올리지 못하고 있는 유튜브 정도를 제외하면) 거의 없다는 사실이다. 페이스북은 매우 빠르게 성장했지만 사실은 벌써 5년 정도가 지났다. 래리와 세르게이는 구글을 1996년에 시작했는데, 내가 1999년부터 구글에서 근무하기 시작했을 때만 해도 구글을 아는 사람은 별로 없었다.

하룻밤 사이에 성공을 거둔다는 개념은 상당히 왜곡된 생각이며, 심지어 위험하기까지 하다. 뭔가 새로운 것을 시작한다면 멀고 긴 여행을 염두에 둬야 한다. 물론 굼뜨게 행동하는 것을 변명하려는 것은 아니다. 그와 반대로 매우 빠르게 움직여야 한다. 그렇게 하지 않으면 그것은 너무나 먼 장거리 여행이라서 목적지에 도달하지 못할 수도 있다! 근검절약 정신이 중요한 것도 같은 이유에서다. 산의 중턱에 도달했을 때 먹을 것이 다 떨어져서 굶어죽기를 바라는 사람은 아무도 없기 때문이다.

Overnight success takes a long time, Paul Buchheit

light

불이 켜지지 않는다고 조급해 할 필요는 없다.

모든 배선이 끝나면 불은 마법처럼 한 순간에 들어온다.

포기하지 않고 한땀 한땀 열심히 배선을 해야 하는 이유가 거기에 있다.


  • 트랙백 주소: http://www.jiniya.net/wp/archives/13369/trackback

관련 글

  • http://archwin.net/ archmond

    캬 멋집니다.

  • http://blog.naver.com/shadyrec 김태현

    멋있습니다. 보안 프로그래밍으로 들어왔는데, 굉장히 멋진 블로그네요.
    프로그래머를 하고 싶어 게임 프로그래밍을 배웠는데, 게임 쪽은 영 관심이 가지를 않지만
    C++프로그래밍은 마음에 들어 하고 있습니다. 보안 쪽 공부를 하고 싶은데, 어떤 것부터 시작해야할 지 조언을 해주실 수 있으신지요. 참고로 비전공자구요, 나이는 27살 입니다.

  • DF

    좋은 글 잘 읽고갑니다 ^^

  • YoungJin Shin

    감사합니다 ^^;;

  • YoungJin Shin

    archmond님이 더 간지죠 ㅋㅋ~

  • YoungJin Shin

    보안이라고 해서 딱히 뭐부터 시작해야 한다는 건 없는 것 같은데요. 일반적으로 시스템 프로그래밍 지식이 있으면 도움이 됩니다. 윈도우 보안 쪽을 하신다면 Windows via C/C++, Windows Internals, Windows 2000 디바이스 드라이버 정도(?!)만 공부하셔도 어디가서 꿀리시진 않을거라고 생각합니다.

  • zoops

    영진씨 글은 항상 잼있고 유익하지만.. 이번글은 감동해서 눈물이 날 정도로… 좋네요.
    반성도 되구요… 여러가지 생각하게도 만들구요…

  • YoungJin Shin

    형님 땡큐베리마차염…

    저도 형 항상 응원하는거 아시죵? 화이팅입니닷 ㅎㅎ^^;;

  • DF

    저도 현재 보안 공부중입니다
    요즘은 메모리보안에 관심이 많이 있는데 혹시 더미코드 관련
    문서나 자료가 찾기 어려운데 관련 자료는 어디서 많이 찾을 수 있을까요?

  • YoungJin Shin

    저도 더미 코드 관련해서 문서나 자료를 본 적은 없어서 답변 드리기가 그렇네요. 그냥 생각나는대로 막 만들면 그게 더미 코드지 않을까요?

    일반적으로 어셈으로 동적 생성하는 제너레이터를 만드신다면 명령어를 사이드 이펙트가 있는것(레지스터가 변경되는 종류)와 없는 것으로 구분하고 사이드 이펙트가 있는 것은 시작 종료 부분에 레지스터 값을 저장/복원 시켜주기만 하면 됩니다.

    자잘한 꼼수들이 많을 수 있을 것 같긴 한데 저도 정리한 자료를 본 적은 없는 것 같습니다. 딱히 찾으려고 해본 적도 없긴 하구요.

  • DF

    요즘 보안 모듈을 만들고 있는데 아무리 설계를 잘해봐도
    실력이 실력인지라 코드도 다 보이고 취약점이 많은 것 같아
    관련자료를 찾아보고 있는데 너무 문서가 없네요 ..
    결국 난독화를 위해 코드도 인라인어셈으로 코딩하니까
    실용성이 떨어지는부분도 있고 ..

  • http://blog.naver.com/shadyrec 김태현

    답변 감사합니다. 그럼 Windows via C/C++, Windows Internals, Windows2000 디바이스 드라이버 관련한 서적 추천해주실 수 있으신가요? 사실상 보안 쪽은 문외한이라서ㅠ

  • YoungJin Shin

    셋 다 책 이름입니다… ㅠㅜ~

  • Pingback: 우공이산의 지혜 | 괴짜 프로그래머의 일상사~