State Placement

상태는 영향 범위와 변경 빈도로 배치합니다

공유가 필요하다는 이유만으로 모든 값을 전역화하지 않습니다. 누가 읽고, 누가 바꾸며, 얼마나 자주 바뀌는지를 함께 보면 저장 위치가 분명해집니다.

Local

가까운 컴포넌트에 둔다

입력값, 탭 열림, 모달 표시처럼 화면 일부에서만 쓰이는 값은 가장 가까운 곳에 둡니다.

Lift

공통 부모로 올린다

형제 컴포넌트가 같은 값을 읽거나 바꾸면 공통 부모에 두고 props로 내려보내는 것이 단순합니다.

Shared

Context나 store 분리

여러 화면과 깊은 트리가 같은 상태를 공유하면 공용 통로나 상태 관리 도구가 유지보수 비용을 낮춥니다.

검색어 입력 중 자주 바뀌고 한 화면에 머물면 local state가 적합합니다.
장바구니 상품 목록, 헤더, 결제 화면이 함께 읽으므로 공용 상태 후보입니다.
테마 앱 전반에서 같은 테마 값을 읽어야 할 때 Context로 공급하면 prop 전달을 줄입니다.
범위누가 읽나
빈도자주 바뀌나
경로전달이 긴가
선택가까운 해법

상태 위치 판별 상태 관리는 전역화를 늘리는 일이 아니라, 상태가 쓰이는 범위에 맞춰 가장 짧고 읽기 쉬운 경로를 고르는 일입니다.