commit 후 연결
구독, 데이터 요청, 타이머 등록처럼 DOM commit 뒤 외부 시스템을 여는 일을 배치한다.
[] deps · StrictMode 재실행 한계함수형 컴포넌트에서는 mount, dependency update, unmount를 useEffect의 deps 비교와 cleanup 함수로 표현한다.
구독, 데이터 요청, 타이머 등록처럼 DOM commit 뒤 외부 시스템을 여는 일을 배치한다.
[] deps · StrictMode 재실행 한계props나 state 중 외부 동기화에 읽히는 값만 deps에 넣어 stale closure를 막는다.
tracked deps · exhaustive-depsdeps 배열을 생략하면 모든 commit 뒤 실행되므로 setState 루프와 불필요한 재구독을 확인한다.
deps 없음 · 루프 위험다음 effect 실행 전과 unmount 때 구독 해제, 타이머 제거, 요청 취소를 수행한다.
return cleanup · AbortControllermount, deps 변경, unmount를 재현해 중복 listener와 늦은 response가 남지 않는지 확인한다.
act + cleanup assertion