Effect는 setup과 cleanup이 한 쌍으로 움직인다

마운트·dependency 변경·언마운트마다 어떤 함수가 언제 실행되는지 시간축으로 읽는다.

mount

setup A

현재 props와 state로 연결을 시작

deps 변경

cleanup A

이전 렌더가 만든 연결을 해제

같은 commit

setup B

새 dependency로 다시 연결

unmount

cleanup B

마지막 외부 자원을 정리

핵심cleanup은 컴포넌트가 사라질 때만 실행되는 함수가 아니라, 다음 setup 직전에도 실행된다.