기억 #1

인터넷이 한국에 상륙하기 전, 지금은 고대의 신화처럼 느껴지는 PC 통신이 있었습니다. 밤마다 PC 통신 하이텔에 접속해 사람들과 어울리다 보면 시간 가는 줄 몰랐던 그 시절, 저는 그저 조그만 컴퓨터 앞에 앉아있었지만 그 속에는 또 다른 넓은 세상이 있었습니다. 사람들은 그 안에서 또 다른 인생을 살고 있는 것 처럼 보였습니다. 잠이 오지 않을 때는 함께 밤을 지새 줄 누군가를, 비가 올 때는 함께 빗소리를 들어 줄 누군가를, 원할 때 언제든 만날 수 있는 그 안의 세상은 너무나 신기하고 아름다웠습니다.

저도 그런 세상을 만들어보고 싶었습니다. 거대한 UNIX 시스템에서 돌아가던 하이텔 서버와는 비교도 할 수 없었지만, 당시 사설BBS용 호스트 프로그램을 설치하면 전화선을 이용해서 비슷한 서비스를 운영 할 수 있었습니다. 전화선을 이용하기 때문에 집에서 서비스를 구동하면 가족 그 누구도 전화를 쓸 수 없다는 엄청난 제약이 있었고, 전화비가 20만원이 넘게 나오는 충격적인 사건도 있었지만, 마치 하이텔처럼 내가 만든 세상에 사람들을 초대 할 수 있다는 사실은 무척이나 설레이는 일이었습니다. 사용자가 접속하는 소리가 들리면 자려고 누웠다가도 벌떡 일어나 이 사람이 어떤 메뉴를 선택하고, 어떤 글을 남기는지 한없이 지켜보고는 했습니다.

당시 하이텔에는 풀뿌리 동호회라는 사설BBS 운영자들의 모임이 있었습니다. 동호회의 정기 모임이 있던 날, 중학교 2학년짜리 꼬마가 혼자 광주에서 서울까지 고속버스를 타고 올라와 어른들의 술자리에 뻘쭘하게 앉아 있었던 기억이 납니다. 그 날 밤 동호회 운영자 형은 친절하게도 저를 자신의 자취방에서 하룻밤 재워주었습니다. 깜깜한 밤하늘을 향해 긴 안테나를 세우고 라디오 같은 걸 만지면서 CQ CQ라고 알 수 없는 주문을 외우던 그 형의 모습이 아련합니다. 낯선 서울, 어른들의 어려운 대화, 운영자 형의 무선 통신, 모든게 신기했지만 정말로 저를 놀래킨 것은 따로 있었습니다.

즐겨 사용하던 ‘SUN’이라는 사설BBS 프로그램이 있었습니다. 당시 인기 있었던 ‘호롱불’이나 ‘곰주인’보다 늦게 개발되었지만 당시 혁신적이었던 그래픽 UI가 돋보이던 프로그램이었습니다. 그 날 저녁 모임에서 그 프로그램을 제작한 개발자가 중학교 2학년 학생이라는 사실을 들었습니다. 충격이었습니다. 내가 만든 그 세상은 사실 그가 만든 세상의 일부였던 것입니다. 부러움과 질투심이 함께 느껴졌습니다.

모임에서 돌아오자마자 서점에서 ‘Pascal’이라는 프로그래밍 책을 샀습니다.

기억 #2

‘Quake’라는 게임을 무척 좋아했습니다. 그래서 그 개발사인 ‘id softwre’에 들어가겠다는 야심찬 포부를 가지고 3D 게임 프로그래밍을 열심히 공부했습니다. 마침내 3D 게임 클라이언트 부문에 지원하여 입사한 회사에서의 출근 첫 날, 게임은 클로즈 베타를 시작하는 상황에서 갑자기 퇴사한 서버 개발자의 빈자리를 메우느라 하루만에 서버 개발자로 직무를 변경 하였습니다. 그리고 지금 이 순간까지 3D 클라이언트 개발자로의 커리어는 단 하루도 쌓지 못했습니다.

