본문 바로가기

지앤선 이야기

[접속] 제가 한번 개발자를 만나 봤습니다. - S1 E11

처음 김명신님을 추천 받았을 때는 솔직히 어리둥절 했었다. 왜냐하면 김명신님을 추천해주신 분은 자바 개발자이셨는데, (왜 인지는 모르겠지만) 나에게는 MS에 계신 분은 당연히 닷넷 개발자라는 생각과 Java 개발자와 닷넷 개발자는 서로 잘 모른다는(안 친하다???) 편견이 있었다고나 할까? 뭐랄까, 서로 막 싫어하고 절대 같이 어울릴 수 없는 그런 존재아무래도 드라마를 너무 많이 봤나 보다

(참고 : 사진에 등장한 저 노란색 물체는 전혀 안 비슷하지만 '범블비'인 것으로 판단 됨~ 역시나 요청없이 내 마음대로 가져 왔음.)

 

Q 우선 잘 모르는 분들을 위해 본인 소개부터 해주세요.

A 어떤 식으로 소개를 하면 좋을까 여쭤보셔서 지금으로부터 거꾸로 거슬러 가면서 말씀해주시면 좋을 것 같다고 했음. 지금 현재는 마이크로소프트에서 테크니컬 에반젤리스트로 활동하고 있다. DPE(Developer & Paltform Evangelism)라는 부서에 소속되어 있는데, MS에서는 약 14년정도 된 부서이다. MS의 새로운 기술이나 플랫폼을 외부(개발자)에서 잘 쓸 수 있도록 알리고 전달하는 역할을 하고 있다. 이 부서에서 근무한지는 2년 정도 되었고, 그 전에는 7년 정도 고객기술기원부에 있었다. 그때는 에스컬레이션 엔지니어(Escalation Engineer)로서 마이크로소프트 플랫폼의 제품을 들여다 보는 일을 했다에스컬레이션 엔지니어에 대한 질문 : 핵심개발자 지원 분야이며 전세계 20, 한국에 2명이 있음. 마이크로소프트에 들어오기 전에는 nhn에서 게임 서버 플랫폼 개발을 했었고, 더 이전으로 거슬러가면 15~6년 전에 창업했다 망한 경험이 있다.

 

Q 프로그래머가 된 계기랄까, 언제 프로그래머가 되야겠다 결심하게 되셨어요?

A 초등학교 때 8비트 컴퓨터를 재미로 시작했다. 대학을 들어가기 전까지는 취미로 했는데, 대학은 전산전공을 하게 되었다. 어릴 때부터 이쪽에 재미를 느껴서인지 다른 과를 생각해본 적은 없다. 솔직히 대학을 들어가기 전에는 굉장히 문제아였다. 좋게 말하면 성적에 연연하거나 수업에 연연하는 학생은 아니었다. 말썽도 많이 부렸고 대학도 재수해서 들어갔다. 수학과 과학만 재미있어 하고 어느 정도 잘했다. 나머지는 관심도 없고 재미도 없었다대학에 가서도 전공수업만 재미있게 들었다. 교양 과목은 성적이 거의 바닥이었다. 돌이켜 생각해보면 다른 인문학적 소양을 갖출 수 있는 과목들도 좋아했으면 얼마나 좋았을까 싶다. 전산을 하다 보니 그 외에 소양이 굉장히 많이 필요하더라. 이과적인 과목만 잘하면 될 거 같지만 실제 프로그래밍을 하다 보면 코드에서 철학적인 문제에 봉착하기도 한다개발자가 되려면 어느 하나도 소홀히 여기면 안 되는 거구나철학적인 문제까지~

