송창규-개발=0이라 쓰고 평생 개발자라고 읽는다, 송창규 1

이 인터뷰는 ‘송창규-개발=0이라 쓰고 평생 개발자라고 읽는다, 송창규 0‘에서 이어집니다.

신림동 캐리: 요즘 개발자가 외국에 많이 나가는 추세다. 송창규님은 외국으로 나갈 생각해본 적 없으신지?
송창규: 왜 없겠나. 근데 한국에서는 일 못 해먹겠다 이런 이유 때문은 아니고, 소프트웨어 엔지니어로서 좀 더 큰물인 미국에서 일해보고 싶은 막연한 로망이 조금 있어서 한때 미국취업을 준비한 적이 있다. 근데 마침 당시 다니던 회사에서 주식을 주는 바람에 진행 중이던 걸 취소하고 남았다.
신림동 캐리: 오, 스톱옥션. 그 이후로 주식은 어떻게 됐나?
송창규: 폭락한 주가 엔화와 함께 쪽박진행형이다.

신림동 캐리: 한스타에 블리자드는 반응이 없었나?
송창규: 있었다.
신림동 캐리: 오, 스카웃인가 아니면 소송 협박인가?
송창규: 일단 당시 스타크래프트 배급사였던 한빛소프트에서 내게 “다른 게임도 한글화해보지 않겠느냐?” 하고 연락해왔다. 배울 게 많겠다 싶어서 알바로 GK3, Worms World Party 3 등의 게임을 한글화했다. 그러던 어느 날….
신림동 캐리: 오, 흥미진진한데?
송창규: 회사 담당자가 나를 회의실로 불렀다.
신림동 캐리: 오, 더 흥미진진한데?
송창규: 한빛소프트가 블리자드와 연락하다 한스타 이야기가 나왔는데, 블리자드 측에서 한스타 개발자 연락처를 줄 수 있냐고 물었다고 한다. 그런데 한빛소프트가 회사 체면도 있고 혹시 널 데려가려는 것일 수 있으니, 우리 회사 소속 프로그래머인 것처럼 말하고 연락처는 알려주지 않을 건데 괜찮겠냐는 거다.
신림동 캐리: 뭐 이래?
송창규: 지금 생각하면 좀 황당한데 적어도 내게 말해주긴 했으니 무척 솔직하긴 했던 것 같다. 그땐 나도 별 생각 없이 순진하던 때라 그러시라 했었다.
신림동 캐리: 좀 아쉽겠다.
송창규: 지금도 가끔 술을 많이 마신 날이면 땅을 치고 후회한다.
신림동 캐리: 내가 요즘 ‘응답하라 1994’를 보고 있는데 순간의 선택이 평생을 좌우하더라.

송창규님이 뒤늦게 정신 차리셨다고 하니 블리자드 본사는 이 인터뷰를 보시면 미워도 다시 한 번 연락해주세요.

신림동 캐리: 한스타 만들었다고 하면 남자들은 다들 ‘오!’ 하면서 보는 눈이 달라질 텐데, 개발자라는 게 여자한테 쓸모있는 경우도 있던가?
송창규: 의외로 있다.
신림동 캐리: 정말 의외다.
송창규: 하이텔 나우누리 시절에 고등학교에서 Multi-user BBS를 운영했었다. 당시 빠져있던 머드게임을 모티브 삼아 대화방에서 ‘/던져’라거나 ‘/공격’ 같은 액션 기능을 만들었는데, 그러다 ‘/영희’ 같은 커맨드로 사람마다 개성 있는 액션도 만들었다. 운영자의 권력을 과시하면서 쉽게 친해질 수 있는 비기였다.
신림동 캐리: 권력의 꿀맛은 달콤하지.
송창규: 또 내가 키보드 단축키만 쓰는 편이라 컴퓨터 하는 사람들 중에서도 조작 화면이 빠르고 현란한 편인데, 여자가 노트북이나 컴퓨터 느리다고 투덜댈 때 원격으로 접속해서 현란하게 최적화해주면 눈빛이 바뀌곤 했다.
신림동 캐리: 나도 요즘 노트북이 느린데 포맷해줄 사람이 있었으면 좋겠다.
송창규: 남자친구분이 개발자 아니신가?
신림동 캐리: 맞는데 내 노트북을 남자친구에게 보여주고 싶진 않다. 거긴 소돔과 고모라여. 아무튼, 또 없나?
송창규: 싸이월드가 한창 유행하던 시기에, 짝사랑하는 아이의 생일이 궁금해서 싸이 프로필 페이지를 보려고 하는데 생일이 비공개였다. 그래서 생일을 보자! 하고 뜯어봤는데 비밀번호가 나와서 당황했던 기억이 있다.
신림동 캐리: 그게 뭐여!
송창규: 믿지 않겠지만, 그 비밀번호로 들어가 보지는 않았다.
신림동 캐리: 그걸 누가 믿나!
송창규: 정말 믿기 힘들겠지만 사실이다.

