🤖

본 콘텐츠의 이미지 및 내용은 AI로 생성되었습니다.

⚠️

본 콘텐츠의 이미지 및 내용을 무단으로 복제, 배포, 수정하여 사용할 경우 저작권법에 의해 법적 제재를 받을 수 있습니다.

이미지 로딩 중...

React Hooks 기초 완벽 가이드 - 슬라이드 1/9
C

CodeDeck AI

2025. 11. 8. · 13 Views

React Hooks 기초 완벽 가이드

React Hooks의 핵심 개념을 초급 개발자를 위해 쉽게 설명합니다. useState, useEffect 등 필수 Hooks를 실제 예제와 함께 학습할 수 있습니다.


카테고리:React
언어:JavaScript
메인 태그:#React
서브 태그:
#Hooks#useState#useEffect#CustomHooks

들어가며

이 글에서는 React Hooks 기초 완벽 가이드에 대해 상세히 알아보겠습니다. 총 8가지 주요 개념을 다루며, 각각의 개념에 대한 설명과 실제 코드 예제를 함께 제공합니다.

목차

  1. useState_기본_사용법
  2. 여러_개의_State_관리
  3. useEffect_기본_사용법
  4. useEffect_의존성_배열
  5. 조건부_렌더링과_State
  6. 객체_State_업데이트
  7. 배열_State_업데이트
  8. Custom_Hook_만들기

1. useState 기본 사용법

개요

useState는 함수형 컴포넌트에서 상태를 관리할 수 있게 해주는 가장 기본적인 Hook입니다.

코드 예제

import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <button onClick={() => setCount(count + 1)}>
      클릭 횟수: {count}
    </button>
  );
}

설명

useState(0)으로 초기값 0을 설정하고, count로 값을 읽고 setCount로 값을 변경합니다. 버튼 클릭 시 count가 1씩 증가합니다.


2. 여러 개의 State 관리

개요

하나의 컴포넌트에서 여러 개의 state를 독립적으로 관리할 수 있습니다.

코드 예제

function UserForm() {
  const [name, setName] = useState('');
  const [age, setAge] = useState(0);

  return (
    <div>
      <input value={name} onChange={(e) => setName(e.target.value)} />
      <input value={age} onChange={(e) => setAge(e.target.value)} />
    </div>
  );
}

설명

name과 age를 각각 독립적인 state로 관리하며, 각 input의 onChange 이벤트로 값을 업데이트합니다.


3. useEffect 기본 사용법

개요

useEffect는 컴포넌트가 렌더링될 때 특정 작업을 수행할 수 있게 해주는 Hook입니다.

코드 예제

import { useState, useEffect } from 'react';

function Timer() {
  const [seconds, setSeconds] = useState(0);

  useEffect(() => {
    const interval = setInterval(() => setSeconds(s => s + 1), 1000);
    return () => clearInterval(interval);
  }, []);

  return <div>경과 시간: {seconds}초</div>;
}

설명

컴포넌트가 마운트되면 1초마다 seconds를 증가시키고, 언마운트 시 clearInterval로 정리합니다. 빈 배열 []은 최초 1회만 실행됨을 의미합니다.


4. useEffect 의존성 배열

개요

useEffect의 두 번째 인자로 의존성 배열을 전달하여 특정 값이 변경될 때만 실행되도록 제어할 수 있습니다.

코드 예제

function SearchResults({ query }) {
  const [results, setResults] = useState([]);

  useEffect(() => {
    fetch(`/api/search?q=${query}`)
      .then(res => res.json())
      .then(data => setResults(data));
  }, [query]);

  return <ul>{results.map(r => <li key={r.id}>{r.name}</li>)}</ul>;
}

설명

query 값이 변경될 때마다 API를 호출하여 새로운 검색 결과를 가져옵니다. [query]를 의존성 배열로 지정했기 때문입니다.


5. 조건부 렌더링과 State

개요

state 값에 따라 다른 UI를 보여주는 조건부 렌더링을 구현할 수 있습니다.

코드 예제

function LoginButton() {
  const [isLoggedIn, setIsLoggedIn] = useState(false);

  return (
    <div>
      {isLoggedIn ? (
        <button onClick={() => setIsLoggedIn(false)}>로그아웃</button>
      ) : (
        <button onClick={() => setIsLoggedIn(true)}>로그인</button>
      )}
    </div>
  );
}

