상태 소유자 선택
한 컴포넌트만 쓰는 값은 local, 여러 화면이 공유하면 외부 store나 URL로 옮긴다.
owneruseState, useEffect, useReducer, custom hook의 책임을 나누면 상태 변경 원인과 재실행 조건이 추적 가능해진다.
한 컴포넌트만 쓰는 값은 local, 여러 화면이 공유하면 외부 store나 URL로 옮긴다.
ownerprops와 state로 계산 가능한 값은 별도 state로 저장하지 않는다.
derivedDOM, 네트워크, 구독처럼 React 바깥 시스템과 동기화할 때 effect를 쓴다.
external sync상태와 effect 조합이 재사용되면 입력과 반환 계약을 명명한다.
reusetype Action =
| { type: "start" }
| { type: "success"; data: User[] }
| { type: "fail"; message: string };