매 렌더 뒤 실행되므로 화면 갱신마다 반복되어도 안전한 작업에만 제한적으로 씁니다.
effect deps
useEffect 의존성과 클린업
effect가 언제 다시 실행되어야 하는지와 이전 effect를 언제 정리해야 하는지를 함께 정해야 예측 가능한 부수 효과가 됩니다.
컴포넌트가 처음 나타날 때 한 번 연결하고 클린업으로 정리하는 구조에 잘 맞습니다.
이전 요청, 타이머, 구독, 리스너가 남아 다음 렌더를 방해하지 않게 해제합니다.
effect에서 읽는 props와 state를 배열에 반영한다.
setInterval이나 timeout은 정리 함수에서 해제한다.
요청 결과가 오래된 상태를 덮지 않는지 확인한다.
구독형 API는 새 구독 전에 이전 구독을 끊는다.