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

즐거운 코칭과 재미있는 프로젝트, 그리고 자기 업그레이드



기업 프로젝트는 여러가지 현실적 이유 때문에 대부분 외주 형태로 개발됩니다. 이번 인터뷰에서는 외주 형식 대신 ‘코칭’을 통해 신기술을 도입하고 학습하면서 자체적으로 기업 프로젝트를 진행한 개발팀을 만나보았습니다. 기존에 익숙한 방식을 벗어난 어떻게 이런 시도를 할 수 있었는지, 어떤 성과를 거두었는지 그 이야기를 들어보겠습니다.

 

현대경제연구원
사진: 왼쪽부터 김석준, 박경태, 김보성, 이해준, 김용웅

 

 
dW: 먼저 이번에 수행한 프로젝트에 대해 소개 부탁 드립니다.
김용웅: 현대경제연구원 e-HRD사업본부 이러닝개발실 소속으로, 기업체 대상 온라인 교육 서비스를 개발, 운영하는 일을 하고 있습니다. 이번 프로젝트는 차세대 LMS(Learning Management System)를 개발하는 것이었는데, 플랫폼 변경에 신기술을 도입하기 위해 ‘코칭’을 시도했습니다. 프로젝트의 성과물은 현재 고객사 교육 서비스에 적용되었습니다.

