For the complete documentation index, see llms.txt. This page is also available as Markdown.

스토어 설정

이 페이지에서는 Redux 스토어를 구성하고, 타입이 지정된 훅을 설정하며, 프로젝트 구조를 정리하는 방법을 다룹니다.

폴더 구조

프로젝트는 일관성과 유지보수를 위해 다음 구조를 반드시 따라야 합니다:

src/
  app/
    store.ts              # 스토어 설정
    hooks.ts              # 타입이 지정된 훅(useAppDispatch/useAppSelector)
  shared/
    types/                # DTO(API), 도메인 모델, 매퍼
    utils/                # 공통 유틸리티
  services/
    client.ts             # RTK Query 기본 클라이언트
    baseQuery.ts          # auth/chainId/retry가 포함된 기본 쿼리
  features/
    user/
      user.client.ts      # RTK Query 엔드포인트
      user.slice.ts       # UI 상태 슬라이스
      user.selectors.ts   # 메모이즈된 셀렉터
      __tests__/          # 테스트
    land/
      land.client.ts
      land.slice.ts
      land.selectors.ts
    credits/
      credits.client.ts
      credits.slice.ts
      credits.selectors.ts

폴더 구성 원칙

  • 기능 기반 - 기술적 역할이 아니라 비즈니스 도메인별로 그룹화하세요

  • 함께 배치 - 관련 코드는 함께 두세요

  • 명확한 분리 - 원격 데이터(.client.ts)와 로컬 상태(.slice.ts)

스토어 설정

스토어는 RTK의 configureStore 및 필요한 모든 미들웨어를 포함해야 합니다.

기본 스토어 설정

구성 옵션

직렬화 가능성 검사

이 serializableCheck 미들웨어는 모든 상태가 직렬화 가능한지 검증합니다. 알려진 예외는 무시하도록 구성하세요:

개발자 도구

디버깅을 위해 개발 환경에서 Redux DevTools를 활성화하세요:

프로덕션 디버깅이 필요하다면, 다음과 같이 특정 구성을 사용하세요:

타입 지정 훅

타입이 지정된 버전을 생성하세요 useDispatch 및 useSelector 더 나은 타입 추론과 개발자 경험을 위해.

훅 설정

컴포넌트에서의 사용

타입 지정 훅의 장점

  1. 자동 완성 - 상태 구조에 대한 완전한 IntelliSense

  2. 타입 안전성 - 컴파일 시 오류 포착

  3. 리팩터링 - 자신 있게 상태 속성 이름 변경

  4. 반복 코드 감소 - 지정할 필요 없음 RootState 반복해서

Provider 설정

앱을 Redux Provider로 감싸세요:

Next.js App Router

Next.js Pages Router

React (Vite/CRA)

환경 구성

환경별 설정을 구성하세요:

타입 정의

일관성을 위해 공통 타입 정의를 생성하세요:

여러 스토어 인스턴스

테스트 또는 마이크로 프런트엔드를 위해 여러 스토어 인스턴스가 필요할 수 있습니다:

모범 사례

1. 단일 스토어

애플리케이션마다 하나의 스토어 인스턴스만 사용하세요:

2. 리듀서 지연 로딩

코드 분할을 위해 리듀서를 동적으로 주입하세요:

3. 핫 모듈 교체

개발 환경에서 리듀서에 HMR을 활성화하세요:

4. 상태 영속화

redux-persist를 사용할 때는 신중하게 구성하세요:

다음 단계

마지막 업데이트