[네이버 부스트캠프 웹・모바일 10기 멤버십] 그룹 프로젝트 1~3주차 회고
아이디어 선정부터 시니어 피드백을 거쳐 MVP 구현까지, 그룹 프로젝트의 기틀을 다지며 겪은 시행착오와 기술적 도전의 기록
- #회고
- #네이버 부스트캠프
댓글
입력한 비밀번호는 비밀 댓글 열람, 수정, 삭제에 사용됩니다.
아직 등록된 댓글이 없습니다.
아이디어 선정부터 시니어 피드백을 거쳐 MVP 구현까지, 그룹 프로젝트의 기틀을 다지며 겪은 시행착오와 기술적 도전의 기록
입력한 비밀번호는 비밀 댓글 열람, 수정, 삭제에 사용됩니다.
아직 등록된 댓글이 없습니다.
링크 정보를 불러오는 중...
그룹 프로젝트 3주차 주말이 끝나간다. 원래는 프로젝트가 모두 끝난 뒤 마지막 회고를 쓰려고 했지만, 주차별 회고를 공유해주시는 캠퍼 분들의 글에서 많은 도움을 받았기 때문에 중간 회고를 남겨본다.
현재까지 프로젝트는 다음과 같은 흐름으로 진행 중이다.
첫날은 새로운 팀원들을 만나 서로 소개하는 시간을 가졌다. 레포지토리를 생성하고 기본 세팅을 했지만, 낮 시간에는 다른 세션이 있어 깊은 논의보다는 가볍게 인사와 방향성만 나누고 다음 날 본격적으로 주제를 정하기로 했다.

각자 준비해온 아이디어를 공유하고 후보를 추렸다. 나는 네 가지 정도의 아이디어를 준비했는데, 대부분 다음과 같은 이유로 애매했다.
이미 잘 만들어진 서비스가 너무 많다 보니, 프로젝트 주제를 정하는 일이 점점 더 어려워지고 있다는 생각이 들었다.
내가 이번 기간 동안 하고 싶은 것은 실제 사용자가 있는 의미 있는 서비스를 만드는 것이기도 하지만, 그보다는 조금 더 도전적인 시도를 해볼 수 있는 프로젝트를 경험하는 것이었다. 단순히 구현만 하고 의미 없이 끝나는 프로젝트는 원하지 않았고, 두 가지를 모두 만족시키는 방향을 찾고 싶었다.
처음 가져온 아이디어 중 이런 조건을 만족하는 것은 하나 정도였는데, 주제와 확장성은 좋았지만 한 달 이상의 시간을 투자하기에는 우리 팀원들의 역량 대비 너무 단순하다는 고민이 있었다. 그러던 중 쉬는 시간에 새로운 아이디어가 떠올랐고, 팀원들도 긍정적으로 반응해주었다.
기존에 내가 잘 사용하던 두 개의 앱을 참고해, 우리 상황에 맞게 키워드와 맥락을 재조합한 아이디어를 만들었다. 이를 바탕으로 제공받은 스프린트 자료에 맞춰 아이디어를 확장·정리하며 최종 주제를 확정했다.
완전히 새로운 서비스라고 말하기는 어렵지만, 팀원 각자의 목표와 방향성에 부합하는 선택이었고 결과적으로 모두가 만족할 수 있는 주제였다.
링크 정보를 불러오는 중...
둘째 날과 셋째 날에는 컨벤션 정리에 집중했다. 이전 스프린트 팀에서 사용했던 방식과 그때 느꼈던 장단점을 기준으로, 내가 준비해온 컨벤션 초안을 팀원들과 함께 수정·보완해 확정했다.
이를 위키에 정리했고, 첫 주차부터 위키를 중심으로 팀 문서를 관리한 점은 정말 잘한 선택이었다고 느낀다. 프로젝트 기본 세팅도 마무리했고, 이번에는 Husky를 도입해 컨벤션 검사와 PR 전 lint 체크를 자동화했다. 팀 전체의 코드 품질을 유지하는 데 꽤 효과적인 도입이었다.
우리가 만든 기획서를 바탕으로 다른 팀들과 데모 및 피드백 시간을 가졌다. 다른 팀의 캠퍼 분들이 적극적으로 피드백을 주셔서, 우리가 생각하지 못했던 사용자 관점과 방향성을 다시 점검할 수 있었다.
스스로는 타겟팅을 나름 잘했다고 생각했지만, 실제 사용자 입장에서 보니 타겟을 조금 더 좁게 잡고 확실하게 확장할 여지도 많다는 걸 느꼈다. 이 시간이 개인적으로 굉장히 의미 있었다.
좋았던 점
아쉬웠던 점

