BOOK_MAKER 개발기 #4 — MVP 마무리 및 Phase 2 전환 로드맵 수립
개발의 첫 번째 큰 매듭인 MVP(Minimum Viable Product) 단계를 마무리하며, 시스템의 안정성을 보장하기 위한 E2E 테스트 보강과 다음 단계(Phase 2)를 위한 설계 가이드라인을 문서화했습니다.
목표
- 인증 만료 상황 등 주요 엣지 케이스에 대한 Playwright E2E 테스트 구현
- CI/CD 파이프라인에서 테스트 결과(Artifact) 관리 및 가시성 확보
- MVP 이후의 기능 확장과 기술 부채 해결을 위한 Phase 2 전환 전략 수립
핵심 구현 포인트
1) 인증 만료 시나리오 E2E 테스트 추가
단순한 로그인/기능 테스트를 넘어, 세션이 만료되거나 유효하지 않은 토큰으로 접근했을 때 시스템이 어떻게 반응하는지 검증하는 ‘Smoke Test’를 추가했습니다. 이를 통해 사용자 경험의 하한선을 확보했습니다.
// apps/web/test/auth-expiry.smoke.spec.ts (예시 코드)
test('세션 만료 시 로그인 페이지로 리다이렉트된다', async ({ page }) => {
// 인위적인 토큰 만료 상황 재현
await page.goto('/app/write');
await expect(page).toHaveURL('/login');
});
2) CI/CD 안정화 및 테스트 가시성 개선
GitHub Actions 파이프라인에서 Playwright 테스트 실패 시 원인을 파악하기 쉽도록 스크린샷과 비디오 등 테스트 결과물(Artifact)의 경로를 재설정하고 보관 주기를 최적화했습니다.
트러블슈팅 / 고민 포인트
MVP Closeout 기준 설정
- 고민: “언제까지가 MVP인가?”에 대한 모호함을 해결해야 했습니다. 단순히 기능을 다 만들었다고 끝나는 것이 아니라, 서비스로서 운영 가능한 수준의 품질과 문서화가 필요했습니다.
- 해결:
MVP_SCOPE.md와IMPLEMENTATION_PHASES.md를 업데이트하여, 필수 기능 완료 여부뿐만 아니라 테스트 커버리지, 배포 안정성, 그리고 Phase 2로 넘어가기 위한 기술적 요구사항(Architectural Gate)을 명확히 정의했습니다.
결과
- 인증 만료 등 주요 실패 케이스에 대한 연쇄적 에러 방지(Smoke Gate 강화)
- CI 환경에서의 테스트 실패 진단 효율성 증대
- 팀 내 공동 이해도를 높이기 위한 MVP 마감 및 Phase 2 로드맵 문서화 완료
다음 개선 아이디어
- Phase 2의 핵심인 ‘공동 편집 및 리뷰 시스템’을 위한 실시간 동기화 아키텍처(WebSocket/Yjs) 조사
- 코드 품질 유지를 위한 정적 분석(Lint/Type Check) 도구의 CI 강제성 강화
- 서비스 운영 지표 측면에서의 에러 트래킹(Sentry 등) 도입 고려