기능 목록보다 실행 위치를 먼저 본다
데이터 위치, 상호작용 필요성, 번들 영향을 함께 보면 경계를 작게 유지할 수 있다.
| 질문 | 서버 쪽 판단 | 클라이언트 쪽 판단 |
|---|---|---|
| 데이터가 민감한가 | 토큰, DB, 권한은 서버에서 처리한다. | 표시 가능한 결과만 전달한다. |
| 즉시 반응해야 하는가 | 읽기 전용 결과라면 서버 HTML로 충분하다. | 입력, 토글, 드래그는 client island로 둔다. |
| 번들이 커지는가 | 무거운 계산과 라이브러리는 서버에 남긴다. | 상호작용에 필요한 최소 코드만 보낸다. |
서버 우선
이유가 없다면 서버 컴포넌트로 시작한다.
섬 최소화
상호작용이 필요한 부분만 분리한다.
결과 전달
서버 결과는 props/children으로 조합한다.