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.mdIMPLEMENTATION_PHASES.md를 업데이트하여, 필수 기능 완료 여부뿐만 아니라 테스트 커버리지, 배포 안정성, 그리고 Phase 2로 넘어가기 위한 기술적 요구사항(Architectural Gate)을 명확히 정의했습니다.

결과

  • 인증 만료 등 주요 실패 케이스에 대한 연쇄적 에러 방지(Smoke Gate 강화)
  • CI 환경에서의 테스트 실패 진단 효율성 증대
  • 팀 내 공동 이해도를 높이기 위한 MVP 마감 및 Phase 2 로드맵 문서화 완료

다음 개선 아이디어

  • Phase 2의 핵심인 ‘공동 편집 및 리뷰 시스템’을 위한 실시간 동기화 아키텍처(WebSocket/Yjs) 조사
  • 코드 품질 유지를 위한 정적 분석(Lint/Type Check) 도구의 CI 강제성 강화
  • 서비스 운영 지표 측면에서의 에러 트래킹(Sentry 등) 도입 고려