그 외에 넥슨에서 일하며 게임 캐시 3만 원이 나오는 계정을 마비노기 하는 친구에게 쓰라고 주고, 쿠폰이 나올 때마다 주변에 뿌렸지만 다들 남자였다고 하십니다. 아마도 여자에게 작업걸 때 유용하게 썼겠죠.

신림동 캐리: 넥슨에서만 15년 계셨다고 들었다. 아까 외국 나가려는 계획도 있으셨다는데 마음에 드는 실리콘밸리 회사는?
송창규: 미국 회사라고 한다면 Google, Amazon, Apple, Blizzard, Netflix다. 양보하지 않는 퀄리티, 뛰어난 인재 확보력, 자신들만의 가치와 철학을 갈고 닦아 빛나게 만들었다는 공통점이 있다.

신림동 캐리: 그럼 한국에서 호감 가는 IT 회사는?
송창규: 돈벌이가 당연히 베이스가 되어야겠지만, 그보다 우선하는 가치로 prioritized 되고 align 된 회사들이 좋다. 예를 들면 우아한형제들, 프로그램스, 카카오 같은?

신림동 캐리: 요즘 후배 개발자들의 역량에 대해 어떻게 느끼시나?
송창규: 게임업계의 개발자 후배들을 보면 개발자로서의 역량에서는 조금 아쉬움을 느낀다. 이런 아쉬움은 세대 간 다르게 겪은 환경 차이 때문이라고 생각한다. 구글 없이 개발하던 우리 때와는 환경 자체가 많이 다르기도 하고. 주어지는 것 이상을 주도적으로 만들어가며 하지 못하는 부분에서 아쉬움과 차이를 가장 많이 느끼는데, 이건 스스로 무언가 할 여지를 없애버리고 쥐여주기만 하는 한국의 교육시스템 영향이 크지 않을까.

신림동 캐리: 나 스스로 개발자로서 점수를 매기면 몇 점인가?
송창규: 10년쯤 전에 이 질문을 들었다면 90점이라고 대답했을 거다. 근데 어느 규모 이상의 프로젝트를 맡고 나서는 절대적인 코딩량이 많이 줄어 개발자로서의 자부심과 만족도가 떨어졌다. 지금은 50점?

