Development

프로젝트 설계에 대한 단상

Polaris_ 2025. 11. 5. 01:19

최근에 혼자 프로젝트 하나를 진행했었다.

으레 그렇듯 포트폴리오를 채우기 위함이었고, 그러면서 겸사겸사 하나 해보고 싶은 아이디어가 있어서였다.

그렇게 프로젝트를 시작했는데, 시작하면서 든 생각이 '어디서부터 어디까지 설계를 하고 시작해야 하나?'였다.

물론 처음부터 끝까지 해놓고 시작하면 훨씬 수월하기야 하겠지만 어차피 혼자서 하는 건이기도 하고 기간도 1달 정도로 길게 가져갈 수 없었어서 토이프로젝트처럼 기능 구상이랑 대략적인 화면 설계, 백엔드 API 명세, 그리고 NestJS나 React 같은 핵심 기술 스택만 정해두고 추가로 필요한 것이 있다면 그때그때 추가하는 것으로 하고 시작했다.

 

결론부터 말해보면 저 계획은 실패했다. 기간도 두 달이 넘어가고 결과물도 처음 구상했던 것에서 많이 멀어지는 등(...) 계획이 보기 좋게 빗나가면서 결국에는 프로젝트는 구현하려는 기능 하나에 대한 해법이 도저히 생각이 나지 않아 해결될 때까지 무기한 동결되었다.

왜 그런가 하고 커밋 기록도 돌려보고 작업하면서 적어둔 노트도 읽어보며 반추해 보니 몇 가지 것들이 짚혔다.

오랜만에 해서 실력이 떨어진 점도 있었지만 결정적으로 저 '추가로 필요한 것은 그때그때 추가한다'가 큰 패착이었다.

확실한 설계 없이 기본 틀만 가지고 구현을 하려다 보니 즉흥적으로 무언가 하나씩 추가될 때마다 계획이 수시로 바뀌기도 하고, 기존 코드와 문제없이 엮기 위한 코드 수정과 이 과정에서 생긴 예상치 못한 오류를 수정하느라 했던 수많은 구글링과 디버깅이 시간을 생각보다 많이 잡아먹었던 것이다.

토이 프로젝트야 정해진 기간도 없고 누가 평가하고 뭐라 할 것도 없으니 그저 생각나는 대로 만들어도 큰 문제없이 결과물이 나왔었는데, 남들 앞에 보여주어야 하는 것을 하니 기존에 하던 방식으로는 통하지 않았고 오히려 독이 된 것이 아닐까.

팀 단위로 작업을 하면 그때는 어찌 됐든 간에 당연히 구체적인 설계를 하고 들어가지만, 혼자서 할 때는 그랬던 적이 잘 없었으니 하던 대로 해도 되겠지 했던 내 안일함이 문제가 아니었을까 반성도 해본다.

 

결론적으로 이번 프로젝트로 얻은 것은 기술적인 부분도 부분이겠지만 '프로젝트를 혼자 하는 일이 있더라도 설계는 마쳐놓고 시작하자'가 되겠다.

 

적고 보니 단상에서 자기반성이 되었네 쩝...


여담이지만 이번 프로젝트에 AI(ChatGPT, Gemini, Claude 등 안 써본 게 없다)를 적용해 보았는데 이것도 시간을 은근히 잡아먹는 요인 중 하나였다.

분명 작은 파츠들을 빠르게 짜주는데 이거를 가져다 쓰려고 하니 아직까지는 코드베이스 Context를 잘 이해를 못 하는 건지 가져다 쓰려고 하니 오만가지 버그가 터져서 해결법 찾고 그거 고치는 데만도 한세월이 걸렸다.

처음 다뤄보는 것이라 프롬프트 짜는 데에 서툴렀던 것도 있었겠지만 그렇다고 해도 써준 코드가 아무리 봐도 이상해서 물어보면 영 엉뚱한 답을 해대니 원 ㅡㅡ. 이럴 거였음 차라리 좀 귀찮아도 직접 짜는 게 빨랐지 싶다. 단순작업 줄여보려고 쓴 거였는데 오히려 공수가 늘어나 혹을 붙여버린 꼴이 되었다.