IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
한국 developerWorks   >  dW Interview  > developerworks

“끝없이 정진해 자신의 길 만들기”



예술 또는 무술 세계처럼 개발자 세상에도 더 높은 경지에 오르고자 하는 강한 열망이 있습니다. 회사 일로도 모자라(?) 개인 시간에도 코드를 뒤져보고 수많은 자료를 찾아가며 공부를 하는 사람을 심심치 않게 볼 수 있는 건 아마 그 때문일 겁니다. 이번 인터뷰에서는 최상훈 님을 만나 개발자의 공부와 성장에 대해 이야기를 나누었습니다.

최상훈 | JCO 부회장


 
  최상훈 최상훈 님의 개발자 생활에서 오브젝트월드 활동은 빼놓을 수 없는 경험 같습니다. 오브젝트월드에서는 언제부터 활동하셨나요.
2000년 가을로 기억합니다. 2000년대 초반은 IT 산업에 대한 투자가 늘고 호황이었던 시기였고 새로운 기술이 많이 발표돼 공부할 게 많았습니다. 다들 공부하려는 의욕이 높았던 때였죠.

꽤 오래 지속되는 모임이라고 하던데…
1998년 하이텔에서 시작되었으니 10년째입니다. 모임에 참여하는 사람들 사이에 공부하고자 하는 공감대가 있었기 때문에 장수할 수 있었던 것 같습니다. 프로젝트 때문에 지방이나 외국에 나가 있다가도 돌아오면 모임에 다시 나오는 분들도 있고요. 예전에는 공부 위주였는데 요즘은 업무에서 경험한 것들, 구전을 통해서만 알 수 있는 것들에 대해서도 이야기를 나눕니다. 모임이 오래 되다 보니 일종의 ‘정’ 같은 게 있는데 한편으로는 새로 온 분들이 적응하기 좀 어려운 면도 약간 있는 것 같습니다. 물론 공부 마치고 뒷풀이 모임 몇 번 하면 서먹함이 사라지기는 하지만요.(웃음) 오브젝트월드가 많은 것을 가르치는 메카 같은 곳은 아니지만 오브젝트월드에서 활동했다는 소속감이나 자부심이 있는 분들도 있습니다.

개발자에게 공부 모임이 중요한 이유는 무엇일까요.
개발자 자체가 공부가 계속 필요한 존재입니다. 상어는 호흡기 구조 때문에 전진해야지만 숨을 쉴 수 있다고 하는데 IT 분야가 워낙 빠르게 변하다 보니 공부를 하지 않고서는 도태되는 경우가 많아 생존을 위해 계속 공부해야 하지 않나 하는 생각이 듭니다. 혼자 공부를 하면 자기만의 세계에 빠지는 것 같습니다. 공부한 내용을 검증하는 객관적 기준 없이 자신의 기존 지식 기반으로만 이해하면 독선에 빠지기도 쉽고요. 모임에서 함께 공부하면 가령 네 명이 공부한다고 해서 반드시 네 배의 효과를 얻는 것은 아니지만 서로 피드백이 오가며 그 폭이 넓어지고 동기 부여도 됩니다. 옆에서 공부하는 사람 때문에 더 공부를 하게 되는 거죠.

공부 모임에서 기억에 남는 경험이 있었다면.
첫 UML 0 인큐베이터 모임인데요. UML 0의 목적이 그 모임에서 그치는 게 아니라 그것을 통해 새로운 공부 모임을 계속 만들어 나가자는 것이었는데 약 80명이 참여했고 열의를 가지고 진행했던 기억이 납니다. 공부 끝나고 나서도 새벽까지 토론했던 것도 기억에 남습니다. 일명 ‘술터디’라고 했었죠.(웃음) 보통 상대를 이기려고 토론을 하는데 상대방의 주장이 맞으면 인정하는 자세를 익혔고 그것을 통해 많은 것을 배웠습니다.

