iNote

생각을 기록하면 오래 남습니다.

AI 어시스턴트

게스트님, 안녕하세요

무엇을 도와드릴까요?

  • 대화 기록이 없어요.

AI 어시스턴트

게스트님, 안녕하세요

무엇을 도와드릴까요?

  • 대화 기록이 없어요.
iNote
iNote
홈할 일일지독서나의 글글쓰기dev-guide

iNote

생각을 기록하면 오래 남습니다.

사이드프로젝트 기록

FE & BE 테스트 전략 - 사이드프로젝트에 적용하기

서동찬 (sdc337dc@gmail.com)

생성일 : 2026.09.29 17:39

  • CLAUDE.md에 "계약 → FE → BE → 통합" 순서 추가 및 Playwright 파일( `apps/web/e2e/login.spec.ts` & `playwright.config.ts` ) 존재 확인
  • FE는 유닛 및 MSW 컴포넌트 테스트를 통해 구현하고, BE는 테스트 골격만 제공 후 구현하며, 통합 테스트는 실제 BE와 목 데이터가 일치하는지 검증
  • 작은 수정은 FE 유닛 테스트만으로 충분하고, 버그는 먼저 실패 테스트로 재현 후 수정하며, 통합 테스트는 테스트 전용 DB가 준비될 때만 실행
  • Playwright E2E는 보류 중이며, 각 단계 완료 후 결과를 보고 다음 단계 여부를 사용자 결정, 내일 세 가지 작업(적용 우선순위, 커밋 미처리 사항, 테스트 DB 구축 시기) 결정 예정

inote의 CLAUDE.md에 "기능 추가·수정 작업 순서: 계약 → FE → BE → 통합" 섹션을 추가했습니다. 커밋은 하지 않았습니다. 이전에 "Playwright는 설치만 돼 있고 테스트 파일은 없다"고 한 건 틀렸습니다. apps/web/e2e/login.spec.ts와 playwright.config.ts가 이미 있습니다.

정리한 내용

  1. API 계약 합의: 엔드포인트, 요청, 응답 모양을 적어서 사람이 승인합니다. FE의 MSW 목 데이터와 BE 구현이 이 계약을 기준으로 삼습니다.

  2. FE 먼저: 제가 구현하고 테스트를 씁니다.

    • 유닛 테스트: 순수 로직 확인

    • MSW 컴포넌트 테스트: 화면 동작과 성공/실패/빈 목록 분기

    • 각 테스트가 무엇을 지켜 주는지 한 줄씩 설명해 드립니다.

  3. BE: 제가 테스트 목록과 골격만 드리고, 사용자님이 직접 채웁니다. 그 테스트가 통과하도록 구현합니다.

  4. 통합 테스트: FE와 BE를 함께 띄워 목 데이터가 실제 BE와 일치하는지 봅니다.

같이 넣은 규칙

  • 작은 수정(문구, 스타일, 한두 줄 버그)은 FE 유닛 테스트만으로 충분하고, 위 단계는 새 기능에만 적용합니다.

  • 버그는 가능하면 먼저 실패하는 테스트로 재현한 뒤 고칩니다.

  • 통합 테스트는 테스트 전용 DB가 준비되기 전에는 돌리지 않습니다. 로컬과 운영이 같은 Neon DB라서 운영 데이터를 건드릴 수 있기 때문입니다.

  • 각 단계가 끝나면 결과만 보고하고 멈춥니다. 다음 단계로 넘어갈지는 사용자님이 정합니다.

Playwright 보류

  • 기존 "커밋 전 체크리스트"의 E2E 항목에 "보류 중(2026-09-29)"을 표시했습니다. 재개 전까지 새 E2E 테스트를 추가하지 않고, 이 항목은 건너뛰어도 됩니다.

  • 기존 login.spec.ts는 그대로 뒀습니다.

내일 시작할 때 정할 것이 세 가지 있습니다.

  • 첫 작업으로 무엇을 적용할지

  • 아직 커밋하지 않은 변경 처리: 독서 기록 상세 목차, 출간 설정 화면(FE와 BE), 이번 CLAUDE.md 수정

  • 테스트 전용 DB를 언제 만들지

원하시면 커밋 요청 때 위 변경들을 기능별로 나눠 드리겠습니다.