Redux-saga와 Redux-thunk

모두의희망·2022년 11월 23일
0
post-thumbnail

Redux-thunk

비동기 작업을 처리할 때 가장많이 사용하는 미들웨어입니다. 객체가 아닌 함수 형태의 액션을 디스패치할 수 있게 해줍니다.

Redux-saga

이것도 thunk와 마찬가지로 비동기 작업 관련 미들웨어 입니다.특정 액션이 디스패치되었을 때 정해진 로직에 따라 다른 액션을 디스패치시키는 규칙을 작성하여 비동기 작업을 처리할 수 있게 해줍니다.

미들웨어란?

리덕스 미들웨어는 액션을 디스패치했을 때 리듀서에서 이를 처리하기에 앞서 사전에 지정된 작업들을 실행합니다. 미들웨어는 액션과 리듀서 사이의 중간자라고 볼 수 있습니다.

Redux-saga와 Redux-thunk 비교

redux-saga는 좀더 까다로운 상황에서 유용합니다.

  • 기존 요청을 취소 처리해야 할 때(불필요한 중복 요청 방지)
  • 특정 액션이 발생했을 때 다른 액션을 발생시키거나,API 요청 등 리덕스와 관계없는 코드를 실행 할때
  • 웹소켓을 사용할 때
  • API 요청 실패시 재요청해야 할 때

    제너레이터 함수란?

    redux-saga에서는 제너레이터 함수라는 문법을 사용합니다. 이 문법의 핵심은 함수를 작성할 때 함수를 특정 구간에 멈춰 놓을 수도 있고, 원할 때 다시 돌아가게 할 수도 있습니다.


정리

redux-thunk는 일반 함수로 이루어져 있기 때문에 간단명료하다는 장점이 있고, redux-saga는 제너레이터 때문에 진입장벽이 조금 있을 수 있으나 복잡한 상황에서 더욱 효율 적이고 작업을 관리할 수 있다는 장점이 있습니다.

profile
개발을 진정성 있게 다가가겠습니다.

0개의 댓글