ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • redux] async 를 어떻게 처리 하는게 좋을까?
    물망초. 2021. 11. 14. 16:31

    async 를 처리하기 위한 다양한 것 중에 나는 무엇을 써야할까? thunks? saga? observables?

    • Thunks are best for complex synchronous logic (especially code that needs access to the entire Redux store state), and simple async logic (like basic AJAX calls). With the use of async/await, it can be reasonable to use thunks for some more complex promise-based logic as well.
      (썽크는 복잡한 동기 논리(특히 전체 Redux 저장소 상태에 액세스해야 하는 코드)와 간단한 비동기 논리(기본 AJAX 호출과 같은)에 가장 적합합니다. 를 사용하면 async/await좀 더 복잡한 약속 기반 논리에도 썽크를 사용하는 것이 합리적일 수 있습니다.)
    • Sagas are best for complex async logic and decoupled "background thread"-type behavior, especially if you need to listen to dispatched actions (which is something that can't be done with thunks). They require familiarity with ES6 generator functions and redux-saga's "effects" operators.
      (Sagas는 복잡한 비동기 논리 및 분리된 "백그라운드 스레드" 유형 동작에 가장 적합하며, 특히 파견된 작업(썽크로 수행할 수 없는 작업)을 수신해야 하는 경우에 가장 적합합니다. 그들은 ES6 생성기 함수와 redux-saga의 "효과" 연산자에 익숙해야 합니다 .)
    • Observables solve the same problems as sagas, but rely on RxJS to implement async behavior. They require familiarity with the RxJS API.
      (Observable은 sagas와 동일한 문제를 해결하지만 RxJS에 의존하여 비동기 동작을 구현합니다. RxJS API에 익숙해야 합니다.)

    redux-async middleware

    유일하게 위에 3개 중에서 saga를 사용하고 있는데, 기재된 대로 백그라운드에서 처리되는 것을 활용하는데 있어서는 최상의 시너지가 나는 것 같다.

    *thunk 의 경우 특정 비동기 작업을 처리하는데 있어서 reducer는 pure 한 형태를 지니도록 두고, dispatch 된 request를 middleware에서 한번 캐치하여 오염없이 비동기를 처리 후 다시 success/error 에대한 대요청을 하는 방법인 듯 하다.

    *saga의 경우는 특정 action에 대해서 상시 대기하고 있다가 특정 action이 트리거 되었을 때 해당 action을 캐치하여 꼭 스레드와 같은 형태로 동작하여 특정 action으로부터 파생된 일련의 태스크를 수행하는 로직인 듯 하다.

    *단순히 async 에 대한 처리를 수행한다면 thunk가 유의미하고, 특정 action을 지속적으로 감시하여 복잡한 일련의 태스크를 수행하는 방법이 필요하며 비즈니스로직을 깔끔하게 이동시키기 위할 때 사용하면 될 듯 하다.

    '물망초.' 카테고리의 다른 글

    Typescript - 기본타입  (0) 2022.04.24
    Dockerfile 명령어  (0) 2022.01.17
    text-decoration is not woking?  (0) 2021.10.07
    답이 없다..  (0) 2021.10.01
    왜 text-overflow ellipsis 가 동작하지 않는거지??  (0) 2021.08.21

    댓글

Designed by Tistory.