728x90
Redux Toolkit으로 React 상태 관리 최적화: 초기 설정부터 비동기 상태 관리까지
강의 목표:
- Redux의 단점(초기 설정 복잡성, 성능 문제, React 호환성 문제 등)을 Redux Toolkit을 사용해 단계별로 최적화하는 방법을 배운다.
- 상태 관리의 최적화 과정에서 하나의 샘플 애플리케이션을 만들어 가면서 실습을 진행한다.
- 비동기 상태 관리를 효율적으로 처리하고 상태 업데이트 방식을 개선한다.
대상:
Redux를 처음 접하거나 기존 Redux 사용 시 성능 문제나 설정의 복잡함을 느꼈던 개발자들.
강의 목차:
1. Redux Toolkit 소개 및 설치
- 이론
- Redux와 Redux Toolkit의 차이점 소개.
- Redux Toolkit이 해결하는 문제들 (설정 간소화, 성능 개선, 비동기 처리 등).
- 실습
- 프로젝트 생성: npx create-react-app을 사용해 기본 React 프로젝트 생성.
- Redux Toolkit 설치: @reduxjs/toolkit 및 react-redux 설치.
- 프로젝트 구조 설정: Redux Toolkit의 기본 파일 구조 설정.
2. 초기 설정의 복잡성 해결
- 이론
- 기존 Redux의 복잡한 설정 과정 설명 (스토어 설정, 리듀서 작성, 액션 생성 등).
- Redux Toolkit의 configureStore와 createSlice를 사용해 설정 간소화.
- 실습
- 카운터 앱 예제:
- createSlice를 사용해 리듀서와 액션을 하나의 파일에서 설정.
- configureStore를 사용해 스토어 설정.
- useSelector, useDispatch를 사용해 상태 조회 및 액션 디스패치.
- 카운터 앱 예제:
- 핵심 학습 내용: 초기 설정을 간소화하는 Redux Toolkit의 도구들 (createSlice, configureStore).
3. 성능 최적화: Zustand와 비교
- 이론
- Zustand와 Redux의 성능 차이 설명 (불필요한 리렌더링 등).
- Redux에서 발생하는 성능 문제 (상태 변경 시 전역 리렌더링 등).
- Redux Toolkit의 최적화 방법: useSelector로 필요한 상태만 선택하고 React.memo로 컴포넌트 리렌더링 방지.
- 실습
- Todo 리스트 예제:
- Todo 항목 추가/삭제 기능 구현.
- useSelector로 필요한 상태만 구독.
- React.memo로 성능 최적화.
- Todo 리스트 예제:
- 핵심 학습 내용: 상태 구독과 컴포넌트 리렌더링 최적화를 통한 성능 개선.
4. React 호환성 개선
- 이론
- React와 Redux 간의 호환성 문제: 컴포넌트 리렌더링 문제, 상태 구독의 비효율성.
- Redux Toolkit의 useSelector, useDispatch를 사용해 React와 자연스럽게 호환하는 방법.
- Context API와 Redux를 조합하여 더 나은 호환성 제공.
- 실습
- 사용자 정보 관리 앱 예제:
- createSlice로 사용자 정보 관리 (로그인/로그아웃).
- Context API를 사용해 로컬 상태와 전역 상태를 혼합해 사용.
- 사용자 정보 관리 앱 예제:
- 핵심 학습 내용: React와 Redux를 자연스럽게 연결하는 방법.
5. 전역 상태 업데이트 방식의 한계와 대책
- 이론
- Redux의 전역 상태 관리 문제점 (모든 상태가 전역적으로 관리되므로, 특정 상태 변경 시 모든 컴포넌트가 리렌더링될 수 있음).
- Zustand나 Jotai처럼 더 세분화된 상태 관리가 가능한 방식 소개.
- Redux Toolkit으로 전역 상태 관리의 단점을 해결하는 방법: 선택적 구독, Reselect 사용.
- 실습
- 제품 관리 앱 예제:
- 제품 리스트와 카트 상태를 관리.
- createSlice로 제품 상태 관리.
- Reselect를 사용해 선택적으로 상태 구독하여 성능 최적화.
- 제품 관리 앱 예제:
- 핵심 학습 내용: 전역 상태 관리의 한계를 보완하는 방법 (Reselect, 선택적 구독).
6. 비동기 상태 관리 (미들웨어 없이 효율적으로 처리하기)
- 이론
- 전통적인 Redux에서의 비동기 상태 관리 문제점 (Thunk, Saga의 복잡성).
- Redux Toolkit의 createAsyncThunk로 간단하게 비동기 상태 관리하기.
- 실습
- API 연동 예제:
- createAsyncThunk로 사용자 데이터 가져오기 구현.
- 비동기 상태 (pending, fulfilled, rejected) 처리.
- 비동기 상태에 따른 UI 업데이트 및 상태 관리.
- API 연동 예제:
- 핵심 학습 내용: 비동기 상태를 효율적으로 관리하는 createAsyncThunk의 사용법.
7. Redux Toolkit을 활용한 최종 프로젝트
- 이론
- 지금까지 배운 내용을 종합하여 실전 프로젝트에 적용하는 방법 설명.
- 실습
- 간단한 쇼핑몰 앱:
- 제품 목록 API 연동, 장바구니 기능 구현.
- 비동기 상태 관리, 전역 및 로컬 상태 관리 혼합 사용.
- 성능 최적화 및 React 호환성 개선.
- 간단한 쇼핑몰 앱:
- 핵심 학습 내용: Redux Toolkit을 실제 프로젝트에 적용하여 복잡한 상태 관리와 성능 문제 해결.
마무리 및 Q&A
- Redux Toolkit을 사용해 초기 설정의 복잡성, 성능 문제, React 호환성 문제를 해결하는 방법을 되짚어봅니다.
- 학습한 내용을 바탕으로 더 복잡한 프로젝트에 적용할 수 있는 방법 논의.
강의 요약:
이 강의는 Redux Toolkit을 사용해 초기 설정, 성능, React 호환성, 전역 상태 관리, 비동기 상태 관리의 단점을 해결하는 방법을 다룹니다. 단계별로 실습을 진행하며, 최종적으로 실제 프로젝트에서 Redux Toolkit을 활용하는 방법을 익히는 것이 목표입니다.
728x90
'React > Redux 마스터' 카테고리의 다른 글
Redux Toolkit 강좌(2강): 복잡성 해결 (0) | 2024.10.21 |
---|---|
Redux Toolkit 활용(1강): Redux Toolkit 소개 및 설치 (1) | 2024.10.17 |
Redux 마스터(7): Redux DevTools와 상태 테스트 (4) | 2024.10.11 |
Redux 마스터(6): Redux에서 복잡한 상태 관리 및 성능 최적화 (0) | 2024.10.11 |
Redux 마스터(5): Redux Toolkit 소개 및 실전 사용 (1) | 2024.10.11 |