본문 바로가기

Developing Story

신입같지 않은 신입사원 D군 개발 관련 이야기

본 포스트는 2006/7/30 작성되었습니다.

휴가를 끝내고 집으로 돌아온 일요일 저녁.

더더욱 치열한 일상의 전쟁터가 준비되어 있다는 듯

지금은 모든 것이 평화롭고 편안하기만 합니다.

 

장마와 집중호우로 고통을 겪고 계신 분들께는 정말이지 죄송한 말이지만

모처럼 일주일을 한적한 시골에서 반가운 얼굴들과 맛있는 음식도 먹고

음악도 듣고 책도 두 권 읽고 왔습니다. (책은 정말이지 오랜만입니다.)

한 가지 아쉬운 점이 있다면 장마로 인해 날씨가 그렇게 덥지 않아

피서다운 피서를 못하고 바닷물에 발 한 번 담그지 못하고 돌아온 것이

아쉬움으로 남습니다. 오늘로서 기나긴 장마가 끝이 나고 내일부터 무더위가

시작된다니 어제부터 실질적인 휴가가 시작된 우리의 팀원 D군은 피서다운

피서를 만끽하고 다음 주 월요일 개발자의 상징인 시체같이 하얀 얼굴을 벗어 던지고

검게 탄 건강한 피부를 우리에게 보여주기 바랍니다.

 

작년 가을 우리 팀은 개발자를 한 명 보충하기로 결정내렸습니다.

뭐 팀이라 해봐야 저하고 K군 달랑 둘 뿐이었습니다.

프로젝트 일정이 바빠서 팀원 보충을 결정한 건 아니었습니다.

당시 우리 팀의 수입은 규칙적이진 않았지만 우리 두 사람이 나눠 가져

가고도 한 사람의 인건비 정도는 남길 여유가 되었습니다.

그래서 우리는 경력 직원이 필요 없었습니다.

미래를 위하여 자신을 기꺼이 내던지고 개발에 대한 열정으로 가득찬

젊음이 있다면 그것으로 충분했습니다.

 

몇 명의 지원자를 대상으로 면접을 보았습니다.

지금의 D군을 면접보기 전에 한 지원자를 면접 보았는데

꽤 괜찮아 보였습니다. 대학을 졸업하고 비트캠퍼스를 수료하여

약간의 시행착오는 예상되지만 입사 직후 바로 실무에 투입해도

괜찮을 듯 보였습니다. 자기 주관도 뚜렷했고 인상도 좋아 보였습니다.

그러나 희망 연봉에서 걸렸습니다. 결코 그리 높은 연봉을 원하는건

아니었습니다. 다른 벤쳐기업에 비해서 약간 높은 수준이었지

금액 자체는 결코 많은 금액은 아니었습니다.

(아마 이 글을 여기까지 읽는 독자분들은 이 쪽 임금 수준에 대해 아실 듯... ^^)

만일 우리가 급하게 실무에 적용할 개발자가 필요했다면 아마 그 사람을

채용했을 것입니다. 그러나 우리는 급할 것이 하나도 없었습니다.

 

몇일 뒤 D군을 면접보았습니다.

C 언어 문법과 클래스 개념만을 정확히 이해하고 있었을 뿐 Win32 프로그래밍

이라곤 간단한 대화상자만 만질줄 아는 말그대로 진짜 초짜였습니다.

어쨋든 우리는 D군을 면접자리에서 바로 채용했습니다.

(지금 생각해보면 많은 이력서와 잦은 면접으로 약간 지쳐있기도 했던것 같습니다.)

 

첫 달은 한 달 내내 "Visual C++ 완벽가이드"라는 책만 읽게 했습니다.

내용이 이해되건 이해되지 않건 상관없이 책 속의 모든 코드를 코딩하게 하고

컴파일과 실행까지 시켜 책속의 결과와 일치하는 지를 반드시 확인하도록 했습니다.

처음에는 진도가 잘 나가는듯 했으나 약속된 한달이라는 기간이 다가오자

버거워 하더군요 그래서 나중에 읽어도 되는 Chapter 몇개를 지적해주고

그 부분은 제외하고  읽게 했습니다. 어찌 됐던 한 달 동안 주어진 과업을

완수했고 다음으로 어떤 책을 읽게 할까 고민하던 중

우리 팀에서 수행하던 프로젝트에 주어진 양식으로 데이터베이스의 데이터를

프린터로 출력하는 기능이 필요했습니다.

데이터 출력. 초보자에게 맡기기 딱 좋은 기능이죠.

Printer DC를 뽑아 내서 GDI 함수를 이용해서 어쩌고 저쩌고....

