본문 바로가기
Programming

React 상태관리 도구 비교 (Context vs Redux)

by 나무수피아는 지식의 가지를 뻗어가는 공간입니다. 2025. 10. 31.
반응형

⚖️ Context API vs Redux

React에서 상태를 여러 컴포넌트에 걸쳐 공유해야 할 때 Context API 또는 Redux를 사용할 수 있습니다. 둘 다 전역 상태 관리를 위한 도구지만, 목적과 사용 방식에는 큰 차이가 있습니다.

1. Context API란?

Context는 React에서 기본 제공하는 기능으로, 컴포넌트 트리 전역에 데이터를 전달할 수 있습니다. 예: 로그인 사용자 정보, 테마 설정 등 비교적 단순한 전역 데이터 공유에 적합합니다.

2. Redux란?

Redux는 별도 설치가 필요한 상태 관리 라이브러리입니다. 중대형 프로젝트에서 상태를 예측 가능하고 구조적으로 관리하기 위해 사용됩니다. 액션 → 리듀서 → 스토어 방식의 흐름을 가집니다.

3. 비교표

항목 Context API Redux
설치 필요 여부 X (React 기본) O (redux, react-redux 등)
학습 난이도 낮음 높음
적합한 규모 작고 단순한 앱 대형 애플리케이션
디버깅 툴 거의 없음 Redux DevTools
미들웨어 지원 직접 구현 redux-thunk, redux-saga 등

4. 간단한 코드 예제

🧩 Context API

// UserContext.js import React, { createContext, useState } from 'react'; export const UserContext = createContext(); export function UserProvider({ children }) { const [user, setUser] = useState("guest"); return ( <UserContext.Provider value={{ user, setUser }}> {children} </UserContext.Provider> ); }

🧩 Redux 예시

// store.js import { createStore } from 'redux'; const initialState = { count: 0 }; function counter(state = initialState, action) { switch (action.type) { case "INCREMENT": return { count: state.count + 1 }; default: return state; } } export const store = createStore(counter);

5. 결론 및 선택 기준

  • Context: 앱 규모가 작고 공유 상태가 단순할 때 간편하게 사용
  • Redux: 상태가 복잡하고 예측 가능한 흐름이 필요한 대형 프로젝트에 적합

👉 선택은 프로젝트의 복잡도팀의 협업 스타일에 따라 달라져야 합니다.

반응형

'Programming' 카테고리의 다른 글

React TODO 리스트 + 라우팅  (50) 2025.11.02
React 폼 처리와 유효성 검사  (55) 2025.11.01
React Router  (73) 2025.10.30
React Context API  (72) 2025.10.29
React 커스텀 Hook 만들기  (68) 2025.10.28