Browser
목록, 검색, 장바구니 화면을 요청하고 사용자 상호작용을 만든다.
Next.js 프로젝트 설계에서 중요한 것은 브라우저, Vercel Edge, 앱 런타임, 서버 로직, 데이터베이스의 책임을 섞지 않는 것이다.
목록, 검색, 장바구니 화면을 요청하고 사용자 상호작용을 만든다.
정적 자산, CDN 캐시, ISR 결과를 먼저 반환한다.
라우팅, 렌더링, 캐싱 정책, 클라이언트/서버 컴포넌트를 조정한다.
auth()로 로그인 경계를 세우고 문자열 userId로 장바구니·주문 권한을 검증한다.
도서, 장바구니, 주문 데이터를 저장한다.
| 요청 종류 | 먼저 확인할 계층 | DB 접근 여부 | 설계 포인트 |
|---|---|---|---|
| 홈, 정적 정보 | Vercel Edge / CDN | 대부분 없음 | 캐시 가능성을 먼저 본다 |
| 도서 검색 | Next.js App + 서버 로직 | 있음 | 쿼리 파라미터와 인덱스 기준을 맞춘다 |
| 장바구니/주문 | Auth.js + Server Action | 인증 후 있음 | auth() 실패는 /login으로 보내고 userId 소유권을 서버에서 검증한다 |