본문 바로가기
CodeStatesBootCamp/Review

Project Section - Main Project Week1 Review

by JKROH 2023. 7. 1.
반응형

 이번 주부터는 부트캠프의 마무리 단계인 메인 프로젝트에 돌입한다. 팀원이 랜덤으로 배정되고 스택 오버플로우의 클론 코딩이라는 주제가 정해져있던 프리 프로젝트와 달리, 메인 프로젝트는 팀원을 구성하는 것부터 프로젝트 기획까지의 부분을 스스로 정해야했다. 나는 사실 프로젝트의 기획에는 큰 관심이 없었다. 어떤 프로젝트를 해도 취업 준비생 레벨에서 활용 가치가 높거나 시장에서 가치를 평가받을만큼의 수준 높은 프로젝트 결과물이 나오기는 어렵지만, 대신 그 안에서 내가 얼마나 나의 역량을 보여줌과 동시에 강화할 수 있는지는 기획에 크게 영향받지 않는다고 판단해서였다. 팀원도 크게 신경쓰지 않았다. 다만 커뮤니케이션이 잘 될 것 같은 팀원들이 함께 했으면 했다.

 

 마침 운 좋게 프론트엔드의 한 분이 팀에 합류를 제안해주셨다. 해당 팀은 프로젝트 기획도 되어있고, 이미 디자인과 와이어 프레임 작성도 어느 정도 마친 상태였다. 작성해놓은 구현 할 기능도 프로젝트에서 기본적으로 갖춰야할 부분은 갖추고 있었다. 다만 백엔드 차원에서는 프로젝트의 난이도가 낮은 편이여서, 난이도를 좀 더 높이기 위해 필요한 기능은 무엇일까를 좀 더 고민해본 뒤 팀에 합류를 결정했다. 마침 백엔드 팀원을 더 구해야 하는 상태였기 때문에 회고 스터디 내에 아직 메인 프로젝트 팀을 구하지 못 한 두 분을 한 팀으로 데려왔다.

 

 지난 프리 프로젝트에서 설계 단계를 너무 빠르게 넘어가버려서, 이번 메인 프로젝트에서는 설계에 좀 더 신경을 썼다. 어떤 객체는 엔티티로 처리해야 하며, 어떤 객체는 그렇지 않아도 되는지. 엔티티와 엔티티 간의 관계는 어떻게 설정할 것인지. 현재 구현하기로 한 기능들을 바탕으로 각 객체의 역할과 책임은 어떻게 나눠야 하는지 등을 백엔드 팀원 분들과 이야기를 나누며 결정했다. 세부적인 구현 부를 제외하고 다양한 레벨에서 프로젝트를 바라보며 설계를 진행하는 것은 분명 오랜 시간을 요하고 어려운 작업이었지만, 이렇게 투자한 시간만큼 사고의 폭을 더 넓힐 수 있었다. 물론, 이렇게 투자한 시간만큼 구현의 시간이 더 감축될 것이라고도 생각한다.

 

 프리 프로젝트 기간은 2주가 채 되지 않는 짧은 시간 때문에 이런 시간을 갖지 못했지만, 요구사항을 바탕으로 모든 구성요소를 직접 판단하고 설계하는 과정은 오랜만에 개발하는 재미를 다시금 끌어올려줬다. 물론 내가 작성한 코드가 정상적으로 작동하는 모습을 바라보는 것도 충분히 즐겁지만, 그래도 여전히 세부적인 부분까지 직접 설계하는 재미에는 못 미친다. 일례로, 우리는 칵테일의 정보와 레시피 등을 제공하는 서비스를 제작하기로 했는데. 칵테일 레시피 자체가 하나의 엔티티로서 가장 큰 역할을 하는지(즉, 칵테일 == 레시피 가 되어야 하는지), 칵테일이라는 객체와 레시피라는 객체는 따로 존재하며 둘 모두 엔티티로서 1-1의 가치를 지니는지. 레시피는 칵테일에 종속되며 Embed되어야 하는지 등의 고민의 과정이 있었다. 또 다른 예시로는 댓글에 대댓글을 다는 기능을 구현할 때, 댓글과 대댓글은 같은 Comment객체로 보아야 하는지. 아니면 둘은 서로 다른 Comment와 Reply가 되어야 하는지 등을 논의하는 과정은 간만에 '내가 무언가 하고 있구나' 라는 실감이 나게 했다.

 

 어제 저녁에는 갑자기 프론트엔드 측에서 요구사항 수정을 요청하였다. 나와 팀원들 모두 해당 변경 사항이 서비스의 방향성에 더 올바르다고 판단하여 수정을 받아들였다. 오늘은 이러한 변화에 맞춰 기존의 설계 방안을 조금 수정하는 시간이 필요하다. 물론 어렵고 머리 아픈 시간이 될 것이다. 그러나 동시에 가장 즐거운 시간이 될 것임은 틀림없다.

반응형

댓글