리액트 컴포넌트가 렌더링 될 때마다 특정 작업을 실행할 수 있도록 하는 Hook
useEffect는 component가 Mount 되었을 때, component가 unmount 되었을 때, component가 update 되었을 때, 특정 작업을 처리할 수 있다.

useEffect( function, deps )
1. Component가 mount 되었을 때 ( 처음 나타났을 때)
useEffect(() => {
console.log('렌더링 시 실행');
});
배열 생략시 리렌더링 될 때마다 실행된다.
2. Component가 update 될 때 (특정 props, state가 바뀔 때)
useEffect(() => {
console.log(name);
console.log('name props가 업데이트 될 때마다 실행');
}, [name]);
3. Component가 unmount 될 때 (사라질 때) or update 되기 직전
useEffect(() => {
console.log('effect');
console.log(name);
return () => {
console.log('cleanup');
console.log(name);
}
})