개발 시작 전에는 목표, 기능, 아키텍처, 데이터 모델이 서로 맞아야 한다
설계가 끝났다는 뜻은 문서가 길어졌다는 뜻이 아니라, 구현 순서와 실패 기준을 팀원이 같은 말로 설명할 수 있다는 뜻이다.
| 확정할 것 | 좋은 산출물 | 개발 중 흔한 실패 | 수정 방향 |
|---|---|---|---|
| 프로젝트 목표 | SMART 지표와 4주 범위 | 기능 추가가 계속 늘어남 | MVP 밖 기능을 backlog로 이동 |
| 기능 목록 | 로그인부터 주문까지 이어지는 MVP | 인증 없이 userId를 입력값으로 받음 | auth()-탐색-장바구니-주문 경계 유지 |
| 아키텍처 | 브라우저, Edge, App, API, DB 책임 분리 | 클라이언트에서 DB 권한 노출 | 서버 로직으로 검증 이동 |
| 데이터 모델 | 문자열 userId, Book, CartItem, Order 관계와 인덱스 | 소유권 또는 주문 가격 이력 소실 | Auth.js ID와 priceAtPurchase 스냅샷 저장 |