함수가 실행되면서 함수 외부에 존재하는 값이나 상태를 변경시키는 등의 행위.
Side-Effect는 절차형 프로그래밍에서 흔히 존재하는 작업이다.
함수가 매개변수를 받아 결과를 생성하는 것과 무관한 외부의 상태를 변경하거나 외부와 상호작용할 때 쓰인다.
그래서 요즘 선언형 프로그래밍 에서는 Side-Effect를 최소화하는 방향으로 가고 있다.
함수는 전달받은 배개변수를 통해 연산을 수행하고 결과를 반환해야 한다.
그래야 결과가 항상 일관되고 예측할 수 있다.
이것이 곧 프로그램이 쉽고 단순해질 수 있는 방법이며,
유지보수의 난이도와 비례한다.
useEffect 를 통해서 Side-Effect 작업을 지원한다.
React에서는 컴포넌트를 다시 렌더링 하는 시점을 통제할 수 있다.