공부위해서거나 포트폴리오를 준비하기 위해서 개인 프로젝트를 기획하고, 개발하는 사람이 많은데 어떻게 관리를 하시는지는 모르겠다.
내가 생각하기에 개인 프로젝트를 오랫동안 유지하고, 꾸준히 개발하기 위해서는 몇가지 준비 사항이 있어야 한다.
특히 바뻐서 신경쓰지 못하다가도 시간이 생겼을때 다시 착수하기 위해서 개발 환경에 대한 준비가 철저해야 한다.
1. 소스 관리: 회사에서나 집에서나, 아니면 산속에서라도? 틈날때마다 개발하기 위해서 인터넷으로 소스를 관리할 수 있어야 한다. 구글 코드나 네이버 개발자 사이트, kldp.net, 소스포지 등을 이용해서 코드를 유지한다.
2. 메모/기획 문서 관리: 언제 아이디어가 떠오를지 모르므로 언제나 접속해서 문서를 만들 수 있어야 한다. 소스 관리와 마찬가지로 구글이나 네이버,kldp 등의 위키를 사용해도 좋고, 개인 블로그나 홈페이지를 이용해도 좋다.
3. 데스크탑 환경 설정: .emacs나 .vimrc, .bashrc 등의 기본적인 환경 설정 파일은 코드와 같이 관리하는게 좋다. 틈틈히 개발하려면 환경 설정에 고민할 시간이 없다.
4. 문서화 먼저: 지금 컨디션이 좋아서 전부 개발할 수 있을것 같다가도, 잠깐사이에 다른 일들이 생겨서 중단해야할 경우가 많다. 코딩보다는 무엇을 어떻게 만들어야할지 간단하게라도 최종 목표를 메모하고 시작한다. 그래야 중단된 코드를 다시 작업할 때 내가 뭘 해야하는지 알 수 있다. 내가 만든 코드도 다시 읽고, 뭘 하던 것인지 이해하려면 한숨부터 나오고 시간적인 여유도 없다.
5. 항상 라이브러리화: 무엇이든지 최대한 라이브러리로 사용할 수 있도록 만들어야 한다. 어떤 프로젝트를 하던지 몇달 혹은 몇년씩 개발하다보면 예전에 만들었던 코드가 너무 맘에 안들고 어설퍼 보이게 된다. 수정하고 싶긴 하지만 너무 밀집도가 높다면 정말 마음이 괴로워지고 코딩할 마음도 안난다. 최대한 라이브러리로 따로따로 만들어서
밀집도를 낮춘다는 생각으로 개발해야한다. 조금 더 시간이 들더라도 점점 더 그게 편하다는 생각이 든다.
6. 최후에도 문서화: 작은 모듈이나 라이브러리를 만들면 문서화를 꼭 한다. 무엇을, 왜, 어떻게 만들었는지에 대해, 그리고 예제 코드 정도만 써놓아도 나중에 다시 코드를 재정비하거나 개선할 때 큰 도움, 특히 시간을 아끼는데 큰 도움이 된다.
결론은 오랜 시간동안 잠깐씩 개발하는데 효율을 높이기 위해 필요한 것들이다. 문서화와 모듈화가 중요하다.