더 줄게 - 제한된 리소스 프로젝트 의사 결정 기록
프로젝트 진행 중 4인이었던 팀원이 3인으로 줄어드는 변수가 생겼다. 전체 기간 3주라는 제한된 시간 속에서 완성 가능한 결과물을 내기 위해, 팀장으로서 내린 현실적인 의사 결정과 트레이드오프를 기록한다.
1. 프로젝트 일정과 범위 조율
3주 전체를 기능 구현에만 쏟는 것은 비효율적이라고 생각하여, 개발 기간 2주, 회고 및 QA 기간 1주로 일정을 재구성했다.
문제는 3명이 감당하기에 프로젝트 요구사항이 꽤 컸다는 점이다. 공통 컴포넌트를 완벽하게 정리하고 구조 설계에 긴 시간을 투자하는 정석적인 접근 방식은 일정 내 완성 자체를 위협할 가능성이 높았다.
결국 완벽한 설계보다는 완성 가능한 범위에 집중하는 것을 최우선 목표로 삼았다.
2. 프로젝트 주제 선정의 기준
제공된 시안 중 Trello 형태의 'Taskify'와 구인·구직 서비스인 'The-julge'를 두고 고민했다.
Taskify는 대시보드와 데이터 시각화 등 확장 기능이 매력적이었지만, 구현 범위가 넓어 2주 안에 안정적으로 완성하기엔 리스크가 컸다. 반면 The-julge는 일반 유저와 사장님이라는 역할 분기가 명확하고, 기능의 성격이 구체적이라 구현 범위를 조절하기 훨씬 수월한 구조였다. 안정적인 완주를 위해 최종적으로 The-julge를 선택했다.
3. 기술 스택에 반영된 트레이드오프
빠른 개발 속도와 안정성을 동시에 챙기기 위해 다음과 같이 기술 스택을 결정했다.
- Next.js (Page Router): 현업에서 Next.js 경험을 요구하는 추세를 반영해 도입했다. 부트캠프에서 강의한 내용을 학습하기 위한 목적으로 Page Router를 채택했다.
- TypeScript: 짧은 프로젝트일수록 초반에 타입을 강제하고 ESLint 규칙을 맞추는 것이 런타임 에러를 막아주어 최종적으로 시간을 아껴준다.
- Material UI: 인원이 부족한 상황에서 모달이나 슬라이드 같은 UI 요소를 바닥부터 구현할 여유가 없었다. 디자인 라이브러리를 적극 활용해 UI 구성 시간을 줄이고 핵심 기능 구현에 리소스를 집중했다.
4. 역할 분담과 작업 방식
초기 공통 컴포넌트, 훅, 유틸리티를 먼저 설계하고 시작하는 것이 이상적이다. 하지만 초기 설계 시간이 길어지면 실제 화면이 나오는 시점이 늦어져 일정 압박이 심해진다.
따라서 각자 담당 페이지 단위로 기능을 구현하는 방식을 택했다. 코드 컨벤션만 철저히 통일하고, 나는 팀장으로서 API 요청 로직과 전반적인 데이터 처리 구조를 전담했다. 팀원들이 복잡한 상태 관리나 비동기 로직 대신 UI와 로직 구현에만 집중할 수 있도록 역할을 명확히 분리했다.
5. 선택의 솔직한 이유와 마무리
정석대로 시간을 투자 한다면 완성도는 더 높일 수 있었겠지만, 현실적인 일정을 내에 완성하고 싶었다. 더 솔직하게는 팀 프로젝트에 모든 시간을 투자하는 것 보단 리소스를 효율적으로 분배해 개인 프로젝트에 투자할 시간을 확보하고자 했다.
제약 조건 속에서 내린 이번 의사 결정들이 앞으로 다른 프로젝트를 진행할 때 현실적인 균형을 잡는 좋은 기준점이 될 수 있다고 생각한다.