신림동 캐리: 그렇다면 좋은 개발자의 조건은 뭘까?
송창규: 글쎄다. 요즘은 개발자라도 Technical Director/Architect 같은 역할에서부터 하드코어 엔지니어링까지 그 역할과 영역이 아주 넓어졌다. 그래서 좋은 개발자가 되기 위한 조건은 포지션에 따라 상당히 달라진다고 본다. 그래도 공통적인 조건을 든다면, 늘 프로그래밍에 대해 고민하고 생각하며 본인이 알고 있는 것과 모르는 것을 잘 파악하고 있는 개발자 아닐까? 그리고 본인이 맡고 있는 영역을 중심으로 다양한 시야를 가질 수 있는 개발자가 좋은 개발자라고 생각한다.
신림동 캐리: 그럼 개발자한테 좋은 회사는 어떤 회사인가?
송창규: 자극이 되고 발전적인 환경을 가진 회사. 집중할 수 있게 해주는 회사. 장기적으로 보면 밸런스를 잘 갖추는 게 중요하다. 일단 Work-Life 밸런스가 잘 맞아야 하며, 그리고 Production-R&D 밸런스도 잘 맞아야 한다고 생각한다. 장기적인 안목에서 회사와 조직은 이런 균형을 이루도록 늘 고민하고 노력을 기울여야한다고 생각하는데, 한국은 이런 밸런스에 대한 안목과 고민이 적은 편인 것 같아서 아쉽다.
신림동 캐리: 개발자한테 제발 이런 거 시키지 마라 하는 건?
송창규: 가족 같은 분위기!
신림동 캐리: 아, 그거 진짜 싫지. 난 회식 때 단합 어쩌고 하면서 같은 잔으로 30명 돌리는 회사도 다녔다니까.
송창규: 강요된 팀워크는 좋을 게 없다고 본다. 커뮤니케이션 못하는 개발자에게 커뮤니케이션을 가르치되 못하는 상태에서 커뮤니케이션 시키지 않았으면 좋겠다. 그리고 납득하지 않는데 해야 하는 거 시키지 말았으면 하고 개인적으로 바란다.

신림동 캐리: 개발자에게 선천적 재능이 얼마나 중요하다고 생각하나?
송창규: 이 질문은 마치 인격 형성이 선천적이냐 후천적이냐 하는 것과 비슷한데? 기본적으로 개발자의 그 얼개는 음악이나 스포츠에서의 재능과 크게 다르지 않다고 생각한다. 개발자에 굳이 맞춰서 말하자면 음악과 스포츠보다는 시작하는 나이가 좀 늦어도 되지만 청소년기까지는 개발자로서의 논리적 사고 틀이 갖춰져야 하는 것 같다. 근데 스포츠는 나이가 들수록 신체 조건이 점차 쇠퇴하지만, 개발자는 그에 비해 나이 들어도 크게 문제가 되지 않는 듯?

