비동기 작업을 처리할 때 가장많이 사용하는 미들웨어입니다. 객체가 아닌 함수 형태의 액션을 디스패치할 수 있게 해줍니다.
이것도 thunk와 마찬가지로 비동기 작업 관련 미들웨어 입니다.특정 액션이 디스패치되었을 때 정해진 로직에 따라 다른 액션을 디스패치시키는 규칙을 작성하여 비동기 작업을 처리할 수 있게 해줍니다.
미들웨어란?
리덕스 미들웨어는 액션을 디스패치했을 때 리듀서에서 이를 처리하기에 앞서 사전에 지정된 작업들을 실행합니다. 미들웨어는 액션과 리듀서 사이의 중간자라고 볼 수 있습니다.
redux-saga는 좀더 까다로운 상황에서 유용합니다.
제너레이터 함수란?
redux-saga에서는 제너레이터 함수라는 문법을 사용합니다. 이 문법의 핵심은 함수를 작성할 때 함수를 특정 구간에 멈춰 놓을 수도 있고, 원할 때 다시 돌아가게 할 수도 있습니다.
redux-thunk는 일반 함수로 이루어져 있기 때문에 간단명료하다는 장점이 있고, redux-saga는 제너레이터 때문에 진입장벽이 조금 있을 수 있으나 복잡한 상황에서 더욱 효율 적이고 작업을 관리할 수 있다는 장점이 있습니다.