대학 1학년 때 아래아 한글 1.5버전을 처음 접했는데, 그 때 친구가 나에게 질문을 했는데 막상 잘 모른다고 대답했지만 너무 자존심이 상하더라. 그래서 그날 서점에서 책을 구입해서 밤새 익혀서 친구에게 대답해주고 뿌듯해했던 기억이 있다대학에서는 전산과이다 보니 컴퓨터 앞에서 계속 있게 되었는데, 그때마다 어머니께서는 컴퓨터 좀 그만하고 공부를 하라고 하셨다그때나 지금이나 컴퓨터를 한다는 건 공부를 안 한다는 의미라고 어른들은 생각하나 보다.

어릴 때의 꿈이 개발자라고 말할 수는 없다. 뭔가 하나를 진득하게 하지 못하는 성격이었는데, 프로그래밍을 하면 다양한 것을 할 수 있다는 것이 매력적이었다. 지금은 컴퓨터를 할 줄 알아요라는 말이 컴퓨터를 잘 쓰는 사람을 말하는 것 같은데, 당시에 컴퓨터를 한다는 말은 프로그래밍을 한다는 말이었던 것 같다. 어릴 때부터 컴퓨터를 할 줄 안다고 말하고 다니고 싶어했던 기억이 있는데, 어쩌면 그때부터 꿈을 가졌다고 할 수도 있겠다.

 

Q 업계에 들어와서 가장 영향을 받은 개발자를 꼽으라고 하면 어떤 분을 꼽으시겠어요???

A 멘토는 아니지만 롤모델 비슷한 분들이 몇 분 계신다. 모 게임사의 CTO님 그리고 MS의 김모모 부장님 등. 혹 그 분들께 누가 될까 실명은 밝히지 말아달라 부탁 하셨습니다. 좋은 의미라 괜찮을 것 같지만 혹시 몰라 부탁하신 대로 기제합니다.  이 분들의 공통점은 내가 퀀텀 점프를 할 수 있도록 달걀의 껍질을 깨주셨다고 해야 할 것 같다. 새로운 시각으로 세상을 바라볼 수 있는 눈을 주셨다. 기술적인 디테일을 설명해준 사람보다는 이런 분들이 더 기억에 남는다. 학교 다닐 때 내가 모르는 다른 세상도 있다는 것을 알려준 선배가 있었다. 졸업할 때쯤 IMF가 와서 취직을 하기 힘들었는데 그때 용기를 준 그 선배 덕분에 창업을 하게 되었고 다른 시각을 갖게 되었다.

 

Q 개발자로 일하면서 가장 힘들 때는 언제인가요???

A 지금 개발자다.’라고 말하긴 힘들지만 지금 현재는 프로그래밍을 전적으로 하는 건 아니시기 때문에 그렇게 생각하시는 걸까???, 학습능력을 가장 중요하게 생각하는데, 그게 반드시 필요하지만 또 한편으론 엄청난 스트레스 이기도 했다. 변하지 않는 규칙도 있지만 IT 분야 자체가 변화의 폭과 넓이가 크고 변화의 시기도 짧다. (전산과 관련된 지식의 반감기가 1년반이라고 알려져 있다.) 그러다 보니 쏟아져 나오는 기술을 어떻게 선별해서 어떻게 내 것으로 만들 수 있을까에 대한 고민이 개발자로 일하면서 가장 힘든 점이라고 생각한다. 그리고 국내 대기업문화가 개발자를 자꾸 매니저로 바꾸려고 하는 경우가 많은데 그런 상황이 참 어려운 듯하다

 

Q 함께 일하기 싫은 프로그래머가 있나요???

A ‘제 컴퓨터에서는 잘 되는 되요~’라고 말하는 개발자!!! ~ 이건 일반인들이 잘 하는 말 아닌가??? 어떻게 생각하면 변명인 것이다. 자신이 만든 것은 자신의 컴퓨터에서 수행하기 위해서 만든 것이 아니라 다른 곳에서 되게 하기 위해 만든 것인데그런 말은 정말 좋지 않은 변명이다. 또 하나는 결과는 좋은데 코드의 내용을 보면 개발새발인 경우가 있다. 다양한 문제해결 방법에 대해 검토하지 않고, 단지 목적만 바라보면서 접근하는 사람들과도 일하기 힘들다. 효율성이 없이 일하는 사람이라고 해야 할까? 그리고 커뮤니케이션 능력도 중요하게 생각한다.

