2010년 12월 19일 일요일

개발에서 사소한지만 중요한 것들

요즘 사소하지만 그냥 넘어가서 후회 했던 일들을 반성하면 몇가지 적어봅니다.
다음 번에 또 똑같은 문제를 겪지 않기 위해서 말입니다.

1. 빌드/테스트/커밋/CI 과정은 최대한 편하고 간단하게.

빌드는 언제든지 한번에 모든 걸 빌드/리빌드 가능한 스크립트가 있어야 합니다.
뭔가 이상하면 탁 리빌드 누르고, 차한잔또는 책한챕터 읽는게 최고이지요!!.

테스트는 처음부터 고려된 것이 마음 편하지만, 또 그게 쉽지는 않은 경우가 많아서 regression test 라도 반드시 있으면 좋은 거 같습니다.(한번버그 생기면 관련 테스트코드를 만들어서 고치고 남겨서 다음에는 자동으로 테스트 하도록)

커밋은 obj,ncb 파일이니 이상한 것들 안 딸려올라가도록 자동으로 세팅해두고, 혹시라도 올라가면 사용자에게 반드시 이메일을 주는 것이 좋은 듯 합니다. 지워주센..=_=

CI 는 대략 커밋하고 5분내에 리포트를 받을 수 있는 것이 좋은 거 같습니다. 이거 기다리는 게 오래 걸리면 이래저래 귀찮아지지요. 그리고 CI가 실패일때는 다른 사람이 커밋/업데이트하지 못하도록 간단하게라도 해두면 좋은 거 같습니다. 빌드 안되는 거 업데이트 받는 거처럼 개발 의욕을 꺾는 건 없지요;;ㅎㅎ

2. 개발자의 자유시간 확보.
하다보면 조금만 이렇게 하면 효율성이 확 좋아질 거 같은데 도저히 건드릴 수가 없는 부분이 있습니다. 상사가 개발한 부분이거나, 시간이 좀 걸린다거나 하는 부분 말이져.  개인의 이런 아이디어는 상당히 소중하다고 생각합니다. 결국 1%라도 효율이 좋아지도록 생각하면서 회사도 개인도 발전하는 거니까요. 그런 면에서 구글처럼 까지는 못하더라도, 일주일중 어느 정도 시간은 하고 싶은 쪽 하센!! 이런 게 좋은듯 합니다.

3. Think Hard!!
대충 생각하고 대충 짜보고 대충 컴파일 해보고 다시 수정하고, 되면 넘어가고, 이런 것처럼 위험한 코딩은 없다고 생각합니다. 당장은 별 무리 없겠지만, 일단 프로그래머 본인 자체에게 치명타입니다. 생각을 한만큼 코딩이 느는거니까요. 저도 한때는 코딩하기 싫어서 대충 저렇게 한적이 있었는데 버그나 구조적 불합리합은 둘째치고 실력이 오히려 줄고 있는듯한 느낌이 들 정도였습니다.(뭐 따로 공부를 안한면도 크겠지만요)
따라서 아무리 사소한 걸 짜더라도 깊이 생각하고, 좀 더 좋은 방법은 없는 지 고민하고, 좀 더 재미난 방법이 없는지도 고민하면서 프로그래밍의 깊이와 즐거움도 느끼고, 본인의 실력도 향상시키고, 더불어 남이 보기도 좋은 코드를 짜면 1석3조라고 생각합니다.!!!

4. 새로운 툴/언어 등의 적용
처음 플밍 시작할때는 누구나 새로운 툴,언어 또는 재미난 오픈소스를 좋아합니다만, 시간이 지날 수록 귀찮아집니다. 역설적으로 이는 현재 사용중인 언어와 툴을 너무 잘해서-ㅅ-편해져서 그렇지 않을까 싶습니다.(아직도 VS 6.0 쓰는데는 해킹쪽 빼곤 없겠지요? 전 2007년까지 봤습니다.;; ) 그러나 새로운 걸 배우기 귀찮아하는 순간 우리는 퇴보하는게 아닐 까 싶습니다. 끊임없이 코딩이 재밌고, 우리 코딩 열정의 아궁이에 남은 씨를 꺼트리지 않으려면, 새로운 걸 계속 배우는 게 중요하지 않을 까 싶습니다. 여기서도 보면 Quick Learner 를 상당히 중요시하는 거 같습니다.