Skip to Content

데이터 전달 보장 방법론

개요

데이터 전달 보장 방법론은 엔드포인트부터 엔드포인트까지 데이터를 전달하는 추상화된 방법론을 의미한다. REST API, Message Queue 등 어떤 기술을 사용하든 적용 가능한 일반적인 개념이다.

1. At Most Once Delivery (최대 한 번)

개념 및 동작 방식

Fire and Forget 방식으로, 프로듀서가 메시지를 전송하고 완료한다. 컨슈머의 수신 여부와 관계없이 동작하므로, 결과적으로 컨슈머는 메시지를 받지 못할 수 있다.

메시지 유실 원인

원인설명
네트워크 문제네트워크는 신뢰할 수 없는 매체이므로 패킷/메시지가 네트워크 상에서 유실될 수 있음
애플리케이션 문제프로듀서에서 Exception 발생, 컨슈머가 메시지를 받았지만 정상 처리에 실패

장단점

장점단점
구조가 간단 (보내고 끝)메시지 유실 가능
개발이 쉬움 (복잡한 로직 불필요)중요한 데이터에는 부적합
대용량 처리 용이 (성능 오버헤드 적음)

2. At Least Once Delivery (최소 한 번)

개념 및 동작 방식

프로듀서가 컨슈머의 Ack를 받을 때까지 상태를 기록하고 계속 재전송한다. 결과적으로 같은 메시지가 중복으로 전송될 수 있다.

장단점

장점단점
메시지 전달 보장중복 수신 가능
비교적 쉬운 구현 (상태 관리만 필요)순서 보장 없음
효과 대비 개발 비용 적절멱등성 구현 필수

3. Exactly Once Delivery (정확히 한 번)

개념 및 동작 방식

정확하게 한 번만 전달한다. 가장 이상적이지만 구현이 어려운 방식이다.

장단점

장점단점
메시지 누락 없음구현 난이도 매우 높음 (복잡한 로직, 컴포넌트 간 조율)
메시지 중복 수신 없음시스템 복잡도 증가 (3개 컴포넌트 관리)
완벽한 데이터 일관성성능 오버헤드 (정확성 보장 위한 추가 처리)

세 가지 전달 보장 방법 비교

구분At Most OnceAt Least OnceExactly Once
개념최대 한 번만 전달최소 한 번 이상 전달정확하게 한 번만 전달
신뢰성낮음중간높음
구현 난이도쉬움중간어려움
성능높음중간낮음
메시지 유실가능없음없음
메시지 중복없음가능없음

참고 자료

[NHN FORWARD 22] 분산 시스템에서 데이터를 전달하는 효율적인 방법 

Last updated on