다음은 React 상태관리 강의안입니다. 초급~중급 수강생을 대상으로, 상태의 개념부터 주요 관리 방법(useState, useReducer, Context API, 전역 상태관리 라이브러리 등)까지 연역적으로 구성했습니다. 학습 목적은 UI와 데이터 흐름의 연결 원리를 명확히 이해하고, 적절한 상태관리 기법을 적용할 수 있는 역량 확보입니다.
강의 구성 개요
회차 주제 주요 키워드
1강 | 상태란 무엇인가? | 상태(state), UI 갱신, 컴포넌트 렌더링 |
2강 | useState로 상태관리 시작 | useState, 초기값, setter함수 |
3강 | 상태와 이벤트 연결하기 | onClick, onChange, 상태변경, 렌더링 |
4강 | 상태 끌어올리기(Lifting State Up) | 부모-자식 간 상태 공유 |
5강 | 여러 상태 다루기 & 객체/배열 상태관리 | 복합 상태, 불변성 유지 |
6강 | useReducer를 활용한 구조적 상태관리 | 상태와 액션 분리, reducer함수 |
7강 | Context API로 전역 상태관리 기초 | 전역 공유, Provider, useContext |
8강 | 전역 상태관리 라이브러리 소개 | Redux, Recoil, Zustand 비교 |
9강 | 실습: Context + useReducer로 로그인 상태 관리하기 | 로컬 상태 vs 전역 상태 |
10강 | 상태관리 전략 종합 정리 | 상태 분류, 책임 분리, 선택 기준 |
회차별 강의안 상세
1강. 상태란 무엇인가?
개념 정의
- 상태(state)란? 컴포넌트 내부에서 변할 수 있는 데이터
- 상태에 따라 UI가 변화함 → 데이터의 상태에 따라 UI를 관리하는 것이 상태관리임
예시
const [count, setCount] = useState(0);
핵심 포인트
- 상태 = 숫자, 문자열, 객체, 배열 등 변할 수 있는 값
- 상태가 변경되면 컴포넌트는 자동으로 리렌더링
2강. useState로 상태관리 시작
핵심 문법
const [value, setValue] = useState(초기값);
예제: 카운터
const [count, setCount] = useState(0);
<button onClick={() => setCount(count + 1)}>+1</button>
요점
- useState는 가장 기본적인 상태관리 Hook
- setter 함수를 통해 상태를 변경하고 UI를 갱신
3강. 상태와 이벤트 연결하기
핵심 개념
- 사용자의 상호작용 → 이벤트 발생 → 상태 변화 → UI 갱신
예제: input 상태 반영
<input value={text} onChange={(e) => setText(e.target.value)} />
4강. 상태 끌어올리기 (Lifting State Up)
개념
- 여러 컴포넌트가 공유해야 하는 상태는 공통 부모로 끌어올려 관리
구조 예시
Parent
├─ ChildA (입력)
└─ ChildB (출력)
5강. 객체와 배열 상태 다루기
문제점
- 객체/배열은 불변성을 유지하지 않으면 UI가 갱신되지 않음
해결방법
- spread 연산자 사용
setUser({ ...user, name: 'Lee' });
6강. useReducer로 복잡한 상태 관리
구조적 패턴
const [state, dispatch] = useReducer(reducer, 초기값);
Reducer 예시
function reducer(state, action) {
switch(action.type) {
case 'increment':
return { count: state.count + 1 };
}
}
7강. Context API로 전역 상태 관리
구성 요소
- Context 생성 → Provider로 감싸기 → useContext로 사용
예제
const AuthContext = createContext();
주의점
- 상태변화가 많을 경우, 성능 이슈 유발 가능
8강. 상태관리 라이브러리 비교
라이브러리 특징
Redux | 명확한 구조, 규모 있는 앱에 적합 |
Recoil | React 친화적, atom 기반 |
Zustand | 간결한 API, 작은 앱에 적합 |
9강. 실습: 로그인 상태 관리
- 로그인 여부를 Context + useReducer로 관리
- 로그인/로그아웃 버튼 토글 처리
10강. 상태관리 전략 정리
단계 요약
- 로컬 상태: useState, useReducer
- 공유 상태: 상태 끌어올리기
- 전역 상태: Context API
- 대규모 앱: 외부 상태관리 라이브러리
선택 기준
- 상태의 범위, 복잡성, 재사용성 고려
부가자료 제공
- 상태관리 흐름도 도식
- 상태관리 방식별 코드 템플릿
- 선택 가이드 PDF
💬 댓글
이번 글이 도움이 되었길 바랍니다. 궁금한 점이나 요청이 있다면 언제든 댓글로 남겨주세요. 댓글은 저에게 큰 힘이 됩니다. 다음 글도 기대해주세요.
'프론트엔드 개발 실무 > React 기초부터 프로젝트까지' 카테고리의 다른 글
[React 상태관리 완전정복 2] useState로 상태관리 시작하기 (0) | 2025.06.18 |
---|---|
[React 상태관리 완전정복 1] 상태란 무엇인가? (0) | 2025.06.16 |
리액트 상태관리란? (0) | 2025.06.16 |
[ChatGPT 챗봇 실습 10강] 상태 관리 도입 – useContext와 useReducer로 구조화 (0) | 2025.06.13 |
[ChatGPT 챗봇 실습 9강] 반응형 UI, 다크모드, 입력 UX 개선 (0) | 2025.06.13 |