← 목록

React Hooks를 활용한 상호작용적인 웹 애플리케이션 만들기 💻

작성: 2025년 12월 11일읽기: 약 3분

React Hooks는 웹 개발의 세계에서 게임 체인저입니다. 이들을 통해 함수형 컴포넌트에서도 상태 관리와 생명주기 기능을 사용할 수 있게 되었습니다. 이 글에서는 React Hooks를 사용하여 상호작용적인 웹 애플리케이션을 만드는 방법을 소개하겠습니다. 복잡한 용어는 최대한 피하면서, 초보자도 이해할 수 있도록 설명하겠습니다.

useState 사용하기

useState는 가장 기본적인 Hook 중 하나로, 컴포넌트의 상태를 관리할 수 있게 해줍니다. 예를 들어, 사용자 입력을 저장하는 간단한 예제를 살펴봅시다.

import React, { useState } from 'react';

function UserInput() {
  const [input, setInput] = useState('');

  const handleInputChange = (event) => {
    setInput(event.target.value);
  };

  return (
    <div>
      <input type="text" value={input} onChange={handleInputChange} />
      <p>입력한 값: {input}</p>
    </div>
  );
}

이 코드는 사용자가 입력 필드에 무언가를 타이핑할 때마다 화면에 그 값을 실시간으로 보여줍니다.

useEffect 사용하기

useEffect는 컴포넌트가 렌더링될 때마다 특정 작업을 수행할 수 있게 해주는 Hook입니다. 예를 들어, 컴포넌트가 화면에 나타날 때마다 API에서 데이터를 가져오는 작업을 해보겠습니다.

import React, { useState, useEffect } from 'react';

function FetchData() {
  const [data, setData] = useState([]);

  useEffect(() => {
    fetch('https://api.example.com/data')
      .then(response => response.json())
      .then(data => setData(data))
      .catch(error => console.error('Error:', error));
  }, []); // 빈 배열은 컴포넌트가 마운트될 때만 실행되게 함

  return (
    <div>
      {data.map(item => (
        <p key={item.id}>{item.title}</p>
      ))}
    </div>
  );
}

이 예제에서는 컴포넌트가 처음 렌더링될 때 웹 API로부터 데이터를 가져와 화면에 표시합니다. []는 이 useEffect가 컴포넌트가 처음 마운트될 때만 실행되어야 함을 의미합니다.

custom Hooks 만들기

React Hooks를 사용하면 자주 사용하는 로직을 재사용 가능한 custom Hooks로 분리할 수 있습니다. 예를 들어, 위의 API 호출 예제를 custom Hook으로 만들어 보겠습니다.

import React, { useState, useEffect } from 'react';

function useFetchData(url) {
  const [data, setData] = useState([]);

  useEffect(() => {
    fetch(url)
      .then(response => response.json())
      .then(data => setData(data))
      .catch(error => console.error('Error:', error));
  }, [url]);

  return data;
}

function App() {
  const data = useFetchData('https://api.example.com/data');

  return (
    <div>
      {data.map(item => (
        <p key={item.id}>{item.title}</p>
      ))}
    </div>
  );
}

이렇게 하면, 다양한 컴포넌트에서 API 호출 로직을 재사용할 수 있게 됩니다.

React Hooks를 사용하면 상태 관리와 사이드 이펙트 처리를 더 간결하고 직관적으로 할 수 있습니다. 이러한 기능을 활용하여 보다 상호작용적인 웹 애플리케이션을 만들어 보세요. Happy coding!