머릿말

어느덧 이 블로그에 글을 작성하기 시작한 지 2년 가까운 시간이 되어 가고 있습니다.

지금까지 썻던 글 들을 되돌아 보면…
몇가지의 news를 소개하는 글을 제외하면 대부분이 기술적인 공부와 그 결과에 대한 정리 및 설명글이었던 것 같습니다.

이번에는 어느정도 주니어 개발자의 티를 벗어보려고 하는 시점에서 (현재기준 개발자로 일한지 만 4년째,, 조금 이른가?)
개인적으로 실패했던 경험에 대해 회고하고 기록해 함께 나눠보고자 합니다.

미리 말씀 드리자면 조금은 지루하고 고리타분한 이야기가 될 수도 있겠네요.

누구나 생각하는 개인 프로젝트

개발에 입문하게 되면 정확히는 모르겠지만 아마 대부분의 사람들이
개인 프로젝트를 진행 하고자 하는 것 같고, (그게 취미의 영역이든 상업의 영역이든)
설령 진행해보지 않았다 하더라도 주변 대다수의 개발자들과 이야기 해 보면 열망은 항상 가지고 있었던 것 같습니다.

저 역시도 그런 욕심이 있었기에 아주아주 다양하고 많은 개인 프로젝트를 “시작” 해 보았었습니다.
그러나 “끝”을 본 프로젝트는 지금 와서 생각해 보면 한두개 될까? 말까? 하는 것 같아요

왜 그랬을까? 하고 생각하며 지금까지 했었던 프로젝트들을 하나씩 떠들어 보면..
제 경우에는 대부분 이런 경향을 가졌던 것 같습니다.

시작은 창대하였으나 끝은 미약하리라..

무엇을 만들까? 보다 어떻게 만들까? 에 집중하다.

아무래도 개발자이다 보니 새로운 기술에 대한 욕심은 끝이 없고
뭔가 잘나가는 기술블로거나 개발자 분들의 글들을 읽다 보면 왠지 나만 뒤쳐지는것 같고 할 때가 많은 것 같습니다.

그러다 보니 간단한 개인 프로젝트를 할 때에도 저는

  • 무엇을 만들까? (얼마나 목적에 충실한 알찬 서비스를 만들어볼까?)

가 아니라,

  • 어떻게 만들까? (이번엔 어떤 신기술을 사용해서 내 기량을 한껏 발휘해볼까?)

에 집중하게 되었던 것 같다는 생각이 듭니다.

예를들어 한번은 제가 좋아하는 보드게임 관련 물품을 관리하는 서비스를 만들어 보려고 한 적이 있는데요,
보드게임용 카드에 씌우는 비닐(슬리브) 의 규격이 카드별로 다양해서 여러 종류를 사게 되는데, 이 카드를…

그러니까 한마디로 간단한 재고관리 시스템을 만들고자 했습니다.

그럼 여기서 중요한 포인트는

  • 재고를 얼마나 쉽게 관리할 수 있도록 할까?
  • 어떤 데이터를 어떻게 저장하면 좀 더 편리한 서비스가 될까?

에 초점이 맞춰져야 하는데

  • 서버는 이번엔 node.js로 만들어 볼까?
  • DB는 뭘로 하지..? RDBS는 너무 오버스펙인것 같고 요즘 no-sql이 대세라던데?
  • 프론트는 뭘로 하면 예쁠까? 유행한다는 react? vue?

쪽으로 자꾸만 생각이 기울더라는 것이지요.

그래도 잘 만들면 되는 거 아닌지

그렇습니다. 어떤길로 가더라도 결국 목적지에 도착하면 되는 것이긴 하겠지요

그러나 제 경험상 대부분의 경우에는 기술적으로 뭔가 더 많은 것을 도입하고자
이것저것 덕지덕지 붙여서 테스트해보고 하다 보니 (물론 이땐 재밌습니다. 얻는 것도 많구요)
일이 점점 산으로 가게 된다는 것이지요.

저는 간단히 혼자 사용할 재고관리 프로그램을 만들고 싶었는데
어느새 결과물을 대기업에서나 사용할 법한 멋진 어드민 페이지가 되어가고 있는 것입니다.

그렇게라도 만들어 진다면 다행, 많은 경우 새로운 기술을 익히고 테스트 해 보는데 지쳐
어느샌가 개인 프로젝트를 홀대하고, 더이상 진행 하지 않는 경우가 많았던 것 같습니다.

이정도 기술 공부 했으면 됐어.
이번에는 많이 배웠기도 하고.. 지금 프로젝트는 너무 너더분해졌으니
새로 프로젝트를 파서 깔끔하게 새로 시작해 보는거야! (근데 지금은 일단 쉬고)

와 같은 흐름을 지금까지 몇번이나 경험 했나 모르겠네요

내가 개인 프로젝트를 하는 목적은 뭘까?

여러번의 완성되지 못한 개인 프로젝트를 드라이브 한켠으로 묻어두면서
프로젝트를 시작하기 전에 이 질문을 먼저 하는 게 중요하다는 생각을 하게 되었습니다.

왜 할까?

아주 원론적이면서도 어려운 질문일 것 같아요.
그렇지만 개인 프로젝트를 진행하기에 앞서서 이 프로젝트로 인해 내가 무엇을 얻고자 하는지
또는 어떤 경험을 하고자 하는지에 대한 고민이 선행된다면..

이 글을 읽어주시는 고마우신 독자님들도 저 처럼 완성되지 못한 프로그램만 주구장창 만들기 보다는
남이 볼 때 별 볼일 없더라도, 미완이 아닌 완성된 하나의 프로그램을 만들어 볼 수 있지 않을까 생각 합니다.

물론, 저는 앞으로도 완성시키는 목적 보다는 배움의 목적이 좀 더 큰 개인 프로젝트를 진행할 것 같은 예감이 들지만요

firepizza's profile image

firepizza

2021-08-26 19:00

firepizza 님이 작성하신 글 더 보기