그 동안 개발을 하면서 자신에게 큰 변화를 주었던 순간들을 꼽는다면…
대학교 때 랩실 선배들을 알게 되면서 개발자가 되기로 결정했습니다. 그 전에는 개발자가 되는 것에 대해서는 엄두가 나지 않았습니다. 제대하고 나서 남들처럼 영어 공부하고 학점 관리나 잘 해야지 생각하고 있었는데 운영체제론 수업을 듣다가 쓰레드 부분에서 막혔습니다. 아무리 읽어도 이해가 되지 않았는데 한 선배가 자기가 만든 게임을 보여주었습니다. 닌자가 여러 쓰레드로 분신술을 하는 것이었는데 엄청났습니다. 그래서 그 랩실 조교 선배에게 허락을 받고 그 랩실에 들어갔습니다. 개발자가 될 자신은 없었지만 그런 프로그램을 짜보고 싶었습니다. 랩실 선배들이 옆에서 하나하나 가르치는 스타일은 아니었습니다. 질문 하나를 하더라도 무엇을 모르는지 먼저 정리하고 나서 물어보게 하고 스스로 공부하는 법을 익히게 했는데 오히려 그게 도움이 더 많이 됐습니다. 그 일을 계기로 개발자가 됐습니다. 그 다음으로는 첫 직장 로코즌의 영향이 컸습니다. 훌륭한 동료들이 많았고 그 안에서 함께 일하면서 전에는 코드만 짜는 사람이었다면 소프트웨어를 설계할 수도 있게 됐습니다. 로코즌에서는 코바(CORBA)를 이용한 개발이 많았는데 코바를 잘 쓰는 것을 넘어 코바를 직접 구현해 본 것도 큰 경험이었습니다. 3년 반 동안 거의 회사에서 살다시피 했지만 굉장히 재미있고 행복했던 시기였습니다. 회사 선배들로부터 많은 영향을 받고 성장했던 시기였습니다. 오브젝트월드에서 공부를 시작했던 것도 그 즈음이었고요.

그 시절 여러 동료 중에서 자신의 개발 스타일에 가장 큰 영향을 끼친 사람은 누구인가요.
송재하 형입니다. 제게 가장 큰 영향을 준 책이 『디자인 패턴』과 『리팩토링』, 『코드 컴플리트』인데 그 책들을 알려주고 체화하도록 이끌어 준 분이죠. 그런데 개발 스타일은 결국 자기가 만들어 가는 것 같습니다. 주변의 좋은 선배, 멘토가 촉매 역할을 해주지만 힘들고 지겨운 시간을 보내면서 특히 어떤 코드가 깨끗한지 진지하게 고민하다 보면 그런 책들에서 말하는 스타일로 바뀌어 가는 것 같습니다.

슬럼프는 없으셨나요.
여러 번 있었고 극복하기 힘들었던 때도 많았습니다. 경험이 부족했을 때라 그랬던 것 같습니다. 또 하고 싶은 일을 찾지 못했을 때도 슬럼프가 찾아왔는데 마치 어떤 맛있는 음식을 먹고 싶은데 그것을 제가 사는 곳에서는 찾을 수 없는 상황과 같았습니다. 뭔가 막히고 풀리지 않을 때는 당시 회사 근처의 양재천에 공책 한 권을 들고 나가 혼자 풀밭에 앉아서 머리 속에 떠오르는 설계들을 그리곤 했는데 그러다 보면 마음도 가라앉고 생각을 정리할 수 있었습니다.

가장 감명 깊었던 코드는 무엇이었나요.
오픈소스 코바 구현인 Orbacus 코드와 ACE-TAO입니다. 이 두 가지는 당시에 제가 고민하던 문제 영역을 아주 잘 해결한 코드입니다.

C++로 된 코바 구현을 주로 다루셨군요.
여담이지만 옛날 언어들은 비록 사이드 이펙트가 많지만 가령 포인터를 창의적으로 잘 활용하면 의외로 상당히 괜찮은 구조나 마법 같은 것이 만들어지기도 하는데 고급 언어일수록 언어 자체에서 간단하게 해결해 주는 것이 많아서 기술적인 ‘아트’를 만들어낼 일이 줄어듭니다. C++ 이후의 고급 언어들에서는 코딩 기교보다는 언어나 라이브러리에서 제공하는 개념을 잘 이해하고 숙련되게 잘 활용하는 것이 중요해지는 것 같습니다.

소프트웨어는 쓰는 주인 또는 만드는 주인을 닮는다고 하는데 어떤 모습의 주인이 되고 싶으신가요.
개발자들에게 ‘예술’이라고 박수를 받을 수 있는 소프트웨어를 만들고 싶던 적이 있었는데 아직까지 한국에서는 그런 일을 할 수 있는 기회가 많지 않은 것 같습니다. 그래서 우선은 고객이 원하고, 사용하면서 정말 좋아하고 편하게 느낄 수 있는 소프트웨어를 만들고 싶습니다. 그리고 나서는 라이브러리나 프레임워크를 개발하면서 기술적인 ‘예술’을 시도해 보고 싶습니다. 제가 존경했던 사람들이 만든 소프트웨어처럼 제가 만든 소프트웨어를 누군가가 보고 배우고 싶어하는 수준에 이르고 싶은 욕심도 있습니다. 정리하자면 모범적인 소프트웨어를 만들고 싶습니다.

