React Academy · 강의

Redux Toolkit 조각과 createSlice

createSlice로 리듀서 로직을 만들고 동작을 정의한 뒤 Redux 스토어에 연결합니다.

레슨 1/413개 단계

Redux Toolkit 조각과 createSlice은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

이 레슨에서는 createSlice로 Redux Toolkit 슬라이스를 만들고, 한곳에서 동작과 리듀서를 정의하며, 이를 Redux store에 연결합니다.

Redux Toolkit이란 무엇인가요?

Redux Toolkit(RTK)은 Redux를 작성하는 공식적이고 일관된 방식입니다. 리듀서, 동작 생성 함수, 초기 상태를 하나의 createSlice() 호출로 결합하여 반복 코드를 없앱니다.

설치

Redux Toolkit과 react-redux를 설치합니다.
npm install @reduxjs/toolkit react-redux

createSlice

이름, initialState, reducers 객체를 사용하여 createSlice()를 호출합니다. RTK가 동작 생성 함수와 동작 유형을 자동으로 생성합니다.
import { createSlice } from '@reduxjs/toolkit';

const counterSlice = createSlice({
  name: 'counter',
  initialState: { value: 0 },
  reducers: {
    increment: state => { state.value += 1; },
    decrement: state => { state.value -= 1; },
    incrementBy: (state, action) => { state.value += action.payload; },
  },
});

export const { increment, decrement, incrementBy } = counterSlice.actions;
export default counterSlice.reducer;

Immer 내부 동작

RTK는 내부적으로 Immer를 사용하므로 변경하는 리듀서 로직 (`state.value += 1`)을 안전하게 작성할 수 있습니다. Immer는 이를 내부에서 불변 업데이트로 변환합니다.

스토어 구성

configureStore()로 Redux 스토어를 만들고 슬라이스를 리듀서로 추가합니다.
import { configureStore } from '@reduxjs/toolkit';
import counterReducer from './counterSlice';

export const store = configureStore({
  reducer: {
    counter: counterReducer,
  },
});

스토어 제공

react-redux의 Provider로 앱을 감싸고 스토어를 전달합니다.
import { Provider } from 'react-redux';
import { store } from './store';

createRoot(document.getElementById('root')).render(
  <Provider store={store}><App /></Provider>
);

useSelector와 useDispatch

useSelector로 상태를 읽고 useDispatch로 액션을 디스패치합니다. TypeScript에서는 타입이 지정된 버전을 사용합니다.
import { useSelector, useDispatch } from 'react-redux';

function Counter() {
  const value = useSelector(state => state.counter.value);
  const dispatch = useDispatch();
  return (
    <>
      <p>{value}</p>
      <button onClick={() => dispatch(increment())}>+</button>
      <button onClick={() => dispatch(incrementBy(5))}>+5</button>
    </>
  );
}

TypeScript 타입

완전히 타입이 지정된 훅을 사용하려면 store.ts에서 RootState와 AppDispatch 타입을 내보냅니다.
export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;
// Then use typed hooks:
const value = useSelector((s: RootState) => s.counter.value);

추가 리듀서

extraReducers 필드는 다른 슬라이스나 createAsyncThunk에서 발생한 액션을 처리합니다. builder 콜백 패턴을 사용해 케이스를 추가합니다.
extraReducers: (builder) => {
  builder.addCase(fetchUser.fulfilled, (state, action) => {
    state.user = action.payload;
  });
}

빠른 확인

Redux Toolkit 리듀서 안에서 `state.value += 1`처럼 상태를 변경하는 코드를 작성할 수 있는 이유는 무엇인가요?

복습

createSlice는 이름, initialState, 리듀서를 하나의 객체로 결합합니다. Immer를 사용하면 변경 가능한 스타일의 리듀서 코드를 작성할 수 있습니다. configureStore는 슬라이스를 하나로 구성합니다. useSelector는 상태를 읽고, useDispatch는 액션을 디스패치합니다.

다음 학습 내용

다음 수업: **createAsyncThunk를 사용한 비동기 로직** — 생명주기 액션 타입을 사용해 Redux에서 API 호출을 처리합니다.
무료로 시작

AI 튜터와 함께 React을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
88
레슨
324

자주 묻는 질문

“Redux Toolkit 조각과 createSlice” 강의는 무료인가요?

네 — “Redux Toolkit 조각과 createSlice” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“Redux Toolkit 조각과 createSlice”에서 뭘 배우나요?

createSlice로 리듀서 로직을 만들고 동작을 정의한 뒤 Redux 스토어에 연결합니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

React Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“Redux Toolkit 조각과 createSlice” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Redux Toolkit 조각과 createSlice
  2. createAsyncThunk로 비동기 로직 다루기
  3. RTK Query: 엔드포인트와 자동 캐싱
  4. 낙관적 업데이트와 캐시 무효화
← React Academy(으)로 돌아가기