신림동 캐리: 개발 잘하기 위해서 개인적으로 노력하는 방법은?
송창규: 개발을 잘하려면 늘 배우고 코딩해야 한다. 늘 생각하고 코딩에 ‘절대시간’을 많이 투자하는 게 가장 중요하다.
신림동 캐리: 절대시간이 뭔가?
송창규: 음악이나 스포츠나 언어나 어느 분야를 불문하고 10,000시간을 투자해야 한다는 법칙은 기본이다.
신림동 캐리: 10,000시간을 그냥 존나 하면 존잘 개발자 되나? 카우방에서 소를 패는 것처럼?
송창규: 말 그대로 개발에 절대적인 시간을 많이 때려 박아야 한다는 거다. 분야를 불문하고 어느 분야에서든 성공한 전문가들을 살펴보니 연습량이 10,000시간 이상이 되더라, 진정한 전문가가 되려면 졸라 연습하라는 얘기다. 생각 없이 무턱대고 10,000시간 해서 되는 거면 회사에서 몇 년 일한 사람들이 다들 진정한 전문가 됐겠지. 10,000시간 연습하면 잘한다는 게 아니고 진정한 전문가들은 적어도 10,000시간의 연습 시간이 뒷받침되더라라는 얘기다. 일단 많이 해야 하고, 어떻게 하느냐가 중요하단거지.
신림동 캐리: 그 ‘어떻게’가 뭔데!
송창규: 전문적이지 않은 단계에서 배울 때는 무언가 똑같이 따라 해보는 게 큰 도움이 된다. 코드를 무작정 따라 적지 말고 적당한 프로그램을 코드 없이 똑같이 만들어보되, 이때 ‘어떤 걸 가져다 쓰지?’가 아니라 ‘이 부분은 어떻게 만들지?’라는 포인트가 하나쯤 있는 과제에 도전하는 게 좋다. 그리고 만든 걸 버리고 바닥부터 처음부터 만들어보는 게 개발자로서는 큰 경험이 된다.
신림동 캐리: 이미 만든 걸 다 버린다고?
송창규: 그렇다. 싹 버리고 바닥부터 다시 만드는 거다. 이게 프로그래머의 경험 중에서 정말 중요하고 적극적으로 살려야 할 경험이라고 생각하는데, 그동안 만든 게 아까워서 혹은 귀찮거나 적절한 시점을 잡지 못해서 바닥부터 다시 만드는 경험을 못한 프로그래머들을 자주 본다.
신림동 캐리: 나 같아도 여태 공들여 만든 걸 다 버리고 싹 새로 만들라고 하면 멘붕이 올 것 같다.
송창규: 하지만 적절한 시기가 오면 다 비우고 바닥부터 다시 만들 수 있어야 한다. 그래야 프로그래머로서의 통찰력을 얻을 수 있고, 현재의 뼈대나 설계에 천착하지 않고 어느 시점에 설계 변경이 필요한지, 어떤 규모로 변경할 수 있을지의 감각이 생긴다. 실제로 내가 만드는 제품과 모듈의 퀄리티도 크게 올라간다.
신림동 캐리: 초심자를 위한 얘기 같진 않군.
송창규: 그렇다. 저건 어느 정도 프로그래밍을 하는 사람에게 추천하고 싶은 방법이다. 초심자들은 기본을 잘 쌓으라고 얘기하고 싶은데, 요새처럼 빠르게 트렌드가 바뀌고 현란한 기술과 정보가 범람할수록 프로그래밍의 기본을 쌓기가 어렵다고 생각한다.
신림동 캐리: 그럼 어쩌란 말인가?
송창규: 프로그래밍의 기본을 쌓기 위해선 알고리즘 공부와 문제풀이를 해보기를 권한다. 책으로는 구종만의 <알고리즘 문제 해결 전략>이란 책을 추천하고, 사이트로는 알고스팟을 추천한다.
신림동 캐리: 저자 구종만님과 절친한 사이라 추천하시는 건 아닌지?
송창규: 친분을 빼고 보더라도 훌륭한 책이다. 종만아, 네 책 광고 열심히 하고 있어.
신림동 캐리: 여담이지만 구종만님과 꼭 인터뷰하고 싶습니다. 이번에 한국 잠깐 오시는 것도 알고 있어요.

매의 눈으로 인터뷰 대상자를 노리고 있는 신림동 캐리입니다.

송창규: 아무튼 개발을 잘하기 위해선 알고리즘을 중심으로 그 외의 CS 전공 내용도 충실히 익히길 권한다. www.coursera.org에서도 많은 강의를 무료로 들을 수 있고, ‘OpenCourseWare’을 검색하면 우리나라를 비롯한 여러 대학의 강의를 무료로 들을 수도 있다. 개인적으로는 기본적인 전공 공부에는 영문 Wikipedia가 가장 좋은 가이드라고 생각한다. en.wikipedia.org/wiki/Outline_of_computer_science를 지도 삼아 공부하고 싶은 분야의 글을 다양하게 읽어보길 권한다. 개발에 관한 영어 지식을 접할 수 있으면 지식의 양과 퀄리티 모두 퀀텀 점프할 수 있다. 이 때문에라도 개발자는 영어 공부를 꾸준히 해야 한다.