오픈 소스에 관심이 많으신 것도 같은 맥락인가요.
오픈 소스 프로젝트에 많이 참여해 보지는 못했지만 제가 했던 일들이 라이브러리나 프레임워크 단이라서 오픈 소스가 그런 작업을 할 수 있는 좋은 통로라 생각해 관심이 많고 오픈 소스 소프트웨어들의 아키텍처를 분석하는 것을 좋아합니다. 기술적인 면 외에도 자유 정신 같은 사상적인 측면에도 매력을 느낍니다.

지난 8회 JCO 컨퍼런스를 준비, 진행하면서 얻은 교훈은 무엇인가요.
준비하는 동안에는 스트레스도 많았고 잘 해낼 수 있을지 걱정을 많이 했는데 다행히도 참석자들의 반응이 좋아 뿌듯했습니다. 컨퍼런스를 함께 준비한 동료들에게 제가 돈이나 명예를 주는 것이 아니었는데도 끝까지 같이 해 준 것이 인상 깊었고 위에서 내려오는 강제력이 없는 조직이 자율적으로 큰 일을 하는 것에 대해 많은 것을 배웠습니다.

올해 9회 컨퍼런스 구상을 소개해 주세요.
전에는 각각의 강의에 대해서만 이야기를 했는데 최근에는 컨퍼런스 자체에 대해 평가가 나와 긴장을 많이 하는 상황입니다. 한편으로는 그런 평가와 피드백들이 있어 컨퍼런스 질이 올라가는 것 같습니다. 올해는 지난해보다 트랙과 세션이 늘어나는데 초보자나 1, 2년차 개발자를 위한 트랙이 있고 비즈니스 트랙을 신설합니다. 개발자 연령대도 높아지고 창업하는 사람도 늘고 있어 기술 외에 IT 산업에 대해 이야기할 수 있게 기획했습니다.

아키텍처를 만드는 아키텍트에 대한 비전이 있는 걸로 아는데 어디쯤 왔다고 생각하시나요.
주니어 아키텍트쯤 되지 않았을까 생각하고 경험이 좀더 쌓여야 할 것 같습니다. 한편으로는 기존에 소개된 아키텍처 사례라는 것이 나사나 펜타곤이 레퍼런스로 되어 있는 게 많은데 한국에서 곧이곧대로 적용하기는 어려운 것 같습니다. 이론으로만 접근하는 것보다는 실제적인 측면에 대해 좀더 연구하고 고민하려 합니다.

   소셜 북마크

   mar.gar.in mar.gar.in
    digg Digg
    del.icio.us del.icio.us
    Slashdot Slashdot

그 길을 계속 가면서 앞으로 하고 싶은 것이 있다면 나눠 주세요.
하나는 전에 만들었던 코바 수준의 복잡도와 규모의 소프트웨어를 핵심적인 위치에서 만들어 보고 싶습니다. 죽기 전에 ‘아트’를 만들고 싶은 거죠. 그리고 좋은 선후배들을 더 많이 만나고 싶습니다.



[최상훈 소개] 코바 ORB 및 네이밍 서비스를 설계, 개발했고 EAI, BPM, 메시징 시스템 개발에 참여했다. Objectworld.org에서 방법론, 아키텍처, 패턴 등을 공부하고 있으며 올 2월 열릴 JCO 컨퍼런스 준비로 바쁜 나날을 보내고 있다.

[지난 인터뷰 보기]



위로


뉴스레터
  
자바스크립트가 작동이 중지되었습니다. 이 기능을 수행하시려면 브라우저에서 자바스크립스트를 작동시켜 주시거나 이곳을 클릭해주세요.
사이트 여행

dW 커뮤니티
포럼 | 블로그 | Spaces
dW Student Community

로컬 컨텐츠

행사 및 세미나

기획 기사

개발자 입문

튜토리얼 및 교육

TOP 10 인기자료

SW 다운로드

RSS 피드

Special offers
IBM SOA Sandbox 시험판
dW Student Community
로보코드
코드 트레이닝


    IBM 소개 개인정보 보호정책 문의