결과물(퍼포먼스) 이야기를 하면서 맨먼스 미신에 대한 이야기를 나누었다. 이해를 돕기 위해서 맨먼스(Man month) 미신의 대표적인 이야기는 임산부가 10개월의 임신 후에 아이를 낳는다고 할 때, 임산부 10명을 데리고 오면 1달만에 아이를 얻을 수 있는가? 그런 이야기라고 설명해주셨다. 소프트웨어 개발로 치자면, 10명이 5개월동안 하는 일에 50명이 투입된다고 한 달 만에 퍼포먼스를 낼 수 없다는 것이라고 나는 이해했다.

 

Q 직원을 뽑기 위해 인터뷰어로도 많이 활동하셨을텐데, 그 때 가장 중요하게 생각하는 것은 어떤 것인가요??? 또 그런 것들을 파악하기 위해서 어떤 방법을 쓰시나요???

A 대부분의 회사, 특히 중소기업은 패기나 열정을 굉장히 많이 본다고 생각한다. 패기나 열정이 토익이나 토플 점수로 나타나는 것이 아니라서 짦은 시간에 파악하기 어렵지만 조금 더 그런 쪽으로 어필하는 친구를 더 유심히 본다. 최근에 MS에 면접을 보는 친구들 중에도 엄청난 스펙을 가진 친구들이 많은데, 그런 친구들은 대부분 떨어지더라. 그 친구들은 다 똑같다. 개성이 없다는 뜻이다. 하물며 면접 보러 올 때의 옷이나 넥타이 색까지 똑같다하긴 요즘 어떤 회사는 어떤 복장을 입고 면접을 봐야 합격 확률이 높고... 이런 식의 정보도 공유된다고 하던데~ 보여주기 위한 그 무엇이 많다. 실상 면접 시에는 수치나 스펙이 크게 좌지우지 되지 않는다. (그건 서류전형에서...) 결국 비슷비슷한 사람들이 면접을 보러 오는데 그렇다면 오히려 열정이나 패기 혹은 자신만의 강점을 더 보여줘야 한다. 솔직히 자기가 세상의 중심인 것 같은 친구들을 좋아하는 편이다. 이건 잘난 척을 말하는 것이 아니다. 내 스스로 만족을 느낄 줄 아는 것이 중요하다는 말이다. 주위시선을 너무 인식하지 않는 것을 말하는 것이다. 다른 부서와 다르게 개발자를 면접 볼 때는 기본적으로 개발을 좋아하는지를 많이 본다. 개발을 단순히 일의 일부로 생각하는지, 아니면 개발 그 자체를 좋아하는지는 다른 것 같다.

 

Q 이 일(직업)의 매력은 무엇이라고 생각하십니까???

A 컴퓨터 하나만 있으면 무엇이든 만들어낼 수 있다. 하물며 눈에 보이는 것이 아닐지라도. 다른 일에 비해서 무에서 유를 만들어낼 수 있고 또 그런 것들이 빠른 속도로 공유될 수 있다는 것이 가장 큰 매력이다. 문명의 이기의 중심에 있다는 것도 독특한 매력이다. 소스를 볼 줄 알고 소스로 말을 할 수 있다는 점도 좋은데, 코드가 시 같다는 생각도 든다. 모르는 사람은 전혀 이해할 수 없지만 개발자만 느낄 수 있는 아름다움이나 감동이 좋다. 예전에 Y2K 관련해서 KT쪽 일을 했을 때 새 날이 밝고 아무 문제 없었을 때 느끼는 희열, 컬러링 관련 일을 할 때 서비스 런치시 정상적으로 잘 운영 되어서 느끼는 희열, 그리고 한게임에 있을 때 복잡한 서비스를 런치 하고 난 후의 희열, 이런 것들이 이 일의 매력인 것 같다.

 

