<p> <font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif">우여곡절 끝에 입사하여, 회사가 아닌 후배들을 위하여 마무리 해주기 위해서, 프로그램을 작성하고 퇴직 준비를 하는 내용입니다.</font> </p> <p> <font face="gulim, Dotum, Helvetica, AppleGothic, sans-serif">실무 프로그램을 아시는 분이라면, 믿지 못하시겠다는 것이 정상입니다만 '실화'라는 것은 변함이 없습니다</font> </p> <p> <span style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;"> </span> </p> <p> <span style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;">게시판 사용 문제로 다른 분과 설전을 벌이기도 하고, 이곳 게시판이 너무 죽어 있기도 하고, </span> </p> <p> <span style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;">시작 한 이야기에서 모두다 올리지 못했지만, 초반부와 후반부 가장 중요한 부분은 올려서 일단 마무리 지으려고 합니다.</span> </p> <p> <span style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;">==================================================</span> </p> <p> <b>컴파일 씩이나 했다</b></p> <p> <br></p> <p>퇴사 관련하여 여러 상황이 있는 중에도, 개발 업무를 계속 진행하고 있었다.</p> <p>내가 개발한 모든 프로그램을 서버에 저장해두었다.</p> <p>그리고 내가 만든 관련 개발 문서도 서버로 저장했다.</p> <p> <br></p> <p>나 : "작업한 프로그램을 서버로 저장해 두었고, 여기 폴더에 관련 개발 문서 있으니 보면 되."</p> <p>후배 : "테스트는 다 하신 건가요?"</p> <p>나 : "아니, 내가 개발한 프로그램은 테스트 한 것이 하나도 없어."</p> <p> "<b>컴파일 씩이나 했어</b>."</p> <p>후배 : "뭐라 구요? 컴파일 씩이나 하셨다 구요."</p> <p>주변소리 : "헉, 그게 말이되."</p> <p> "시간이 없어서 어쩔 수 없었던 거야?"</p> <p> (개발자가 아닌 분들)"저게 무슨 뜻이에요?"</p> <p> <br></p> <p> <br></p> <p>한 달 안에 프로젝트를 완전히 끝내지는 못 한다. 그러나 후배들이 완료 가능하게 만들어 주고 싶었다.</p> <p>각각의 단독 기능들은 이미 다 설명을 해주었고, 잘 이해하고 있다. </p> <p>문제는 기능이 동작하는 프레임웍이 없는 것이 문제였다. </p> <p>초보 개발자들은 기능에 집중을 하는데, 고수가 되려면 기능들이 동작하는 프레임웍을 이해 해야 한다.</p> <p>내가 작업한 것은 기능 개발도 있지만, 전체 프로그램이 동작하기 위한 설계와 프레임웍이었다.</p> <p> <br></p> <p>실무개발자들은 컴파일만을 한 프로그램이 어떻게 문제가 없는지, 그리고 자신있게 공개 할 수 있는지에 대해서 질문 하실 것이다.</p> <p>미리 말씀 드리면 잔 버그는 있을 수 있다.</p> <p>'폭포수 방법론'에 따라서 개발하였기 때문인데, '요구사항', '프로그램설계', '프로그램개발'까지 하고 넘겨 준 것이다.</p> <p>세부기능 개발 마무리와 검증 단계를 남기고 넘겨준 것이다.</p> <p> <b>모든 요구사항과 기능을 직접 정했으니 알고 있는 것이 당연하고, 그것을 바탕으로 프로그램 설계와 프로그램 개발을 했다.</b> </p> <p> <br></p> <p>프로그램까지 한 번에 가능한 이유는 나도 잘 모른다.</p> <p>스스로 가능한 이유를 찾아 보면, 설계를 좀 더 디테일 하게 하였다는 것과 모짜르트의 일화 정도일 것이다.</p> <p>모짜르트가 작곡한 첫 악보는 깨끗했다고 한다. </p> <p>수정이 별로 없어서 깨끗한 것이다.</p> <p>어떻게 할지 머리 속에서 수정에 수정을 거쳐 고민한 후에, 정리된 음들을 악보에 기록하였을 것이다.</p> <p>그래서 악보가 깨끗한 것이다.</p> <p>손으로 그리는 건, 이미 정해진 것들을 머리 속에서 세상으로 끌어 내는 작업일 뿐이다.</p> <p>머리 속의 상상으로 모두 만들어진 것이다.</p> <p> <br></p> <p>타사의 경험으로 인하여 가능한 것이 아니었냐는 질문에 이렇게 답변을 드린다.</p> <p>통신 관련 경험, 차량관련 경험들은 있었으나, 이 프로젝트와 동일한 경험은 없었다.</p> <p>서버 전문설계 처음, stm32 칩 처음, HTTPS 처음... </p> <p>모듈하나 정도는 혼자서 개발한 경험은 있으나, 이 정도 규모의 프로젝트를 혼자서 설계한 것은 처음이다.</p> <p>오히려 이렇게 질문하고 싶다.</p> <p>이 회사에서 몇 년 씩이나 유사한 프로젝트를 개발해 오고 있는데, 그 분들은 왜 하지 못하는가? </p> <p> <br></p> <p>퇴사 전에 작업한 것에 관련하여 설명을 해주고, 후배 한 분은 내가 설명하는 것을 동영상으로 남겼다.</p> <p> <br></p> <p>"프로젝트가 쉽지는 않겠지만, 못 하지는 않을 거야." </p> <p>"너희 들이 지금까지 못 한 이유는 이게 없기 때문이야." 라고 후배들에게 이야기해 주었다.</p> <p> <br></p> <p>미주 향 프로젝트와 국내 향 리뉴얼 관련해서도 조언을 남겼다.</p> <p>"미주 향은 실체가 없어서 내가 뭐라고 할 수가 없어. 가장 좋은 방법은 호주 향과 동일하게 사양을 만드는 거야."</p> <p>"호주 향에서 개발된 것을, 미주향에서 거의 수정없이 사용하는 것을 제안해보긴 했지만, 안된다고 답변을 받았어."</p> <p> <br></p> <p>"국내 향 리뉴얼을 하게 되면 호주 향 성과물을 그냥 쓰면 안 되. 프로토콜이 달라서 동작 안 되는 부분들이 있을 거야."</p> <p>"처음에 아무런 사양도 나에게 주지 않아서, 국내 향 기준으로 설계하다가, 사양의 차이 때문에 모두 재설계를 했어. 그 만큼 많이 달라."</p> <p> <br></p> <p> <br></p> <p> <br></p> <p> <br></p> <p> <b> 제가 상상한 것을 현실화 시켰습니다</b></p> <p> <br></p> <p>퇴사 전에, 어떤 분이 호주 향 프로젝트를 어떻게 개발 했냐고 물어 봤다.</p> <p>이렇게 답변해 주었다.</p> <p> <br></p> <p> <b>"제가 상상한 것을 현실화 시켰습니다."</b> </p> <p> <br></p> <p>회사에서 개발한 기존 프로그램을 완전히 무시해버리고, 새로 만들어낸 호주 향이다.</p> <p>지금까지 국내 향 프로그램으로 이어지는 프로그램 계보가 있었고, 이제 호주 향 프로그램의 계보가 시작이 된 것이다.</p> <p> <br></p> <p>과거의 것을 가져오기는 했다. </p> <p>뭐가 잘 안되었다는 버그 리스트들.. 그것들을 모두 대비한 설계를 했으니 당연히 좋을 수 밖에...</p> <p>모두 삭제 하고 다시 시작했으니, 군더더기가 없어서 깔끔한 것이 당연하다.</p> <p> <br></p> <p>이전에도 다른 회사에서 프로젝트가 잘 마무리 되어서 '어떻게 했냐?'라고 질문을 받아 보기는 했다.</p> <p>'구글, 네이버에서 말하는 방법 이외는 사용한 것이 없다.'라고 대답을 해서 주었다.</p> <p>내 개발 인생의 처음으로 "구글, 네이버에서 말하는 방법 이외는 사용한 것이 없다"라는 답변을 사용할 수 없었다.</p> <p>협의 되지 않고 혼자 진행하는 프로그램 전체 리펙토링은 이론적으로 금기 하는 것인데, 그것을 성공 시켰다. </p>