effect deps

useEffect 의존성: 실행 조건을 문서화하는 계약

deps 배열은 성능 꼼수가 아니라 effect가 어떤 값과 동기화되어야 하는지 설명하는 장치다.

read

effect가 읽는 값

effect 내부에서 읽는 props, state, 함수가 무엇인지 먼저 나열한다.

dependency source
include

deps에 포함

렌더마다 달라질 수 있는 값은 deps에 넣어 오래된 클로저를 피한다.

fresh closure
stabilize

참조 안정화

함수나 객체 때문에 반복 실행되면 useCallback, useMemo, 구조 분리를 검토한다.

stable reference
cleanup

이전 작업 정리

새 effect가 실행되기 전 이전 구독, 타이머, 요청을 정리한다.

before rerun
split

관심사 분리

서로 다른 외부 시스템을 한 effect에 섞지 말고 별도 effect로 나눈다.

one concern