처음 만난 리덕스 (Redux) 문서


12.9 12강 요약

  • Saga
    • 분산 된 트랜잭션을 사용하여 긴 프로세스를 관리하는 방법
    • Side Effect를 활용하여 데이터 흐름을 관리하는 방법
  • Generator Function
    • ES6에서 Iterator의 역할을 보완하기 위해 새롭게 등장한 문법
    • function* 형태로 사용하며, 호출 시 Generator 객체를 리턴
    • Generator는 Iterator의 한 종류
      • 지속적으로 코드를 실행하는 것이 아닌, 원하는 시점에 코드를 실행할 수 있게 해줌.
    • yield 키워드는 Generator 객체로부터 결과를 산출 할 때 사용
  • redux-saga
    • Redux에서 Side Effect를 편하고 직관적으로 사용할 수 있게 해주는 라이브러리
    • Effect를 선언하는 형태로 Side Effect를 사용
      • Effect는 Generator로부터 yield된 JavaScript 객체를 의미
    • 다양한 Effect Creators
      • take, takeEvery, takeLatest, takeLeading, put, call, select
    • Action을 Dispatch하기 위해서는 put() 함수를 사용
  • redux-saga 사용 방법
    1. 각각의 Action 분류에 대해서 별도의 Saga 파일 구현
    2. Saga들을 all() 함수의 파라미터로 넣어서 rootSaga 생성후 Redux Store에 연동
    3. sagaMiddlewarerun() 함수를 사용해서 rootSaga를 실행해주기
  • Thunk vs Saga
    • Thunk와 Saga 모두 Redux에서 Side Effects를 사용할 수 있게 해줌.
    • Async Logic 처리 방식 및 사용 난이도에 차이가 있음.
    • 규모 ⬆︎, 복잡한 Async Logic ✅ → Saga
    • 규모 ⬇︎, 복잡한 Async Logic ❌ → Thunk

마지막 업데이트: 2023년 07월 14일 00시 00분

이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.