dW: 차세대 LMS 시스템 개발은 어떤 필요 때문에 시작하셨나요.
김용웅: 2003년에 개발된 기존 LMS 시스템으로는 현재 두 배 이상 늘어난 학습자 수를 소화하기 어려운 면이 있었습니다. 또 학습자 중 고용 보험 환급이 되는 기업 교육 학습자가 많아 노동부 권고 사항이 까다롭습니다. 그 동안 권고 사항을 많이 따라가기는 했지만 부족한 면이 있었고 최근 웹 2.0 추세에 따라 사용자의 요구사항도 높아졌고 자기 주도적 학습을 위한 도구들도 반영하지 못한 부분이 있었습니다. 이런 것들을 보완하기 위해 차세대 LMS란 이름으로 프로젝트를 시작했습니다. 우선 상반기에 사용자들이 불편을 느끼고 있는 기업 교육 포털 사이트인 Cy-learn(http://www.cy-learn.co.kr)을 개편했고 다음으로 SaaS(Software as a Service) 형태의 미니 e-HRD(인적 자원 개발) 시스템을 개발했습니다.

dW: 미니 e-HRD란 어떤 시스템인가요.
김용웅: LMS를 포함한 웹 기반의 통합 교육 관리 시스템으로 온라인, 오프라인, 독서통신 등 모든 형태의 교육을 통합 관리할 수 있는 시스템입니다. 종전에는 시스템을 납품하면 고객사에서 직접 운영해야 하는 부담이 있었고 자체적으로 유지 보수를 하지 못하는 상황이었습니다. 그래서 SaaS 형태로 우리가 고객사의 교육 관리 시스템을 운영할 수 있도록 미니 e-HRD를 기획했습니다. 또 전에는 학습자가 여러 이러닝 업체의 교육을 수강하려면 해당 업체 사이트들을 찾아 다니며 교육을 받고 교육 담당자 역시 여러 사이트들을 돌아 다니며 결과를 확인해야 했는데, 미니 e-HRD시스템은 이것들을 한 곳에서 통합 관리할 수 있습니다.

dW: 외주 개발이 아닌 직접 개발을 선택한 이유는 무엇인가요.
김용웅: 차세대 LMS 시스템의 플랫폼을 루비온레일스(Ruby on Rails, 이하 RoR)로 결정하고 RoR로 개발할 수 있는 외주 업체를 찾았는데, 그럴만한 회사가 없었습니다. 차선책으로 RoR 전문가를 초빙해 개발을 같이 하면서 우리 팀도 RoR을 배우기로 하고, 이해준 연구원이 RoR 세미나에서 만났뵜던 김석준 씨에게 부탁을 드렸습니다. 당시만 해도 김석준 씨가 상당 부분을 개발해야 한다고 생각했는데 이야기를 나누는 과정에서 김석준 씨가 1주일에 1.5일 정도 오셔서 코치를 하고 우리가 직접 개발하면서 기술 이전을 받는 것으로 결정했습니다.

dW: 코칭 시도에 대한 회사의 반응은 어땠나요.
김용웅: 현대경제연구원이 기업 교육을 하는 회사이다 보니 멘토링, 코칭이란 개념이 낯설지는 않았습니다. 교육에는 크게 공식 교육(formal learning) 비공식 교육(informal learning, 참고: Informal Learning in 10 minutes)이 있습니다. 이 중 코칭은 비공식 교육이라 볼 수 있는데, XP(Extream Programming)의 짝 프로그래밍(Pair Programming) 과정에서 서로 배우는 것도 비공식 교육이라 볼 수 있습니다. 사내에서 이런 비공식 교육에 관심이 높았고 관련 교육도 있었습니다. 특히 담당 실장님이 비공식 학습에 관심이 많으셔서 이런 방식을 지지해 주셨습니다.

dW: 코칭은 어떻게 이뤄졌나요.
김석준: 프로젝트 기간이 8주였는데 회사가 서울(코칭 기간 중 회사 사옥이 서울 계동에서 용인 마북리로 이전)에 있을 때는 1주일에 3회 열두 시간, 용인으로 이전한 후에는 1주일에 하루 여덟 시간을 진행했습니다. 프로젝트 초반에는 RoR 학습 중심으로 진행했습니다. 팀원들이 RoR을 빨리 습득해 프로젝트를 진행해야 했기 때문에 첫 3주는 집중적으로 교육과 실습을 했구요. 3주가 지난 뒤에는 실제 프로젝트를 하면서 병목이 생기는 부분을 풀어나가는 형식으로 진행했습니다.
김용웅: 개발을 해나가면서 모아두었던 질문을 김석준 씨가 오실 때마다 물어보거나 안 오실 때는 이메일로 질문을 했습니다. 우리가 잘 못하는 부분은 집중적으로 코치해 주셨구요. 또 개발에 대한 요구 사항에 적합한 기술들을 조사해 와 알려주시기도 했는데 만약 우리가 단독으로 공부하면서 개발했다면 할 수 없었을 겁니다.
이해준: 시간이 배로 걸렸을 거에요.
김용웅: 예. 시간이 배로 걸렸거나 아예 못했을 수도 있구요. 막히는 부분을 말씀 드리면 다음에 오실 때 꼭 필요한 내용을 찾아오셔서 많은 도움이 됐습니다. 특히 코칭 덕분에 의사 소통이 한 방향으로 모아질 수 있었습니다. 우리끼리 했으면 기술적 취향에 따라 티격태격했을 겁니다.

dW: RoR 코칭은 이번이 처음이셨나요.
김석준: 예. 사실 원래 코칭이 본업은 아닙니다. 그 동안 루비 커뮤니티에 참여하고 RoR 책을 번역하면서 루비 저변이 확대됐으면 하는 생각을 해왔습니다. 몇 차례 RoR로 프로젝트를 하기도 했구요. 외국에서는 기업 환경에서 RoR 도입 운영 사례가 있는데 국내에는 아직 없습니다. 이번 기회에 기여를 할 수 있겠다는 생각에서 코칭을 하기로 했습니다.
dW: 코칭 준비는 어떻게 하셨나요.
김석준: 하루 정도 시간을 따로 떼어 코칭을 위한 준비를 했습니다. 프로젝트를 함께 따라갔기 때문에 다음 코칭 때 무엇이 필요한지 파악하고 그에 맞는 자료를 조사하고 RoR을 이해하는 데 도움이 될 예제 프로그램을 짜는 식으로 준비했습니다.

dW: RoR 채택 이유는 무엇인가요.
김용웅: 온라인 교육 시스템은 고객사마다 다양한 사용자들의 요구로 인해 유지 보수가 많습니다. 빨리 개편할 수 있고 요구 사항이 들어오면 바로 고칠 수 있는 플랫폼을 찾다 보니 RoR을 도입하기로 했습니다. 서버 사이드와 클라이언트 사이드를 동시에 개발할 수 있다는 점도 생산성 향상에 도움을 줄 것으로 생각되었습니다. 이해준: 처음에는 기존 PHP, 자바, 닷넷 시스템을 비교하기도 했지만 일단 ‘RoR의 생산성 극대화’란 환상(?)에 대해 기대가 있어서 적극적으로 검토하기 시작했습니다. 특히 프레젠테이션 단 개발이 편하다는 평가를 비롯해 기존 문제들을 해결해 줄 것으로 판단했습니다.

dW: 내부적으로 RoR에 대한 우려는 없었나요.
김용웅: 우리 팀은 기술적 의사 결정을 어느 정도 자체적으로 할 수 있습니다. 처음엔 신기술 도입에 대해 약간 우려는 있었지만, 현재보다는 나을 거라는 확신으로 내부 고객, 외부 고객들이 원하는 빠른 개발을 만족시킬 수 있고 예상되는 문제들은 코칭을 통해 극복할 수 있다고 설득을 해 받아들여졌습니다.

dW: RoR이 적용된 부분은 어디인가요.
김용웅: 미니 e-HRD시스템에 적용했습니다. RoR을 배우면서 받은 영향이 큰데, 김보성 연구원은 ASP 코드를 RoR 스타일로 짜기도 했습니다.(웃음) 원래는 Cy-Learn 홈페이지 개편에도 RoR을 쓰려고 했지만 일정에 쫓겨 기존 ASP 코드를 수정하는 선에서 그쳤는데요. 그 ASP 코드 내부를 보면 RoR처럼 개발됐습니다. 향후에는 적용 범위를 넓혀가려고 합니다.

dW: 다들 RoR이 처음이라고 하셨는데 학습 과정은 어땠나요.
박경태: 코칭을 받은 소감을 무술 영화에 비유하자면, 아무 힘 없는 주인공이 어려움에 처했다가 고수를 만나 고수로부터 자기에게 가장 맞는 기술을 배워 급성장하는 것과 같았습니다. 저는 코치의 가르침에 100% 충실하게 따르려고 했습니다.(웃음)
이해준: 이번 프로젝트는 시간이 부족해서 너무 많이 배워도 소화를 하지 못하고 너무 적게 배워도 고생을 할 상황이었는데, 딱 적절한 만큼만 제시해 주셔서 빠르게 배울 수 있었습니다. 코치님이 알려주신 RoR 소스들은 매우 잘 만들어진 것들이라 그것들을 보면서 코드를 발전시켜 나갈 방향을 익힐 수 있었구요. 프로젝트 자체가 학습이기도 했습니다.
김보성: 중간에 ASP 코드를 짜는 일을 맡게 되어 많은 걸 놓친 것 같아 아쉬웠지만 RoR의 철학이나 스타일을 어느 정도 이해한 상태에서 시작을 하니까 다른 언어를 쓰더라도 RoR 스타일과 기법을 따르게 되고 거기에서 많은 도움을 받았습니다.

dW: RoR 스타일에서 어떤 부분이 마음에 드셨나요.
김보성: MVC 모델과 자바스크립트를 다루는 방식이 인상적이었습니다.
이해준: 액티브 레코드에서 영감을 많이 받았습니다. RoR에서 가장 돋보이는 부분이고 참고하고 배울 만한게 많았습니다.

dW: RoR로 개발하면서 어려웠던 부분은 무엇이었나요.
김용웅: 기존 시스템이 MS 윈도우 서버 환경에서 MS SQL DB를 사용하고 있는데, 이것을 그대로 유지할 것인가, 데이터베이스를 바꿀 것인가를 두고 많은 고민을 했습니다. 프로젝트 기간과 비용 전체를 결정할 정도로 큰 문제였으니까요. 결국 기존 데이터베이스를 그대로 두고 프레젠테이션 부분만 바꾸려고 하니 주변에서 우려가 커졌습니다. 개발할 때 장애도 됐고 액티브레코드를 많이 활용하지도 못했구요.
이해준: 인코딩 문제도 있었고 RoR 자체적인 버그도 피해가야 했습니다. RoR 플러그인이 많아 필요한 걸 그때 그때 찾아 쓸 수 있는 장점도 있었지만 불완전한 플러그인들의 버그도 해결해야 한다는게 좀 괴로웠습니다. 특히 MS SQL과 RoR을 연동하는 부분이 쉽지 않았습니다. 처음에 시작할 때는 데이터베이스를 바꾸면 힘이 많이 들 거라 생각하고 기존 데이터베이스를 유지했는데 실제로 개발을 진행하면서 리팩토링을 계속 해나가다 보니 데이터베이스를 바꿔도 큰 문제가 되지 않았겠다는 걸 알게 되었죠.
김용웅: RoR을 비롯한 오픈 소스를 쓰려면 개발자의 노력이 굉장히 많이 필요합니다. 김보성 연구원이 지적했듯이 벤더의 보증이 없기 때문에 직접 검증해야 봐야 하거든요. 문제를 돈으로 막느냐, 개발자의 고생으로 해결하느냐 차이가 있는데 후자를 택했습니다.(웃음) 대신 기술에서 주도권을 가질 수 있었고요.

dW: 프레젠테이션 레벨 개발이 쉬웠다고 하셨는데 그 외에 RoR의 효과를 본 부분이 있었나요.
김용웅: 메타프로그래밍의 혜택을 많이 봤습니다.
이해준: 루비의 메타프로그래밍 기법이 아니었으면 미니 e-HRD시스템 같은 걸 개발하기 어려웠을 겁니다.
김석준: 미니 e-HRD시스템은 서비스형 블로그처럼 시스템 하나에서 여러 고객사를 대상으로 각각의 고객사 요구에 맞는 기능을 반영한 이러닝 시스템을 제공합니다. 메타프로그래밍은 코드를 생성하는 코드를 만드는 것이라고 할 수 있는데요. 메타프로그래밍을 이용해 코드 생성기를 작성해두고 새 고객사가 생기면 즉각 기본 코드를 생성한 다음 약간의 수정만 해 주면 특정 고객사를 위한 애플리케이션을 바로 띄울 수 있는 구조입니다. 루비와 같이 동적인 언어가 가지는 큰 장점 중의 하나가 아닐까 생각합니다.

dW: 프로젝트 진행 중 기술 외적인 어려운 점이 있었다면…
김용웅: 1월에 요구사항 분석을 시작해 5월 말부터 프로젝트를 시작해 6월 말부터 코칭을 받기 시작했습니다. 그런데 프로젝트 외에 일상 업무를 해야 되는 상황이어서 처음 한 달은 공회전이 생겼습니다. 아마도 대기업에서 외주 개발을 하는 주된 이유가 이런 것일 겁니다. 그러다 팀으로 오는 모든 일을 제가 받기 시작했습니다. 전에는 의사 소통을 빨리 하려고 내부 고객들이 담당 개발자를 직접 찾는 방식이었는데 제가 중간에서 개발자들이 프로젝트에 집중할 수 있게 이를 조정했고 그 다음 달부터 개발에 속도가 붙었습니다. 앞으로도 이런 방법이 굉장히 중요해질 것 같습니다.
김석준: 시스템 운영 전반을 책임지는 팀이라 개발에 전념할 수 없는 상황이더군요. 다른 여러 팀에서 들어오는 요청을 직접 받아 처리해야 하다 보니 개발하다 그 업무를 처리하게 되고 일정이 자꾸 밀리게 됐었죠.

dW: 개발을 마치고 회고를 하셨다고 들었는데 어떤 이야기들을 나누셨나요.
김석준: 마지막 날 네 시간 정도 회고를 했습니다. 처음에는 그 동안 한 일을 검토하고 각자 했던 일을 발표하고 코드를 같이 리뷰하고 RoR 선택이 잘 한 일이었는가에 대해 토론도 했습니다. 그리고 앞으로 시스템 운영에 무엇이 필요하고 그것을 위해 어떤 일을 해야 하는가에 대해 의견을 나눴구요.
김보성: 프로젝트 성공에서 가장 중요한 것은 프로젝트 자체에 대한 의지와 그것을 배려하는 환경이라는 이야기를 했습니다. 앞서 이야기가 나왔지만 일상 업무 때문에 도저히 집중할 수 없었던 기간이 있었는데 그걸 다 끊고 개발만 할 수 있게 되었을 때 몇 달 동안 안 되던 것이 한 달여 만에 되었거든요. 사실 대기업 환경에서는 쉽지 않은 일인데 집중할 수 있는 환경을 만들어 주었다는 게 성공 사례의 하나가 될 것 같습니다.
김용웅: 총평 때 RoR 선택 결과에 대해 약간의 논쟁이 있었습니다. 그렇지만 전쟁에서 이겼는데 아군이 모두 죽으면 소용 없듯이 우리가 성장한 것이 큰 자산인 것 같고 향후 아키텍처의 방향을 바꿔나가는 데 영감을 얻은 것이 큰 소득이었습니다. 회고 후 회사의 다른 구성원들과 이 내용을 공유하고 개발 결과물을 시연했는데 생각했던 수준 이상으로 나왔다는 좋은 평가를 받았습니다. 결과적으로 이번 프로젝트의 성과가 좋았기 때문에 다음 프로젝트도 RoR을 이용해 진행할 예정입니다.

dW: 프로젝트를 마치고 각자 얻은 것이 있다면.
박경태: 첫 직장에서 첫 프로그래밍을 했는데 프로젝트를 통해 좋은 것들을 정말 많이 배웠고 지금까지 배운 대로 하면 앞으로도 잘 할 수 있을 것 같습니다.
김보성: VLSI부터 웹 개발까지 다양한 경험을 해보긴 했지만 프로젝트를 맡아 제대로 마쳐본 적은 없었습니다. 지금까지는 실패하는 사례를 많이 봤지만 이번에 작은 성공을 통해 어떻게 하면 잘 할 수 있겠다는 아이디어와 자신감을 얻은 게 큰 소득입니다. 이런 경험이 더 쌓이면 더 나은 성공 사례를 만들 수 있을 것 같습니다.
이해준: 타성에 젖어 프로그램을 짜던 습관이 많이 바뀌었습니다. 전에는 프레임워크를 제가 범접할 수 없는 높은 수준의 것이라 생각했는데 이제는 다가갈 수 있는 영역이 더 늘었고 사고의 전환을 경험했습니다.
김용웅: 저는 중간에서 업무 조정을 하느라 개발에는 많이 참여하지 못했는데 대신 김보성 연구원이 말한 환경 조성에 관심이 생겼습니다. 또 다른 관심 하나는 외부 전문가를 통해 기업 내부 역량을 키워가는 것인데 특히 기술이 빠르게 변화하는 시대에 기업 내 기술 조직에 이런 시도가 더 많이 필요하리라 봅니다. 이런 방식이 보편화되어야 김석준 씨 같은 전문가가 더욱 성장할 수 있을 테구요. 이런 시도가 브라스밴드 프로젝트처럼 개발자의 삶을 윤택하게 하는 시도와 병행되면 좋을 것 같습니다. 개인적으로는 좋은 코치와 동료들을 만나 인생에서 큰 경험을 했습니다.

dW: 코치로서 얻은 게 있다면
김석준: 저도 마찬가지인데 즐거운 경험을 했습니다. 여름 내내 팀원들이 고생하는 것을 곁에서 보면서 얻은 것이 많았습니다. 제 스스로도 RoR에 대해 더 많이 공부하는 계기가 되었고 코칭이라는 것을 해보는 것도 좋은 경험이 될 것 같습니다. 6~8월까지 코칭 외에도 제 일을 비롯한 몇 가지 일을 했는데, 그 중에서 가장 재미있었습니다. 또 좋은 분들을 만날 수 있었구요.

dW: 이번 프로젝트를 바탕으로 다음 프로젝트에서 개선하고 싶은 것이 있다면 소개해 주세요.
김용웅: 다음 프로젝트는 온라인 멘토링/코칭 시스템입니다. 이번 프로젝트는 기획이 끝난 다음에 김석준 씨가 참여하셨는데 다음 프로젝트에는 기술 검토 단계부터 참여하시게 됩니다. 이번에 원통하게(?) 쓰지 못한 액티브 레코드도 적극 활용할 생각입니다. 프로젝트에만 집중할 수 있는 환경도 최대한 만들 생각인데 그 기간 동안 개발자들이 개발에만 집중할 수 있게 배려할 계획입니다.

   소셜 북마크

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


[인터뷰이 소개(가나다 순) ]

김보성: 현대경제연구원 인재개발원의 레거시 시스템을 개선하는 문제에 대해 고심 중이다. 콘텐츠와 이러닝 메타데이터 표준화에 관심이 많으며, 공부하랴 도(?) 닦으랴 신부 탐색하랴 몸이 세 개가 되어도 부족한 지경이다.

김석준: 현 유스풀패러다임 대표로 웹2.0 기반의 소프트웨어 개발, 컨설팅을 하고 있다. ‘레일스레시피’, ‘레일스와 함께하는 애자일 웹 개발’(공역)을 번역했다. 한때 행정고시에 합격하고 재정경제부에서 근무하다 어릴 적부터 해 오던 프로그래밍의 맛을 잊을 수 없어 업종을 전환한 경력 때문에 주위로부터 특이하다는 말을 듣곤 한다. 끊임없이 새로워지려고 노력 중이다.

김용웅: 현대경제연구원에서 웹2.0을 온라인 교육에 적용한 이러닝2.0 기반 서비스들을 개발 중이다. 삶과 일의 균형을 이루고 가족, 친구, 동료들과 행복한 추억을 만들고자 노력 중이다.

박경태: 현대경제연구원에서 온라인 교육 시스템 지원 업무를 맡고 있다. 여러 언어 중 주특기를 루비로 결정하고 수련(?) 중이며, 직장인 밴드 '양지수 오부리즈'의 드럼 파트를 맡아 활동 중이다.

이해준: 현대경제연구원에서 e-HRD시스템을 RoR로 개발 중이다. 쉽고 간단한 온라인 콘텐츠 교환 방법에 대해 고민 중이며, 내년 4월 아빠가 된다.

*IBM developerWorks 개발자 인터뷰의 다음 인터뷰 대상자는 강규영 님입니다. 다음 인터뷰도 많은 기대 바랍니다.

[지난 인터뷰 보기]



위로


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

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

로컬 컨텐츠

행사 및 세미나

기획 기사

개발자 입문

튜토리얼 및 교육

TOP 10 인기자료

SW 다운로드

RSS 피드


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


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