Q 요즘 인문학에 대한 이야기가 많이 나오고 있습니다. 프로그래머에게 정말 인문학적인 소양이 필요한 것일까요???

A 사회생활을 하는 그 자체는 개발자가 아니더라도 인문학이 큰 도움이 된다. , 사람관계 등이 인문학적인 소양이 필요한 부분이다. 개발적인 관점에서만 보더라도 인문학적인 소양이 필요하다. 소프트웨어에 직접적인 도움이 된다기 보다는 개발하는 사람 자체에게 도움이 된다고 생각한다. 결과의 모습이 얼마나 인간적인가인문학은 그냥 사람을 공부하는 것, 사람을 아는 것, 사람이 만들어내는 그 무언가에 대한 이해라고 생각한다

 

Q 사용자나 고객을 이해하기 위해 개발자에게 필요한 것은 무엇이라고 생각하시나요???

A 소프트웨어를 만든다는 측면에서 내 소프트웨어의 최종 사용자가 누구인지를 정확히 파악해야 한다. 일반인들도 이해할 수 있는 프로그램을 짜는 것이 중요하다. 사용자에게 선택권을 너무 많이 주는 것도 때론 문제가 된다선택권을 너무 많이 주면 사용자는 멘붕에 빠진다. 뭘 어떻게 해야 할지 몰라서... 사용자의 니즈를 파악하지 못했기 때문에 발생하는 일이다. 사용자의 니즈를 파악하지 못하면 모든 것을 옵션으로 주는 문제가 발생한다. 최종 사용자가 이 제품을 가지고 무엇을 하려 하는지 정확히 파악해야 하고, 사용하기 쉽게 만들어야 한다. 전혀 선택의 여지를 주지 않는 개발자도 있는데 이런 것들은 본인이 편하고자 하는 것이다이런 경우는 이게 뭐야? 뭐 되는 게 하나도 없어~’라고 생각하기 쉽다. 소프트웨어를 많이 써보는 것이 제일 좋고, 고객(사용자)으로부터 피드백을 받을 수 있는 창구를 열어놓는 것이 좋다. 결국 고객은 너무 많이 줘도 너무 안 줘도 문제다. 적당히... 사실 이 적당히가 제일 어렵지만

 

Q 개발자로서 사회 생활(회사 생활)에 대한 조언을 주신다면 어떤 말을 해주고 싶으신가요???

A 본인이 가지고 있는 것에 대해서 너무 맹신하거나 나의 능력을 너무 과대평가하는 것이 참 위험하다고 생각한다. 그런 생각들은 개인과 조직에게 피해를 주게 된다. 자존감이 높은 것은 좋지만 자만심이 높아지는 것은 경계해야 한다. 오만으로 빠지지 않기 위해서 노력해야 한다. 자신의 문제가 무엇인지 모르는 것이 제일 큰 문제라고 생각한다. 자신의 문제가 무엇인지 파악하는 것도 사회생활을 하는데 중요하다. 기본적인 소양은 끊임없이 익히고 새로운 것에 대한 갈구가 내재되어 있어야 한다.

 

Q 프로그래머가 되지 않았다면 어떤 일을 하셨을 것 같으세요???

A 건달이 되지 않았을까 싶다. 말도 안 돼~ 그러고 보니 조금 무서워 보이기도 하고... ~ 건달은 무서운 사람이 아닌가??? 사실 나는 프로그램을 하면서도 취미 일뿐이라고 생각한 적이 많다. 지금은 그림을 그려보고 싶다는 생각도 든다. 내가 가지지 못한 능력 중에서 제일 부러운 것이 그림을 잘 그리는 능력이더라. 직업이라고 말할 수 있을지 모르지만

 