설명

isLoggedIn state에 따라 로그인/로그아웃 버튼을 다르게 표시하며, 버튼 클릭으로 상태를 토글합니다.


6. 객체 State 업데이트

개요

객체 형태의 state를 업데이트할 때는 스프레드 연산자를 사용하여 불변성을 유지해야 합니다.

코드 예제

function Profile() {
  const [user, setUser] = useState({ name: '', email: '' });

  const updateName = (name) => {
    setUser({ ...user, name });
  };

  return <input onChange={(e) => updateName(e.target.value)} />;
}

설명

...user로 기존 객체를 복사한 후 name만 변경하여 새로운 객체를 생성합니다. 이렇게 불변성을 유지해야 React가 변경을 감지합니다.


7. 배열 State 업데이트

개요

배열 state에 새 항목을 추가하거나 삭제할 때도 불변성을 유지하며 업데이트해야 합니다.

코드 예제

function TodoList() {
  const [todos, setTodos] = useState([]);

  const addTodo = (text) => {
    setTodos([...todos, { id: Date.now(), text }]);
  };

  const removeTodo = (id) => {
    setTodos(todos.filter(todo => todo.id !== id));
  };
}

설명

추가할 때는 스프레드 연산자로 기존 배열을 복사하고, 삭제할 때는 filter로 새 배열을 생성합니다.


8. Custom Hook 만들기

개요

반복되는 로직을 Custom Hook으로 추출하여 재사용할 수 있습니다.

코드 예제

function useInput(initialValue) {
  const [value, setValue] = useState(initialValue);

  const onChange = (e) => setValue(e.target.value);
  const reset = () => setValue(initialValue);

  return { value, onChange, reset };
}

function Form() {
  const name = useInput('');
  return <input {...name} />;
}

설명

useInput이라는 Custom Hook으로 input 관리 로직을 재사용 가능하게 만들었습니다. 여러 컴포넌트에서 동일한 패턴을 쉽게 적용할 수 있습니다.


마치며

이번 글에서는 React Hooks 기초 완벽 가이드에 대해 알아보았습니다. 총 8가지 개념을 다루었으며, 각각의 사용법과 예제를 살펴보았습니다.

관련 태그

#React #Hooks #useState #useEffect #CustomHooks

#React#Hooks#useState#useEffect#CustomHooks

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

함께 보면 좋은 카드 뉴스

AWS Certificate Manager로 HTTPS 인증서 발급 완벽 가이드

AWS Certificate Manager를 사용하여 무료로 SSL/TLS 인증서를 발급받고, 로드 밸런서에 적용하여 안전한 HTTPS 웹 서비스를 구축하는 방법을 초급자도 쉽게 따라 할 수 있도록 단계별로 안내합니다.

Route 53으로 도메인 연결 완벽 가이드

AWS Route 53을 사용하여 도메인을 등록하고 실제 서비스에 연결하는 전 과정을 실무 스토리와 함께 쉽게 배워봅니다. DNS의 기본 개념부터 레코드 설정, ELB 연결까지 초급 개발자도 쉽게 따라할 수 있도록 구성했습니다.

AWS RDS 관리형 데이터베이스 완벽 가이드

직접 데이터베이스를 설치하고 관리하는 것이 부담스러운 초급 개발자를 위한 RDS 가이드입니다. 데이터베이스 엔진 선택부터 인스턴스 생성, 보안 설정, 백업까지 실무에 필요한 모든 내용을 다룹니다.

AWS Auto Scaling 완벽 가이드

트래픽 급증에 대비하는 자동 확장 시스템을 단계별로 구축합니다. AMI 생성부터 Auto Scaling Group 설정, 테스트까지 초급 개발자를 위해 실무 중심으로 설명합니다.

AWS 로드 밸런서와 보안 그룹으로 트래픽 분산 구성 완벽 가이드

초급 개발자를 위한 AWS 로드 밸런서와 보안 그룹 실습 가이드입니다. Application Load Balancer와 Network Load Balancer의 차이부터 보안 그룹 설정, 대상 그룹 생성, 실제 EC2 연결까지 실무에 필요한 모든 내용을 이북처럼 술술 읽히는 스타일로 담았습니다.