React · Hooks Practice

React hooks 실습의 state/effect 경계

훅 실습은 useState와 useEffect를 많이 쓰는 것이 아니라, 렌더 계산, 사용자 이벤트, 외부 동기화가 서로 섞이지 않게 나누는 훈련이다.

01

상태 배치

사용자 입력과 화면 옵션을 필요한 가장 가까운 컴포넌트에 둔다.

02

이벤트 연결

클릭과 입력은 상태 변경 또는 부모 콜백으로만 이어지게 한다.

03

효과 분리

요청, 구독, 타이머는 effect로 옮기고 cleanup을 함께 둔다.

04

로직 추출

여러 컴포넌트에서 반복되는 상태+effect 조합은 custom hook으로 만든다.

useState
로컬 기억 입력값, 토글, 선택 id처럼 화면 상태를 저장
파생값 저장 한계
useEffect
외부 연결 API 요청, 구독, 타이머, title 변경
cleanup 필요 여부 판단
useReducer
복잡한 전이 여러 사건과 상태가 한 모델을 바꿀 때
단순 값에는 과함
custom hook
로직 재사용 useFetch, useDebounce처럼 훅 규칙을 지키는 함수
UI를 반환하지 않는 편이 명확

훅 규칙 · 역할 분리 · 정리 점검

훅 규칙 조건문이나 반복문 안에서 훅을 호출하지 않는다.
역할 분리 렌더 중 요청을 보내거나 DOM을 변경하지 않는다.
동기화 계약 판별 effect가 만든 외부 연결은 cleanup으로 닫는다.
추출 기준 이름 붙일 수 있는 반복 로직만 custom hook으로 뺀다.