스키마 코드는 필드 타입보다 검증, 참조, 인덱스 의도를 먼저 드러내야 한다
MongoDB는 유연하지만 프로젝트 설계 단계에서는 어떤 값이 필수이고 어떤 조회가 자주 일어나는지 명확히 적어야 한다.
| 모델 | 핵심 필드 | 검증/인덱스 | 설계 이유 |
|---|---|---|---|
| Book | title, author, price, isbn, stock | isbn unique, 검색 필드 index | 목록/검색/상세의 기준 데이터 |
| CartItem | userId(string), bookId, quantity, addedAt | quantity min 1, userId+bookId unique | Auth.js ID로 소유권을 고정하고 같은 책의 중복 행을 막음 |
| Order | userId(string), items, totalPrice, status | status enum, userId/orderDate index | 사용자별 주문과 구매 시점의 가격·상태를 이력으로 보존 |
| DB 연결 | MONGODB_URI, cached connection | env 누락 시 즉시 오류 | 서버리스 환경에서 연결 재사용과 실패 원인을 분리 |
코드 리뷰 기준
스키마에 타입만 있고 unique, enum, min, ref, index 의도가 없다면 아직 설계가 아니라 저장소 초안에 가깝다.