RSS DEV 커뮤니티
팔로우
미들웨어 없는 효과 — 파이프라인 스테이지가 썬크와 사가를 대체하는 방법
Redux는 thunks, sagas, observables와 같은 미들웨어를 사용하여 비동기 작업을 처리하며, 이들은 보장된 순서 없이 임의의 시간에 액션을 디스패치합니다. 이는 thunk와 saga 예시에서 보여지듯이 타이밍 및 순서 문제가 발생할 수 있는 복잡한 디스패치 체인을 생성합니다. 핵심 문제는 Redux에 내장된 비동기 상태 해결 모델이 없다는 것입니다.SDuX Vault는 파이프라인 단계에 비동기 입력 해결을 직접 통합하여 미들웨어를 제거합니다. Resolve 단계는 일반 값, promise, observable 또는 구조화된 envelope 등 모든 입력을 예측 가능한 형식으로 정규화합니다. 이를 통해 다운스트림 파이프라인 단계는 전송 또는 타이밍 문제로부터 자유로운 일관된 데이터를 항상 수신할 수 있습니다.Redux thunks와 달리 여러 액션을 디스패치하고 예측 불가능하게 끼어들 수 있는 반면, SDuX Vault는 파이프라인 내에서 직접 지연된 팩토리를 해결합니다. 이 해결은 직렬화되고, 결정론적으로 순서가 지정되며, 원자적으로 커밋됩니다. SDuX Vault의 접근 방식은 단일 상태 병합을 포함하며 중간의 가시적인 상태를 피합니다.오케스트레이션을 위해 Redux sagas는 외부 계층에서 제너레이터를 사용하는 반면, SDuX Vault는 Policy Layer 내에서 Controller를 사용합니다. Controller는 계산 전에 실행 정책을 선언하여 데이터 변환 로직과 깔끔하게 분리합니다. 이는 리듀서에 도달하기 위해 액션을 디스패치하는 sagas와 대조됩니다.SDuX Vault는 아키텍처 제약 조건을 통해 결정론적 실행을 보장합니다: 직렬화된 conductor 큐, 순수 파이프라인 계산, 지연된 원자적 상태 커밋, 그리고 구조적으로 불가능한 재진입. 이는 런타임에 의해 강제되어 비동기 작업과 관련된 일반적인 버그를 방지합니다. Redux는 순서를 위해 수동 노력을 의존하는 반면, SDuX는 이를 본질적으로 제공합니다.