“전설의 Hello World 를 출력하라”
일주일이 지나고 비오는 월요일 되었습니다.
제 머리 스타일이 변했습니다. 후훗..!!!
얼굴이 더 커보여서.. 웃기네요.. ㅋㅋ

오늘은 새로운 한주간의 미션을 정의 합니다.
기본적인 요구사항 분석 을 마무리 하였습니다.
개발 시퀀스 정의도 완료 하였습니다.
필요한 데이터에 대한 부분도 필요한 부분까지 확인이 완료 되었습니다.
이제 전체적인 시퀀스에서 80%는 진행이 되었습니다.
코드를 한줄도 없이 80%가 진행 되었다니.. ^^ 놀랍습니다.
다들 아시겠지만 전체 프로젝트로 봤을때 코드개발에 들어가는 시간이 가장 짧은 부분입니다.
우리는 코딩이라는 실제 구현을 통해서 목표로 했던 결과를 도출 할 수 있는지 실행하는 단계로 접어 듭니다.
자~ 여기서 우리는 함께 개발을 진행하기 위해서 모두 동일한 환경을 만드는 작업을 진행 하려 합니다.
오늘 우리는 일주일 동안 기본적인 환경 세팅을 마무리 하고 실제 전설의 “helloworld” 를 출력 하려 합니다.
목표는 금요일까지 helloworld를 출력하는 것이 목표입니다.
너무 단순한 목표를 일주일이나 잡는지 의문을 가질 수 있습니다.
이제 우리는 이 단순한 출력 하나를 위해서 모두의 합의 과정을 만들어야 합니다.
- 개발언어에 대한 확정
- 개발 하려고 하는 미들웨어 프로젝트명 “맥도널드데몬” 에 가장 적합한 개발 언어를 선택합니다.
- 포기한 언어들은 왜 포기 했는지에 대한 서로간의 합의도 도출해야 합니다.
- 코드 공유는 어떻게 할 것인가?
- 형상관리는 어떤것을 어떻게 사용할 것인가?
- 각자 개발 하는 부분을 어떻게 공유 할 것인가?
- 코딩컨벤션에 대한 정의 만들기
- 여러명이 작성하는 코드지만, 1명이 작성한것처럼 보여야 합니다.
- 변수, 함수, 클래스, 등의 이름을 짓는 방법에 대해서 정의 합니다.
- 주석은 어떻게 작성을 할지 어떤 내용을 추가적으로 넣어야 할지 정의 합니다.
- API 문서를 만든다고 했을때 공유 문서는 어떻게 작성할지..
개발을 하기 위해서 코드에 작성되는 법칙을 모든것을 정의 합니다.
단 정의되지 못한 부분은 개발 시 해당 문서에 더욱 추가를 합니다.
코딩컨벤션을 작성하는 부분이 얼마나 중요하고, 추후 이부분이 나의 워라벨을 지킬 수 있다는 부분을 알아야 합니다.
- 테스트 주도의 개발을 진행하기 위해서 필요한 것을 생각해 봅니다.
- 당장의 개발 범위에서는 삭제 했습니다.
- 하지만 단위테스트에 대한 정의를 해 봅니다.
- 단위 테스트 및 시퀀스 별 테스트에 대한 부분이 어떻게 진행 되는지 확인 하고 알아 봅니다.
- 공통으로 사용할 상수, 도메인 정의 , 에러 정의 등등 Common Config 를 정의 합니다.
위의 부분이 정의가 마무리 되면
- 개발언어
- 프램워크
- 코딩컨벤션
- 테스팅
- 이슈트래킹
- 공유 및 배포
- 환경 설정
등이 마무리 됩니다.
치열하게 고민하면서 작성된 맥도날드프로젝트의 코딩 컨벤션들의 정의 부분입니다.
물론 이 모든건 전 1도 도와 드린적이 없습니다.
스스로 정의 하고, 개발하다 보면 잘 정의 한것인지, 아닌지 다시 우당탕탕 하면서 수정하게 될 것입니다.
사실 이부분이 가장 중요합니다. ^^

이 단계를 진행하는 이유는
일반적으로 회사에는 위의 부분이 다들 정의 되어 있습니다.
자신들의 서비스에 맞게 최대한 상세하고 합의된 지점들을 위키 형태로 다들 가지고 있습니다.이 작업이 개발을 하기 위해서 얼마나 중요한지 알고, 회사를 선택할때, 이런 부분들이 얼마나 잘되어 있는지에 대해서 생각을 해 봐야 합니다.
정말 좋은 개발 문화 , 성장하는 문화는 이런 작은 디테일에서 부터 시작 합니다.
사실 이런 부분을 알려 주고 싶었습니다.
작성자 : 이호준 ( hojun.lee@innoaca.kr )