Coding-Village-Protector / woowahan-ts

[우아한 타입스크립트 with 리액트] 북 스터디 📚
14 stars 2 forks source link

9.1.2_사이드 이펙트를 다루는 useEffect #30

Closed sryung1225 closed 8 months ago

sryung1225 commented 8 months ago

📝 #28 이슈와 연관

❓ "사이드 이펙트를 다루기 위해 사용하는 훅은 useEffect다." 라는 문장의 근거를 설명해주세요. React에서의 사이드 이펙트는 무엇인가요?

sryung1225 commented 8 months ago

💊 side-effect = 부작용

프로그래밍에서 side-effect

함수가 실행되면서 함수 외부에 존재하는 값이나 상태를 변경시키는 등의 행위를 사이드 이펙트라고 합니다. 이런 외부와의 상호작용은 프로그래밍의 다른 부분에 영향을 미칠 수 있습니다.

React에서 side-effect

React의 렌더링 흐름에 영향을 줄 수 있는, React 자체 제공 기능이 아닌 모든 외부 기능을 사용하는 행위를 포함합니다.

외부 기능 예시)

React에서 side-effect를 다루기 위해 사용하는 훅 : useEffect

사이드 이펙트가 React 컴포넌트 내부에서 발생하면 React 컴포넌트 렌더링에 예상치 못한 영향(side-effect)를 미칠 수 있습니다. 때문에 컴포넌트 내부에서 직접적으로 사용하지 않고, 렌더링이 완료된 후 수행되는 useEffect 안에서 사이드 이펙트를 사용합니다.

const [data, setData] = useState(null);

useEffect(() => {
  const fetchData = async () => {
    const response = await fetch('https://api.example.com/data'); // side-effect
    const result = await response.json();
    setData(result);
  };
  fetchData();
}, []);

정리하자면 useEffect는 React 컴포넌트 렌더링에 영향을 미치지 않으면서 React 외부의 기능을 사용할 때 사용되는 훅입니다.