약간의 기술적인 내용과 함께 기능 명세를 메모해 줬습니다.

약 2주일 후 아주 말끔한 양식으로 데이터와 함께 레이저 프린터에서

출력물이 출력되는 기능을 눈으로 확인했습니다.

여기까지만 해도 저는 별로 놀라지 않았습니다.

그런데 소스를 보는 순간 저는 제 눈을 의심했습니다.

6개의 서로 다른 프린터 양식에서 공통되는 부분을 베이스 클래스로 만들어

각각의 클래스에서 상속받도록 하였고 virtual 함수를 적절히 사용하여

아주 깔끔한 객체 지향 코딩을 구현하였더군요

C++에 조금이라도 경험이 있는 분이시라면 뭐 그정도를 가지고 호들갑이냐 하시겠지만

과연 여러분들이 초보자일 때 그런 코딩이 가능했겠습니까? 글쎄요. 저는 영 자신없습니다.

코드 어디에서도 아마츄어 냄새나 초보의 흔적을 찾아 볼 수 없었습니다.

순간 저는 속으로 외쳤죠! (이거 왠 횡재야??? !!!)

 

저는 휴가를 가기 전에 책 6권을 주문 헸었습니다.

조엘온소프트웨어 / 조엘온소프트웨어 베스트 29선 / Refectoring / GoF의 디자인 패턴 / Test-Driven Development / The Art of Project Management

그 중 조엘온소프트웨어 / 조엘온소프트웨어 베스트 29선 이 두 권을 이번 휴가 동안 읽었습니다.

저는 원래 책을 잘 보는 편이 아닙니다.

모든 해결책은 MSDN 과 샘플 코드에 다 있었거던요

제가 본 마지막 기술서적은 93년도에 Turbo C++ Library Reference 원서를

9개월 동안 읽은 것이 마지막입니다.

물론 지금까지 중간중간 몇 권의 기술서적으로 레퍼런스용으로 필요한 부분만

읽긴 했습니다만 대부분 MSDN 또는 도움말 ,  샘플 코드로 문제를 해결해 왔습니다.

저는 사실 MSDN 의 DrawCli 라는 샘플로 객체지향 프로그래밍을 이해하기

시작했으며 여러 프로젝트를 통하여 그것을 흉내내는 방법으로 객체지향

개발 방법론을 나름대로 구축해왔습니다.

필요에 의해 델파이를 공부할때는 책한권 보지 않고 도움말과 샘플 코드만으로

당시 프로젝트에서 요구되는 기능을 구현할 수 있었습니다. 그 이후 5년 동안

델파이를 이용한 프로젝트를 진행하기도 했습니다. 사실 델파이는 그 툴이

워낙 훌륭했습니다.

.Net이 처음 나왔을 때는 PopCorn 이라는 윈폼 컴포넌트를

(http://www.joonsoft.com/4Dev/PopCorn/default.htm)만드는 것으로 C#을 공부했고

보드게시판(http://www.joonsoft.com/4Dev/dotNetBoard/intro.htm)만들어 보는 것으로 ASP.Net 을 공부했으며, 이들 두 가지로 .Net Framework를 접해볼 수 있어지요. 하지만 여전히 제 주력 무기는 Visual C++입니다.

제가 책을 잘 안보게 되는 또 하나의 이유는 바로 번역 때문이었습니다.

90년대만 해도 번역은 정말 형편없었습니다,

그렇다고 원서를 보자니 시간이 너무 많이 걸리더군요

Turbo C++ Library Reference 원서를 읽던 학창시절이라면 모를까...

요즘 나온 책들은 번역이 좀 나아졌더군요. 특히 조엘 책은 번역이 아주

뛰어 났습니다,

 

제가 휴가 전에 주문한 모든 책들은 바로 D군이 추천한 것입니다.

10여년 동안 우물안 개구리로 갇혀 고객의 요구사항 처리에만 급급하여

세상이 어떻게 돌아가는지도 모르는체 C++ 문법과 Win32 API, MFC 만 가지고

조작거리던 저에게 이렇게 훌륭한 책들을 소개해준 D군에게 감사의  마음을 전합니다.

 

신입이지만 결코 신입같지 않은 D군....

여러분 팀장이라고 해서, 경력이 좀 많다고 해서 자만하지 맙시다.

신입사원에게서도 배울 것은 배웁시다.

 

이제 저에게 남은 과제는 D군이 소개해준 나머지 책들을 읽고

우리의 현실에 맞으면서도 장점을 가진 개념들을 어떻게 찾아내고

어떻게 우리의 개발업무에 적용시키는지가 남았습니다.

작은 것 부타 차근차근 실행해 볼 참입니다.

 

여러분도 함께 하시죠? ^^