Q 취미가 있으신가요???

A 한 때는 운동이었다. 혼자 하는 운동, 수영, 스키 같은 것을 취미로 했었는데 최근에는 책 작업 때문에 못했다. 프로그래머가 체력은 굉장히 중요하다고 생각한다맞아. 어른들이 고등학생들에게 결국 체력 싸움이라는 이야기를 많이 하시잖아. 누가 더 오래 앉아 있느냐도 결국 체력 문제라고... 그리고 매일 앉아 있으니 뱃살을 위해서도 개발자들은 더욱 운동을!!! ???!!! 

 

Q 스트레스를 푼다거나 재충전은 어떻게 하시나요???

A 자거나 아니면 먹거나 그런 식으로 푼다. 자고 나면 금세 잊어버린다. 스트레스 받으면 누군가와 말하는 자체가 싫어진다. 스트레스 때문은 아니지만 30시간 이상 잔 적도 있고 하루 3시간 자고 한 달을 버틴 적도 있다.    

 

Q 최근에 가장 관심있게 보는 것은 어떤 것이 있으세요???

A최근 클라우드 쪽을 많이 보는데, 사실 클라우드라기 보다는 분산컴퓨팅 아키텍처, 경량화 웹개발 등을 보고 있다. node.js나 자바 등!!! MS에 계신 분이 node.js와 자바 등에 관심을 갖고 계시다고 하니 뭔가 이상했다. 사실 개발자들에게 도움이 될만한 책을 한글화 하는 것에 관심이 많다. 인터넷으로 지식을 습득하는 것은 한계가 있다고 생각하고 있다

 

Q 최근에 가장 짜릿한 경험을 하신 적이 있다면 언제인가요???

A 작년 11월부터 토요세미나를 시작했는데(2000년 초중반에 매주 하던 것이었는데 5~6년동안 못하다가 다시 시작), 다시 시작한 이유는 여러 가지가 있지만 그에 대한 향수를 가지고 있는 개발자가 많다고 느꼈고 기술을 알려야 하는 부서에도 매체를 다양하게 할 필요가 있다고 느껴서이다. 오프라인 세미나가 여러 가지 비용/공간/시간적인 면에서 제약이 있지만 사람들이 모여서 느낄 수 있는 공감대가 필요하다고 생각했기 때문에 시작하였다. 내부에서도 반신반의하였지만 항상 200명 정도의 사람들이 모이고 보조의자를 사용할 정도로 사람들이 많이 오면서 불안감이 뿌듯함으로 바뀌면서 짜릿함을 느끼게 되었다토요일에 하는 세미나인데도 200명의 사람들이 꾸준히 온다니... 개발자들의 열의는 정말 대단하다.

 

Q 30년 뒤의 나의 모습은 어떨 것이라고 생각하시나요???

A 꿈이 하나 있는데, 30년까지는 아니지만 환갑 때 코딩 하는 것이다. 20년도 남지 않았지만 환갑 때 그 시대에 가장 유행하는 언어로 프로그래밍을 하는 것이 꿈이다. 직업이 바뀔 수는 있지만 계속 프로그램을 하겠다는 나의 고집이기도 하다.  

 

Q 본인 스스로 어떤 개발자라고 생각하시나요???

A 질문이 어렵다고 하셨다. 과정을 굉장히 중요시하는 개발자!!! 약간 원칙주의자이기도 하고 답답한 스타일일수도 있다. 행동은 그렇지 않은데 코드만 보면 그렇게 바뀐다. 주위 사람들이 이중인격자라고 하기도 한다. 컴팩트 한 것을 좋아한다. 코드로 아름다움을 느낄 수 있고 즐길 수 있는 개발자들이 많았으면 한다. 테크닉 = 아트 라고 생각한다

 

Q 후배 개발자들에게 꼭 해주고 싶은 말이 있다면 어떤 건가요???

