실수 1: 'use client' 를 tree 위에
Layout 또는 page 를 client mark 하면 그 아래 모든 것 이 Client Component 됨. Subtree 통째로 server default 잃어. 항상 가장 작은 leaf 승격.
실수 2: Client file 에서 server-only module import
DB, secret, Node-only API 만지는 module 은 import 'server-only' mark 해야. Client Component 가 import 하면 build fail — 시끄럽고 빠르고 고치기 쉬움.
실수 3: 모든 거 위해 API route
App Router 는 data fetch 위해 /api/… route 안 필요 — Server Component 가 직접 함. Mutation 위해서도 안 필요 — Server Action 이 함. Route Handler 는 webhook, third-party integration, 진짜 public API 위해. 내부 CRUD 는 Action.
실수 4: Class instance 를 prop 으로
ORM model, custom Date subclass, fancy Result type — serialization boundary 못 넘어. Plain field 는 넘어가고 method 는 사라짐. 넘기 전에 plain data 로 변환.