매일 새벽 떡진 머리를 한 채 사무실 청소 아주머니와 인사를 해야 했지만, 입사 첫 날부터 시작된 스파르타식 훈련은 저를 강철처럼 단단하게 만들어 주었습니다. 게임 서비스의 특성 상, 지연 없는 빠른 네트워크 환경을 만들고 복잡한 게임 규칙을 구현해야 했습니다. 멀티 쓰레드로 동작하는 탓에 죽음의 잠금, ‘데드락’을 열심히 피해야 했습니다. FPS 게임은 총을 맞추면 바로 죽어야 합니다. 조금이라도 빨리 죽이기 위해 TCP를 포기하고 UDP에 신뢰성을 추가한 ‘Reliable UDP’를 구현하기도 했습니다. 인터넷 공유기를 설치한 말단 호스트들의 통신이 가능하도록 ‘홀펀칭’ 기술을 적용해야 했습니다. 그럼에도 불구하고 서버는 비명도 없이 갑작스레 죽어버립니다.

오픈 베타 2일차, 사장님이 제 뒤에서 실시간 사용자 통계를 보며 기뻐합니다. “이야, 쭉쭉 늘어나네!”라는 말씀이 끝나자 마자 갑자기 서버가 작동을 정지합니다. 에어컨은 시원하게 바람을 쏟아내는데, 왜 그리 땀은 흐르던지요. 그 날 밤, 사장님은 며칠동안 집에 못간 저를 데리고 비싼 호텔 싸우나에 데리고 가서 찌든 피로를 풀게 해주었습니다. 그리고 며칠을 더 버텼는지 기억이 잘 나지 않습니다.

기억 #3

사진을 좋아합니다. 지금은 거대해진 slrclub 커뮤니티의 2048번째 초기 멤버라는 게 소소한 자랑거리이고, 항공기 사진 전문 서비스인 airliners.net에 출품한 사진이 ‘그 날의 사진’에 오른 것도 살면서 기뻤던 일 중 하나입니다.

혹독한 훈련의 결과로 스파르타의 전사로 거듭났지만, 비주얼은 제대로 된 참개발자의 모습이었습니다. 10킬로 불어난 몸매, 때가 타지 않는 짙은 체크무늬 남방, 다크 서클이 내려 앉은 눈. 하지만, 새로 옮긴 회사에서 스스로에 대한 새로운 발견을 하게 되었습니다. 스파르타 전사의 심장 한 귀퉁이에서 사진을 사랑하던 자의 미학에 대한 동경과 이를 꿈꾸어 볼 가능성을 발견한 것입니다.

작은 스타트업 회사가 멋진 개발자들을 데리고 오기는 무척 어렵습니다. 그만한 대가를 지급하기도 어렵고, 안정을 보장하기도 힙들기 때문입니다. ‘홍보 영상’을 만들어 볼까? 뜬금없이 떠오른 아이디어를 현실로 만들기는 그다지 어렵지 않았습니다. 내가 무슨 짓을 하고 있는건지 당황해 할 겨를도 없이 푹 빠져 있었기 때문입니다. 촬영 소품 업체에서 저렴한 조명 하나를 대여하고, 집에 잠들어 있던 SLR 카메라와 삼각대를 사용하면 촬영에는 문제가 없을 것 같았습니다. 아마 당시 영상에 출연했던 동료들 역시 인지 능력이 순간적으로 급격히 저하되었던 것 같습니다. 떡진 머리 서버 개발자가 카메라를 들이대며 연기를 시키니 무섭기도 했을 겁니다.

영상은 생각보다 좋은 호응을 얻었습니다. 이후 회사 문을 두드리는 여러 개발자들이 동영상을 보고 입사 지원을 했다는 얘기를 들었기 때문입니다. 아마도 이때 쯤이었던 것 같습니다. 집 책장에 수두룩하게 꽂혀있던 개발서들은 하나도 남김없이 YES24 중고장터로 실어 보냈습니다.

기억 #4

