티스토리 뷰

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 평소에 늘 가지고 있던 생각이지만 트위터에 한번 올렸더니 다들 많이 공감해서 정리삼아 블로그에 포스팅~



 나는 개인적으로 꽤 여러 개의 개인 프로젝트를 하고 있다. ZViewer(Win32 이미지 뷰어, C++), WimyBox(최신가요 듣기, JavaScript + Python), ZAssist(Visual Studio Addin, C#), ClipDic(Chrome 확장 사전, JavaScript) 정도가 그나마 내세울만한 것이고, 이외에도 작은 다양한 것들을 만들고 있다 - https://github.com/zelon

 물론 이 프로젝트들이 언제나 원활히 진행되는 것은 아니다. ZViewer 같은 것은 2004년부터 소스 관리를 시작했지만 중간에 1년 넘게 commit 이 없던 적도 있다. 언제나 내가 코딩을 하고 싶을 때만 작업을 시작한다.

 언제 코딩을 하고 싶을까? 내 개인 프로젝트들은 대부분 내가 쓰는 프로그램이다. 프로젝트 시작도 대부분 내가 '이런 프로그램이 있었으면 좋은데 찾기가 힘드네' 혹은 '이렇게, 이 기술/언어 재미있겠는데 해볼까' 라는 생각에서 출발한다. 그래서 내가 원하는 기능이 구현될 때까지는 열혈 코딩을 한다. 그러다가 어느 정도까지 완성되면 그 때부터는 나의 욕구가 내 프로젝트의 스펙이 된다. 만약 내가 이런이런 기능이 있으면 좋겠는데 싶으면 그냥 구현하는 거다. 구현해보다가 힘들면 그냥 놓아두기도 한다. 혹시나 누군가가 나에게 '이런 기능 있으면 좋겠어요~' 라고 한다면 또 구현해본다.

 반대로 내가 잘 쓰지 않게 되면 프로젝트의 진행이 멈추는 경우도 있다. ZViewer 같은 경우도, 얼마전에 노트북을 사면서 Windows 7 64bit 로 컴파일 시도도 해보고 했었고, 지금은 집에서 리눅스 데스크탑을 쓰고 있기 때문에 잘 안 쓰게 되었다. 그래서 프로젝트도 손 안대고 있고, 다만 어떻게 리눅스+윈도우 둘다 컴파일 되도록 해볼까 고려 중이다. wxwidget, qt 가 고려 중인데, 다른 우선순위에 밀려서 생각만 한번씩 해보는 중이다. 요렇게 64bit 로 프로젝트 운영도 해보고, 크로스 플랫폼 프로젝트 운영도 끄적여본다.


 나의 상황은 이정도이고, 이제 이렇게 개인 프로젝트를 가지면 어떤 점이 좋은지를 한번 정리해 보자.


 1. 재미가 있다(!!!) 코딩하는 게 무슨 재미냐고 할 수 있지만, 누구나 한번쯤 수학 시간(아니 산수 시간에라도)에 느껴본 '문제를 푸는 재미' 가 있다. 내가 원하는 프로그램이 있는데 내가 만들었다. 나에게 주어진, 문제를 푸는 재미가 있다.

 2. 나의 재미가 남에게 내세울 수 있는 경력이 될 수도 있다. 개인적으로 부러운 사람 중의 한명인 빵집 개발자. '나 빵집 만든 사람이야' 이러면 컴퓨터 좀 한다는 사람들 중에 모르는 사람이 있을까? 물론 그만큼 시간과 노력이 필요하겠지만, 개인 프로젝트의 목표로 삼으면 좋을 것 같다.

 3. 새로운 기술을 쉽게 익혀둘 수 있다. 막상 새로운 기술을 업무용 프로젝트에 갑자기 적용하려면 쉽지 않다. 누구나 겁도 나기 마련이다. 하지만 개인 프로젝트로 새로운 기술을 잠깐 맛만 보았더라도 좀 더 쉽게 적용할 수 있다. 한번이라도 Hello World 를 짜본 프로그램은 아무래도 쉽다. 개인 프로젝트니까 일단 저질러보자. 실행해보자. 내가 궁금해하는 기능이 잘 돌아가는지 해보자. 일단 해보면 남들이 좋다좋다 해도 단점도 눈에 띄일 것이다.

 4. 공부하기 쉽다. 프로그래머는 늘 공부하는 직업이다. 책만 보고 '아! 이런 좋은 방법이 있네. 다음에 써먹어봐야지' 라고 하는 사람은 책을 잘 보는 사람이다. 하지만 정말 제대로 익히려면 직접 한번 써보는게 최고다. 어디에 써볼까? 개인 프로젝트에 써보면 된다. 리팩토링 책을 읽고나서 무슨 코드라도 리팩토링하고 싶은 열정이 솟아나는데 리팩토링할 코드가 없다면??? 다른 사람의 오픈소스를 뜯어고칠 것인가? 왜? 내 코드 고치는 게 더욱 재미있을건데? 내 코드 발전하는 거 정말 좋은데~! 남의 소스 리팩토링하려면 소스 이해부터 해야하는데, 내 소스는 이미 내가 알고 있으니 방금 배운 기법을 바로 적용해볼 수 있다. 잘못 고쳐도 남이 뭐라고 하지도 않는다.

 5. 내 실력 향상의 척도가 될 수 있다. 몇년 전의 자신의 코드를 보면 누구나 '내가 예전에 왜 저렇게 코딩을 했을까' 라는 생각을 할 것이다. 지금의 나는 그 때보다는 아무래도 발전했을 테니... 그런데 예전 소스가 하나도 없다면? 소스 컨트롤 시스템과 함께하는 개인 프로젝트라면 회사를 옮겨도(회사 코드는 퇴사하면 내 손을 떠나니...) 개인의 코딩 실력의 변천사를 잘 가지고 다닐 수 있다. 나는 어느만큼 발전하고 있나... 5년 전의 나를 만나서 대화해보자. '너는 왜 그랬니 -_-'


 지금 바로 개인 프로젝트를 시작하자.

  




댓글
최근에 올라온 글
Total
Today
Yesterday