A 많은데 몇 개만 이야기하자면, 이론에 충실 하라는 이야기를 제일 먼저 하고 싶다. 전산이든 무엇이든 이론을 접하는 것이 사실 따분한 일이라 지루하긴 하다. 그렇지만 바닥을 다지는 일이 중요한 이유는 이론이 탄탄하지 않으면 그 위에 집을 지을 수가 없기 때문이다. 처음 프로그래밍을 시작할 때는 이론이 없는 상태로 수년간 프로그래밍을 하다가 대학에 가서 처음으로 이론을 접했는데, 그때 컬처 쇼크를 느끼게 되었다. 그때는 이론이 얼마나 중요한지 모르는 상태로 넘어갔는데 점점 시간이 지나다 보면 다시 이론으로 돌아가야 하는 시기가 많이 생긴다. 최근에 들어서 생각되는 것은 아주 디테일을 깊이 있게 파는 개발자와 큰 그림을 그리는 개발자가 종이 한 장 차이라는 것이다. 디테일하고 깊이 있는 지식을 가진 사람이 큰 그림도 잘 그린다. 어줍잖은 유행 기술을 따라가느니 하나의 분야를 깊이 있게 보는 것이 도움이 된다. 무언가 하나를 하더라도 깊이 있게 파는 것은 정말 중요하다. 깊이 있게 파고들지 않으면 결과지향적인 사람이 될 수 있다. 다른 관점으로 프로그래머들에게 가장 중요한 것 중 하나가 본인의 네이티브 랭귀지를 만드는 것이라고 생각한다. 하나의 언어에 정통할 수 있다는 것은 매우 중요하다. 그 언어로 무엇이든 개발할 수 있는 수준까지 오르는 것… 3년이상 걸리는 것이라고 본다. 이걸 처음으로 했으면 좋겠다.

그리고 또 하나를 말하자면, 세상을 다른 관점으로 바라볼 수 있는 언어들을 배우는 것이 좋다는 것이다. 하나의 언어가 완벽하게 된 다음에 다른 언어를 바라보면 굉장히 도움이 된다. ‘프로그래밍의 정의에 대해서 너무 모호한 생각을 가지고 있거나 편협된 생각을 가지고 있는 사람들이 많다. 프로그래밍이라는 것 자체가 화면에 소스가 가득 있는 것을 풀이하는 것이 아니다. 프로그래밍은 결과에 도달하는 과정이라고 생각한다.  

아직도 40대 이상의 개발자가 많이 있다. 사업을 하거나 영업을 하거나 여러 번의 갈등이나 압박이 있었음에도 불구하고 본인이 원하고 좋아하기 때문에 계속 프로그래밍을 하고 있다. 본인이 의지를 가지고 있다면 사회적으로 힘들다고 하지만 계속 할 수 없는 것은 아니다. 나이가 들수록 디테일이 떨어질 수는 있지만, 미리부터 안 된다는 생각을 하지 않았으면 좋겠다.  

 

인터뷰 후 느낀 점어쩌면 내가 가지고 있던 편견은 서로 다른 기술을 사용하는 개발자들은 서로 인정하지 못할 거라는 생각에서부터 비롯된 것 같다. 김명신님과 인터뷰를 하는 동안 진정한 개발자라면 말로만 다르다와 틀리다의 차이를 아는 것이 아니라 나와 다른 것에 대해서도 관심을 갖고 배우려는 자세를 가지고 있어야 한다는 것을 깨달았다. 끊임없이 배워야 하는 개발자라는 직업 특성으로 인해 때론 힘들기도 하다 말하시지만, 그럼에도 불구하고 새로운 것에 대해서 편견 없이 받아들이고 꾸준히 노력하는 모습을 보며 진정한 개발자라는 생각에 다른 분야의 개발자도 인정하고 추천을 해주신 것이 아닐까?  by (&)