내가 개인 프로젝트를 하는 이유

나는 개인 프로젝트를 상당히 다양하게 진행하는 편이다. 프로젝트를 진행하면서 반드시 지키려고 노력하는 나와의 약속을 몇 가지 간추려보았다.

2020. 04. 20. #diary

트윗 사진

https://twitter.com/hellodhlyn/status/1252182954127749122

이 트윗이 RT를 타길래 내 생각을 좀 정리해보았다.

나는 개인 프로젝트를 상당히 다양하게 진행하는 편이다. 개인 프로젝트를 진행하면서 반드시 지키려고 노력하는 나와의 약속이 몇 가지 있는데, 중요한 것들을 간추려 보자면 다음과 같다.

가능한 새로운 기술 스택을 사용한다.

새로운 프로젝트를 시작할 때는 기존에 써본 적 없지만 당장 프로덕션에 도입하기는 애매한 신기술들을 사용해보려 하고 있다. 그 때문에 내 GitHub는 레포지토리마다 기술 스택이 아주 다양하다. 단순히 언어로만 따져도 십수 가지가 넘는다.

여기서 쌓은 경험은 추후 프로덕션에 어떤 기술을 도입하려고 할 때, 혹은 도입을 반대하려고 할 때 그 이유를 합리적이고 논리적으로 제시할 수 있는 바탕이 된다. 많은 개발자들이 컨퍼런스에서 본 최신 기술의 뽕에 취해서, 혹은 누가 써보니까 좋다더라 하는 풍문만을 듣고 신기술을 도입하려고 한다. 하지만 이 경우 기술 자체에만 주목한 채 정작 프로덕트에의 적합성은 뒷전이 되는 경우가 많다. 하지만 프로젝트 경험에 기반한 도입 결정은 충분히 합리적이며, 또한 동료 혹은 상사를 설득할 수 있는 강력한 무기가 되기도 한다.

단, 이것의 전제는 프로젝트의 목적이 완성품을 내놓는 것이 아닌 경우이다. 수준 높은 제품을 완성하는 것이 목표라면 익숙한 기술을 사용하는 것이 당연하다.

중간에 낌새가 이상해도 일단 끝까지 해본다.

개발을 하다 보면 중간쯤 와서 '뭔가 이상한데...?' 하는 싸한 느낌이 드는 경우가 많다. 본인이 기술에 미숙했을 수도 있고, 기술 자체가 아직 충분히 여물지 못했을 수도 있고, 기술과 프로젝트의 궁합이 나빴을 수도 있다.

하지만 어느 경우라도 끝까지 가보지 않으면 원인을 알 수 없다. 완성품을 만들고 되돌아보아야 그제야 '이러이러한 부분이 문제였구나' 하는 진단을 내릴 수 있다. 익숙함의 문제였다면 기술을 더 공부하면 된다. 기술 자체가 아직 프로덕션에 도입하기엔 모자랐다면 비슷한 철학의 더 발전된 대체재를 찾으면 된다. 프로젝트와의 궁합이 맞지 않았다면 과감히 손절하고 방향성을 틀어버려야 한다.

끝까지 달려 나온 결과물이 별로라면 완성도 면에서는 실패라고 생각할 수도 있다. 하지만 실패로부터 그 기술의 본질을 파악하게 되었다면 그 경험만으로도 개인 프로젝트 자체는 충분히 제 역할을 성공한 것이다.

본업을 침해해서는 안된다.

개인 프로젝트는 어디까지나 나의 능력 혹은 경험 향상이 목표이다. 여기에 시간과 체력을 너무 소비한 나머지 본업에 소홀해지면 그야말로 주객전도다. 때문에 막상 판을 벌려놓고 나니 체력 소모가 너무 커서 접은 프로젝트들도 꽤 된다.

-

많은 분들이 '퇴근하고 집에서 개발할 시간이 있어요?' 라고 묻는다. 나는 개인 프로젝트의 본질에 대한 관점의 차이 때문에 이러한 질문이 생긴다고 본다. 나에게 개인 프로젝트는 수준 높은 완성품을 만들기 위한 것이 아닌, 그저 자기 계발의 한 방법일 뿐이다. 프로그래밍은 빠른 속도로 발전하는 분야인 만큼 이 업계에서 살아남기 위해서는 끊임없이 새로운 기술을 공부해야 하고, 개인 프로젝트는 이론과 실무 어떤 면에서도 훌륭한 공부 방법이기 때문이다.

만약 이 글을 읽고 있는 여러분이 오래오래 개발 일을 하고 싶다면, 어떤 것이라도 좋으니 당장 개인 프로젝트를 시작해볼 것을 권한다. 실패할까, 끝맺음을 짓지 못할까 두려워 시작조차 않는다면 나중에 더 큰 대가가 돌아오게 될지도 모르는 일이다.

크리에이티브 커먼즈 라이선스

이 저작물은 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

© 2011 - 2020 Do Hoerin, LYnLab