Redux
  • Read Me
  • 소개
    • 동기
    • Core Concepts
    • 3가지 원칙
    • 기존 기술들
    • Learning Resources
    • 생태계
    • 예시
  • 기초
    • 액션
    • 리듀서
    • 스토어
    • 데이터 흐름
    • React와 함께 사용하기
    • 예시: Todo List
  • 심화
    • 비동기 액션
    • 비동기 흐름
    • 미들웨어
    • React Router와 함께 사용하기
    • 예시: Reddit API
    • Next Steps
  • 레시피
    • Configuring Your Store
    • Redux로 마이그레이션
    • 객체 확산 연산자 사용하기
    • 보일러플레이트 줄이기
    • Server Rendering
    • Writing Tests
    • Computing Derived Data
    • Implementing Undo History
    • Isolating Subapps
    • 리듀서 구조화하기
      • 사전에 요구되는 개념들
      • 기본 리듀서 구조
      • 리듀서 로직 분리하기
      • 리듀서 예제 리팩토링하기
      • combineReducers 사용하기
      • combineReducers 더 알아보기
      • 상태 정규화하기
      • 정규화된 데이터 업데이트하기
      • 리듀서 로직 재사용하기
      • 불변 업데이트 패턴
      • 상태 초기화하기
    • Using Immutable.JS with Redux
  • FAQ
    • General
    • Reducers
    • Organizing State
    • Store Setup
    • Actions
    • Immutable Data
    • Code Structure
    • Performance
    • Design Decisions
    • React Redux
    • Miscellaneous
  • 문제해결
  • 용어사전
  • API 레퍼런스
    • createStore
    • Store
    • combineReducers
    • applyMiddleware
    • bindActionCreators
    • compose
  • 변경 기록
  • 후원자
  • 피드백
Powered by GitBook
On this page
  • 리듀서 작성을 위해 알아야 할 개념
  • 사전에 요구되는 개념들
  • 리듀서 개념과 테크닉
  1. 레시피

리듀서 구조화하기

PreviousIsolating SubappsNext사전에 요구되는 개념들

Last updated 6 years ago

핵심적으로 리덕스는 매우 간단한 디자인 패턴입니다. 당신의 모든 "작성" 로직은 하나의 함수로 귀결됩니다. 그리고 그 로직을 실행할 수 있는 유일한 방법은 리덕스에게 어떤 일이 일어난다는 것을 표현하는 일반 객체를 넘겨주는 것입니다. 리덕스 스토어는 작성로직을 호출, 현재의 상태트리와 설명객체를 전달하고 작성 로직 함수는 새로운 상태 트리를 반환합니다. 그리고 리덕스 스토어는 구독자(subscribers)에게 상태가 바뀌었음을 알립니다.

리덕스는 작성 로직 함수의 동작에 대해 몇 가지 제약을 둡니다. 에서 설명한 것처럼 리듀서 함수는 (previousState, action) => newState의 형태를 가지고, 순수함수이며 예측 가능해야 합니다.

더욱이 기본적인 형태만 맞춘다면 리덕스는 리듀서 함수가 어떤 로직을 구성하는지는 신경쓰지 않습니다. 이는 자유의 근원이자 혼란의 근원이 됩니다. 하지만 리듀서를 작성하는데 널리 사용되는 패턴 뿐만아니라 관련된 많은 주제와 개념들을 알고 있어야 합니다. 애플리케이션의 크기가 커지면서 이 패턴은 리듀서 코드의 복잡성과 실제 데이터, UI 성능 최적화에 결정적인 역할을 합니다.

리듀서 작성을 위해 알아야 할 개념

개념중 일부는 이곳 어딘가에서 이미 설명했습니다. 어떤 것들은 리덕스외에도 일반적으로 사용되고 응용될 수 있으며 이를 자세히 다루고 있는 수많은 글들이 존재합니다.

리덕스의 더 깊은 부분과 특유의 테크닉을 보기전에 이런 개념들을 철저히 익히는 것은 필수적입니다. 다음은 읽기보기를 추천하는 목록입니다:

이것들이 애플리케이션의 아키텍처 결정에 직접 사용될 수도 있고 그렇지 않을 수도 있다는 것에 주의해야 합니다. 예를 들어 데이터를 저장하는데 Immutable.js Maps를 사용하는 것은 일반적인 자바스크립트 객체를 사용하는 것과는 차이가 있을겁니다. 여기서 설명하는 이론들은 일반적인 자바스크립트 객체를 사용한다고 가정하지만, 다른 것들을 사용하더라도 적용됩니다.

리듀서 개념과 테크닉

리듀서
사전에 요구되는 개념들
기본 리듀서 구조
리듀서 로직 분리하기
리듀서 로직 리팩토링하기
combineReducers사용하기
combineReducers더 알아보기
상태 정규화하기
정규화된 데이터 업데이트하기
리듀서 로직 재사용하기
뷸변 업데이트 패턴
상태 초기화하기