옛 동료의 연락을 받았습니다. 오랜만에 듣는 목소리에 반가워 하던 것도 잠시, 런던의 한 스타트업에서 엔지니어를 구하는데 합류 할 생각이 있느냐는 제안을 받았습니다. 영어 회화가 능숙해야 하거늘 그에 미치지 못하고, 개발 플랫폼인 Python/Django와는 일면식도 없으며, 한국에 남을 식솔들과 떨어져 사는 것은 인생 계획에 없었다는 세가지 불가론을 들며 어려움을 전해야 했지만, 입 밖으로 튀어 나온 대답은 “가겠습니다!” 였습니다.

항상 그랬습니다. Java를 공부해 입사한 첫 회사에서 C++로 코딩을 했고, 3D 게임 개발자로 입사한 회사에서는 서버 개발을 했습니다. C++ 소켓 프로그래밍으로 입사한 회사에서 대부분의 프로젝트를 node.js로 진행했고, 이번에는 태어나서 한번도 만져보지 않은 python으로 개발을 하게 된 것입니다. 그러므로 참으로 행복한 개발자의 인생을 살아왔다는 생각을 하게 됩니다. 아마도 한가지 기술에 집착해서 섣부른 외도를 두려워했다면 새로운 도전은 불가능했을 것입니다.

영국에서의 삶은 생각보다 오래 지속되지 않았습니다. 법인이 미국으로 이전하면서 어쩔 수 없이 한국에서 리모트 근무를 하게 되었고, 이왕 이렇게 되었으니 전부터 살아보고 싶었던 곳으로 여행가듯 떠나보고 싶다는 생각이 들었습니다. 그리고 오래전부터 꿈꾸던 제주도로 가족들과 함께 이주하게 되었습니다. 리모트 개발자로의 새로운 삶이 시작되었습니다.

아내는 뒷 밭을 일구어 농사를 시작했고, 아이들은 분당의 치열한 경쟁에서 탈출해 전교생 50명의 조그만 초등학교로 전학을 왔습니다. 비록 배달의민족 앱을 열면 배달 가능 업소가 하나도 없는 외딴 동네지만, 여름밤이면 잔디밭 평상에 모기장을 치고 누워 은하수를 올려다보고, 대문밖 몇 걸음으로 시원한 바다를 마주 할 수 있습니다. 제주도는 삶의 여유가 절실했던 우리 가족에게 최고의 선택이었습니다. 떡진 머리를 한 채, 할증 붙은 택시로 퇴근하던 과거를 돌아보면 엄청나게 큰 변화입니다.

너무 예쁜 얘기만 늘어놓은 것 같습니다. 그간 리모트 개발자로 정착하는데 여러 시행착오를 겪었고, 여전히 이를 극복하기 위한 노력을 하고 있습니다. 출퇴근을 위해 거리에서 3시간을 소비하지 않아도 되고, 원하지 않는 자리에 불려다니지 않아도 되며, 가족들과 함께 제 시각에 저녁 식사를 할 수 있어서 삶의 질이 높아진 것은 분명합니다. 하지만, 퍼뜩 떠오른 생각을 앉은 자리에서 옆 자리 동료에게 곧바로 건넬 수 없는 한계는 리모트 근무를 힘들게 합니다. 이런 문제는 결국 노력으로 해결 할 수 밖에 없습니다. 이 주제는 길어질 것 같아서 따로 글 하나를 작성했습니다.

마치며

장황한 자기소개를 끝까지 읽어주셔서 감사합니다. 아마도 이 블로그의 주인이 어떤 사람인지 궁금했기 때문에 이 페이지에 들어오셨고, 그 궁금증이 마지막까지 살아남아 이 장황한 글을 끝까지 읽어주신 것 같습니다. 반갑습니다! 저를 원래 알던 분이든, 모르던 분이든 상관 없으니 연락이나 한번 주세요. 사람 만나기 힘든 동네에 살다 보니 그런가, 오늘따라 새벽을 달리던 PC 통신 채팅방이 그리워집니다.