React에서 useState란? 실용적인 예제로 설명

발행: (2026년 2월 17일 오후 03:55 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

useState란?

useState는 함수형 컴포넌트가 상태를 관리할 수 있게 해 주는 React Hook입니다. 상태 변수와 상태를 업데이트하는 setter 함수를 반환합니다. setter 함수를 호출하면 React가 업데이트된 상태와 함께 컴포넌트를 다시 렌더링합니다.

기본 문법

const [state, setState] = useState(initialValue);
  • state → 현재 값
  • setState → 값을 업데이트하는 함수
  • initialValue → 초기값

왜 useState가 필요할까요?

React 컴포넌트는 상태가 변하면 다시 렌더링됩니다.

상태가 없을 때:

  • 동적인 UI가 없음
  • 사용자 상호작용 처리 불가
  • 폼 처리 불가
  • 토글 기능 부재

상태를 사용하면 UI가 인터랙티브해집니다.

예제 1: 카운터

import { useState } from "react";

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

  return (
    
      
## Count: {count}

       setCount(count + 1)}>Increment
    
  );
}

export default Counter;

여기서 무슨 일이 일어나나요?

  • 초기값은 0입니다.
  • 버튼을 클릭하면 setCount(count + 1)이 실행됩니다.
  • React가 상태를 업데이트합니다.
  • 컴포넌트가 다시 렌더링됩니다.
  • UI가 자동으로 업데이트됩니다.

예제 2: 토글 버튼

import { useState } from "react";

function Toggle() {
  const [isOn, setIsOn] = useState(false);

  return (
    
      
## {isOn ? "Light ON 💡" : "Light OFF 🌙"}

       setIsOn(!isOn)}>Toggle
    
  );
}
  • false → 초기 상태.
  • 버튼을 클릭하면 값이 반전됩니다.
  • UI가 즉시 업데이트됩니다.

흔히 쓰이는 경우

  • 다크 모드 토글
  • 비밀번호 보기/숨기기
  • 드롭다운 메뉴
  • 모달 열기/닫기
0 조회
Back to Blog

관련 글

더 보기 »

맞춤형 댓글 섹션 만들기

React 앱에 댓글 섹션 추가 – 부피 없이 “시중에 나와 있는 모든 솔루션은 당신에게 자체 UI를 강요하거나, 원하지 않는 방대한 CSS를 쏟아붓거나, …”

Vue Composition API: Computed와 Ref 프로퍼티 설명

안녕하세요, 사랑스러운 독자 여러분. Vue 3와 TypeScript를 사용하고 있다면 `ref`와 `computed`를 여러 번 보았을 것입니다. 이들은 튜토리얼은 물론 실제 프로젝트에서도 자주 등장합니다.