2주차에는 내가 만든 디자인을 바탕으로 프로토타입 구현에 집중했고, 시니어 피드백을 앞두고 지금까지의 계획을 하나의 문서로 정리하는 작업을 진행했다.
디자인 과정에서 처음으로 Figma Make를 사용해봤는데, 퀄리티가 생각보다 훨씬 높아서 놀랐다. 이전 프로젝트까지는 화면 하나하나 직접 디자인을 구현했는데, Make를 활용하니 React와 Tailwind 기반으로 구조가 잘 나뉜 결과물이 나왔다.
'이 정도면 프론트엔드가 필요 없지 않나?'라는 생각이 잠깐 들 정도였다. 다만 원하는 대로 구현되지 않는 부분은 먼저 Gemini와 함께 시각적 가이드를 잡고, Figma Make를 거친 뒤 내가 다시 수정하는 방식으로 정리했다.
이번 주차는 프로토타입 단계였기 때문에 Cursor AI를 활용해 기본 화면들을 빠르게 구현했다. 물론 완성도가 낮은 페이지들은 하나씩 다시 손을 봐야 했지만, 아이디어를 빠르게 형태로 꺼내볼 수 있다는 점에서 굉장히 효율적인 경험이었다.
이번 주차에는 팀원들과 첫 오프라인 모임을 가졌다. 그동안 온라인 팀플에 익숙해서 오프라인의 필요성을 크게 느끼지 못했는데, 온라인으로 5시간 걸릴 것 같은 작업을 오프라인에서는 2시간 만에 끝낼 수 있었다. 확실히 집중도와 속도가 다르다는 걸 체감했다.
특히 기능적 요구사항과 유저 플로우 정리에 강점이 있는 팀원이 있어, 아이디어를 훨씬 명확하게 구조화할 수 있었던 점도 인상 깊었다.
주차 말에 받은 시니어 피드백의 핵심은 "아직 전체 계획이 두루뭉실하다" 는 것이었다.
우리는 충분히 논의했다고 생각했지만, 팀원 각자가 중요하게 생각하는 포인트, 구현해보고 싶은 방향, 중요도가 다르다는 점이 드러났다. 이 상태로 가면 방향이 쉽게 흐트러질 수 있겠다는 위기감도 들었다.
그동안 우리는 CS 퀴즈의 퀄리티를 높이는 것, 그리고 사용자가 서비스를 사용하는 데 필요한 기본적인 페이지들(메인페이지, 퀴즈페이지, 설명 페이지, 마이페이지, 설정 등)을 구현하는 것에 집중하고 있었다.
CS 퀴즈라는 도메인 특성상 문제의 질이 곧 서비스의 신뢰도와 직결된다고 생각했고, 개인화된 학습 경험을 제공하려면 사용자 정보를 다루는 페이지 역시 필수적이라고 판단했기 때문이다. 그래서 “이 정도는 먼저 만들어 두는 게 맞겠다”라는 기준으로 기능 우선순위를 잡아왔다.
하지만 시니어분께서는 우리가 작성한 기획서를 보시고,
“구현할 수 있는 것들 위주로만 선택하면서 너무 쉽게 가고 있는 것 같다” 는 피드백을 주셨다.
이 말은 단순히 기본 기능을 만들지 말라는 뜻이 아니라, 지금 우리가 집중하고 있는 요소들만으로는 기존 CS 퀴즈 서비스들과의 차별점이 잘 보이지 않고, 팀의 역량에 비해 도전 수준이 낮아 보일 수 있다는 지적에 가까웠다.
사실 이 부분은 나 역시 계속해서 고민하고 있던 지점이었다.
지금 구현이 비교적 쉬운 기능들로만 채우고 있는 건 아닌지, 이 방식이 팀원들의 역량을 충분히 활용하는 선택인지 스스로에게 계속 질문하고 있었다.
이 맥락에서 시니어분께서는 꼭 프로젝트에 필수적인 기능이 아니더라도,
우리 팀이 기술적으로 도전할 수 있고 동시에 서비스를 더 매력적으로 만들 수 있는 ‘와우 포인트가 무엇인지’를 먼저 고민해보라고 조언해주셨다.
시간이 지날수록 사람은 지치기 마련이니, 오히려 초반에 기술적으로 도전적인 부분을 먼저 구현하고, 다른 팀들에게 유저 테스트를 받으면서 업그레이드 시키는 것이 더 낫다는 말도 인상 깊었다.
마이페이지나 설정 같은 기능은 나중에도 충분히 만들 수 있으니, 완성도보다는 도전을 먼저 해보는 방향으로 팀의 생각도 조금씩 바뀌게 되었다.
이 과정에서 자연스럽게 나온 질문이 “기술적 도전이 중요한가, 서비스의 의미가 중요한가?”였는데, 결론은 둘 중 하나를 고르는 것이 아니라 서비스에 반드시 필요하면서도 충분히 기술적 도전이 되는 지점을 찾아야 한다는 것이었다.
개인적으로는 그 지점 중 하나가 캐릭터 활용일 수 있겠다는 생각을 계속 하고 있었다.
디자인과 캐릭터는 나에게 의미가 깊은 분야라서 욕심이 나는 영역이지만, 과연 여기에 시간을 투자하는 것이 프로젝트에 의미가 있을지 확신이 서지 않아 망설이고 있었다.
다행히 시니어 피드백에서는 우리가 차별점으로 삼고자 하는 요소라면 충분히 구현해볼 가치가 있고, 오히려 적극적으로 활용해보는 것이 좋겠다는 이야기를 들을 수 있었다.
캐릭터 자체가 필수 기능은 아니더라도, 서비스를 차별화하고 팀의 도전 수준을 끌어올리기 위한 장치로는 충분히 의미가 있다는 판단이었다.
결국 이 피드백의 핵심은 기본 기능 구현에만 머물러 있다 보면 기존 서비스와 점점 비슷해질 수 있으니, 와우 포인트를 먼저 드러내고 그 위에 기능을 쌓아가라는 메시지였다고 이해하게 되었다.
다만 캐릭터를 2D로 갈지, 3D로 갈지에 대한 구체적인 결론까지는 내리지 못한 채, 이 고민을 안고 인터미션으로 넘어가게 되었다.
좋았던 점
아쉬운 점
인터미션 기간에는 생각보다 많은 시간을 확보하지 못했다. 약속들이 계속 있었고, 깊게 공부하기는 어려웠다.
그럼에도 운 좋게 Three.js 강의를 들을 기회가 있었고, 기존에 Blender로만 보던 것을 코드로 구현하는 경험은 굉장히 신선했다. 내가 맡은 영역인 만큼, 2D와 3D 캐릭터를 어느 정도 형태로라도 구현해 보여주고 싶어 시간을 투자했다.
슬랙을 보면 인터미션에도 스터디를 꾸려 각자 공부하고 발표하는 팀원들이 많았는데, 그 모습을 보며 이 캠프에 들어온 것이 정말 행운이라는 생각이 들었다. 동시에 나도 더 열심히 해야겠다는 자극을 많이 받았다.
캠프 마무리가 다가올수록, 앞으로 더 깊이 공부하려면 어떤 환경을 만들어야 할지, 스터디를 꾸리는 게 좋을지 등 개인적인 고민도 많아졌다.
3주차 초반에는 오랜만에 모인 만큼 다시 워밍업하는 시간이 필요했다. 이전 피드백들을 종합해 프로젝트의 방향성을 다시 설정했고, 우리가 선택한 아이디어들에 대해 우선순위를 명확히 정리했다.
개인적으로는 보상 시스템처럼 당장 구현에 필요하지 않더라도, 팀원 모두가 서비스 구조를 동일하게 이해할 수 있도록 정리가 필요하다고 생각해 이를 제안했다. 다행히 의견이 잘 모아졌고, 굉장히 의미 있는 논의였다.
회의에서 오간 내용들이 제대로 기록되지 않는 점이 계속 아쉬워, 이번에는 처음으로 Slack 허들 스크립트를 정리하는 방식을 도입했다. 확실히 기록이 남으니 이전 논의 맥락을 파악하기가 훨씬 수월했다.
이후에는 MVP 범위를 기준으로 우선순위를 확정하고, 이틀 동안 빠르게 구현하는 시간을 가졌다. 테스트와 스토리북을 적극적으로 활용한 프로젝트는 처음이라 어색하면서도 신기한 경험이었다.
개인적으로는 하나의 PR에서 커밋 양이 너무 많다는 점을 다시 느꼈다. 리팩토링과 자잘한 다른 분야의 수정들을 자꾸 함께 넣다보니 PR이 커지는 문제가 반복됐다. 이전보다 커밋을 잘게 나누는 능력은 조금 나아졌지만, 하나의 PR을 명확한 목적에 맞게 간결하게 만드는 능력은 아직 많이 부족하다고 느꼈다.
이슈를 어떤 단위로 나눌지도 계속 고민이 된다. 예를 들어 하나의 이슈에서 여러 컴포넌트를 동시에 만들어야 할 때, 나누자니 맥락이 끊기고, 합치자니 PR이 커지는 딜레마가 있었다. 다른 사람들은 이런 상황을 어떻게 해결하는지 더 많이 보고 배우고 싶다.
이번 주차에는 마지막 날에 프론트엔드와 백엔드를 연동하고 배포까지 진행했다. 그런데 데모 직전까지 예상보다 많은 이슈가 발생했고, 결국 1분 전까지 작업을 이어가야 했다.
그 결과 데모에서 어느때보다 많이 긴장했고, 발표도 굉장히 만족스럽지 못했다. 아는 사람들이 많은 자리였던 만큼 더 잘 보여주고 싶었는데 아쉬움이 컸다. 중간에 화면 문제가 생겨 당황했고, 전체적인 흐름이 원활하지 못했어서 정말 정말 아쉬웠다.
다음 주차에는 다음을 꼭 개선하고 싶다.
또 지금까지 3주를 지나오며 다음과 같은 고민들이 생겼다.
이전 팀 프로젝트가 중간에 엎어진 경험이 있었던 만큼, 이번 프로젝트만큼은 반드시 하나의 완성된 결과물을 경험해보고 싶다. 남은 기간 동안 이 생각들을 잘 정리하며 더 의미 있는 팀플을 만들어가고 싶다.