신림동 캐리: 개발하면서 이런 건 피해야 한다 싶은 건?
송창규: 대충 얼버무리지 마라. 명확하게 아는 것과 대충 아는 것, 모르는 것을 치밀하게 구분해서 내가 이해하는 영역의 경계를 인식하고 넓혀나가는 게 중요하다. 방향을 잘 잡는 것도 중요하다. 이건 개인차가 크고 스스로 잘하기 힘들다 보니 괜찮은 멘토를 만나는 방법을 추천한다.
신림동 캐리: 개발자 멘토가 필요하다고?
송창규: 스포츠맨에게 코치가 필요한 것과 마찬가지라 본다.
신림동 캐리: 근데 알다시피 개발자 중에서는 사회성과 커뮤니케이션 능력이 평균 이하인 자가 많은데 멘토는 어디서 만나야 하지? 그리고 만난대도 어떻게 꼬셔야 하지?
송창규: 어차피 끼리끼리 놀기 때문에 만나는 건 의외로 어렵지 않다. 그리고 둘러보면 어차피 자기보다 잘하는 사람 숱할 텐데 그 중의 한 명을 멘토로 삼으면 된다.
신림동 캐리: 그러니까 만났다고 쳐도 어떻게 멘토로 삼나? 밥을 사주나? 치킨을 사주나? 애원하나? 비나?
송창규: 그냥 존잘님에게 가서 ‘제가 이걸 잘하고 싶은데 어떻게 하면 되나요?’라고 물어보면 대부분의 공돌이는 친절하게 가르쳐준다.
신림동 캐리: 그런 특성 때문에 많은 공돌이가 여자의 숙제 셔틀이 되는구나.


신림동 캐리: 몇 살까지 개발하실 건지?
송창규: 개발은 평생 하지 싶다.
신림동 캐리: 개발에 대한 무한한 애정이 솟아나는 대답이다. 그럼 개발자로서 꿈꾸는 노후는?
송창규: 돈 많은 백수?
신림동 캐리: 백수는 누구나 될 수 있지만 돈 많은 백수는 삼 대가 덕을 쌓아야 한다. 어떻게 돈 많은 백수가 될 건데?
송창규: 살다 보면 될 거라고 근거 없는 믿음을 갖고 있다. 아무튼 경제적 구속에 얽매이지 않고 늙어서도 늘 새로운 걸 찾아 즐기며 개발하는 가운데, 여유 있게 인생과 음악을 즐기며 살 수 있으면 좋겠다. 롤모델이라면 에 나오는 파인만 같은 느낌?
신림동 캐리: 부디 돈 많은 백수 할아버지 되시길 진심으로 바란다.

컴퓨터를 다룰 때는 거의 마우스를 쓰지 않고 키보드로만 조작하는 편인데 정작 키보드 디바이스에는 별로 신경 쓰지 않는다. 106키 삼성 벌크 키보드가 가장 최적화 모드고 집에서는 선물 받은 적축 기계식을 사용한다.

컴퓨터는 잠잘 때도 켜놓는 편이고 간단한 홈레코딩에도 욕심이 있어 저소음으로 맞췄다. 굳이 고사양은 필요 없어서 5년 전에 맞춘 컴퓨터를 거의 그대로 사용한다.

개인데이터는 NAS에 보관한다. 여느 공돌이처럼 처음엔 RAID5 썼지만 말 안 듣는 블랙박스 NAS에서 고생한 후 노선을 바꿨다. 단순한 게 최고다. 클라우드 활용하고 RAID1+0 써라.

회사에서는 Windows에 C++/python/C#을 쓰고 개인 작업에는 python와 함께 js를 조금 깨작거리고, Windows, Mac, Linux 옮겨가며 쓴다. 개발툴은 손에 잡히는 대로 쓴다. 윈도우에서는 Visual Studio, 윈도우 외에서는 vim을 주로 쓰고 python 개발시 interactive debugging 이 필요할 때는 PyScripter, 맥에서는 IEP를 쓴다. PyScripter는 Complete as type옵션을 꺼야 쓸만하다. ipython에 notebook도 조금씩 사용해보고 있다. 주로 게임개발과 윈도우 데스크탑 애플리케이션을 개발하면서 Win32, 3D, 서버 프로그래밍 쪽을 많이 봤었는데 최근에는 웹서비스에 관심이 많이 생겨서 틈날 때 관심 갖고 보고 있다.

후배들에게 추천하고 싶은 사이트는 스택오버플로우, 위키피디아, 알고스팟, 코세라, Y Combinator다. 개발에 참고하는 사이트는 구글, 스택오버플로우, 깃허브가 진리.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.