14인 팀 프로젝트에서 팀장으로 참여해 서비스 기획·도메인 모델링과 핵심 API 설계에 직접 기여하고, CI/CD·AWS 비용 최적화 기반 운영 자동화를 도입
👤 팀 프로젝트에서 담당한 역할과 기여
- 서비스 기획 및 핵심 도메인 모델링을 주도하며 기능 간 책임 범위와 데이터 흐름을 정의
- 디자인 초안 수립 및 직접 디자인 작업에 참여하고, 사용자 흐름(UX)에 맞춰 반복 개선
- Jira–GitHub 연동을 통해 작업 현황을 관리하고, Notion으로 API 명세·기술 문서화 및 일정 지연 시 범위·일정 재조정 수행
- GitHub Actions 기반 JaCoCo CI 도입으로 병합 이후 서버 에러 발생률을 유의미하게 감소
- 개발·배포 서버에 대해 CD 파이프라인을 구축하여 빌드·배포 자동화
- AWS 인프라를 설계하며 저유지비용 요구사항에 맞춰 인스턴스 사양을 최적화하고,
EventBridge를 활용해 08~18시 시간대만 운영되는 비용 절감 구조 채택
- 개발·병합 과정에서 발생한 이슈를 로그 기반으로 원인 분석하고 수정 방향성 제시
- 인력 부족 또는 병목이 발생한 영역에 대해 직접 코드 개발 및 리팩터링 수행
🔎 팀 프로젝트 리딩 회고 (부족했던 점)
1️⃣ 기능 간 소통 구조 설계의 부족
프론트엔드·백엔드 간 기능 목표와 구현 범위에 대한 합의가 초기 단계에서 충분하지 않아, 개발 과정에서 방향이 어긋나는 문제가 발생함
→ 기능 단위 API 계약과 책임 범위를 사전에 명확히 정의하는 커뮤니케이션 구조의 필요성을 인식
2️⃣ 초기 기획 단계에서 의견 수렴 프로세스의 미흡
초기 기획을 빠르게 확정·전달하는 데 집중하여, 개발자 의견을 충분히 반영해 기획을 보완하는 과정이 부족했음
→ 기획 확정 전 기술 난이도와 구현 리스크를 반영하는 사전 합의 단계의 중요성을 학습
3️⃣ 개발 관점의 세부 스펙 정의 부족
기능과 사용자 경험 중심으로 기획을 전달하여, API 스펙·에러 케이스·데이터 구조에 대한 개발 레벨의 세부 정의가 부족했음
→ 엔드포인트 계약, 예외 시나리오, 데이터 모델을 포함한 기술 중심 기획의 필요성을 인식
4️⃣ 팀 역량을 충분히 반영하지 못한 스프린트 운영
Jira 기반 스프린트로 작업을 관리했으나, 학업 병행 환경과 팀원들의 숙련도를 충분히 고려하지 못해 일정 부담이 발생함
→ 개인별 역량과 실제 가용 시간을 기준으로 한 스프린트 분해 및 작업 버퍼 설계의 중요성을 인지
5️⃣ 협업 난이도를 고려한 작업 분해의 한계
다수의 초보자가 동일 기능을 병렬 개발하면서 병합 충돌과 코드 리뷰 부담이 증가함
→ 팀 규모와 숙련도에 맞는 기능 분해 전략 및 공통 모듈 책임 분리의 필요성을 학습
🔧 이를 통해 추후 프로젝트에 적용할 점
1️⃣ 초기 기획 단계에서 개발 레벨의 핵심 로직까지 포함한 명세 제공
- 기능·UX 설명과 함께 핵심 구현 로직과 기술적 판단 근거를 명시
- 예시:
- 출석 기능: 출석 가능 여부를 몇 초 단위로 갱신할지, 스케줄링 기준
- 주식 백테스팅 서비스: 사용 지표 외에 적용할 계산 공식과 처리 흐름 명시
2️⃣ 개발 전 기능별 사전 합의 기간 확보
- 2~3주간 기능별 회의를 통해:
- API 스펙
- 에러 응답 규칙
- 원격 저장소 병합 전 테스트 최소 기준
에 대해 사전 합의 후 개발 착수
3️⃣ 팀 역량 기반 스프린트 용량 및 일정 조정
- 개발 전 개인별 역량과 가용 시간 파악
- 기능별로 상이한 데드라인과 목표치 설정
- 예측 불가능한 지연에 대비해 스프린트 여유 용량(버퍼) 확보
4️⃣ 인원 수가 아닌 역량 기준의 기능 분해
- 단순히 인원 수에 맞춰 기능을 나누기보다,
- 숙련도와 투입 가능 시간을 기준으로
- 동일 기능이라도 최대한 겹치지 않도록 세분화하여 할당
- 병합 충돌과 리뷰 부담 최소화