# 🌐 [LEVEL 5] 상태 관리의 거버넌스: 어디에 저장할 것인가?

## 1. 상태에도 거주지가 있다
- **Local State**: 그 컴포넌트만 알면 되는 것 (Input 입력값 등).
- **Global State**: 온 동네가 알아야 하는 것 (로그인 정보, 테마).
- **Server State**: 서버에서 빌려온 것 (게시글 목록).

## 2. 서버 상태는 `React Query`에게 맡겨라
- `useEffect`로 API 호출해서 `loading` 관리하던 시대는 끝났다.
- 캐싱, 재시도, 로딩 상태를 자동으로 해주는 라이브러리를 써서 **'신선한 데이터'**만 관리하라.

## 3. 상태의 최소화 (Single Source of Truth)
- `firstName`과 `lastName`이 있는데 `fullName` 이라는 상태를 또 만들지 마라.
- `fullName`은 렌더링할 때 그냥 합쳐서 보여주면 된다. 
- 상태가 많아질수록 동기화 오류(버그)의 확률은 급상승한다.
