React의 Context API로 전역 상태 관리하기 – props drilling 없이 데이터 전달
반응형
React 애플리케이션이 커지면서 컴포넌트 간에 데이터를 전달하기 어려워지는 경우가 많습니다. 이때 Context API를 사용하면 전역 데이터를 간단하게 관리할 수 있습니다.
1. props drilling 문제란?
상위 컴포넌트의 데이터를 하위로 계속 전달해야 하는 상황을 props drilling이라고 합니다. 예:
<App>
<Parent user={user}>
<Child user={user}>
<GrandChild user={user} />
</Child>
</Parent>
</App>
이런 구조는 관리가 어렵고, 중간 컴포넌트는 실제로 데이터를 사용하지 않더라도 전달해야 합니다.
2. Context API 기본 사용법
1) Context 생성
import { createContext } from 'react';
export const UserContext = createContext(null);
2) Provider로 감싸기
import { UserContext } from './UserContext';
function App() {
const user = { name: '홍길동', age: 30 };
return (
<UserContext.Provider value={user}>
<Profile />
</UserContext.Provider>
);
}
3) 하위 컴포넌트에서 사용
import { useContext } from 'react';
import { UserContext } from './UserContext';
function Profile() {
const user = useContext(UserContext);
return <div>안녕하세요, {user.name}님!</div>;
}
3. 전역 상태 관리로 활용하기
Context는 사용자 정보, 테마 설정, 언어 설정 등 전역에서 사용하는 값을 관리할 때 유용합니다.
4. 주의할 점
- 자주 변경되는 값(state)을 넣으면 성능 이슈가 생길 수 있습니다
- Context는 전역 상태의 복잡도가 클 경우
Redux
또는Recoil
과 같은 상태 관리 라이브러리가 더 적합할 수 있습니다
5. 마무리
Context API는 props 전달을 간소화하고 전역 상태를 보다 깔끔하게 관리할 수 있는 강력한 도구입니다. 작은 규모의 프로젝트나 사용자 인증, 테마 등 공통 데이터에 특히 효과적입니다.
반응형
'Programming > React' 카테고리의 다른 글
React에서 비동기 데이터 처리 – useEffect와 fetch, axios 제대로 쓰기 (0) | 2025.04.11 |
---|---|
React 성능 최적화 – React.memo, useCallback, useMemo (0) | 2025.04.11 |
React에서 Form 입력값 제어 – Controlled vs Uncontrolled Components (0) | 2025.04.11 |
React Router v6 완벽 가이드 – 페이지 라우팅 기본부터 동적 라우트까지 (0) | 2025.04.11 |
React에서 절대 경로(import alias) 설정하기 – jsconfig.json / tsconfig.json 활용법 (0) | 2025.04.11 |