합의 로그를 각 노드가 적용할 때 메일·결제를 직접 호출하면 왜 중복되며 실행 의도는 어디에 저장하나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
모든 복제 노드가 같은 명령을 apply하면서 직접 메일을 보내면 복제 수만큼 외부 효과가 생길 수 있습니다. apply는 결정적인 상태 변경과 내구 실행 의도를 기록하고 외부 호출은 별도 owner·멱등 키 경로에서 수행합니다.
리더만 실행해도 전환과 응답 유실 때문에 중복이 남으므로 역할 검사 하나로 충분하지 않습니다. outbox 상태·요청 ID를 snapshot에 포함하고 재시작 시 이미 완료한 효과를 조회합니다. 합의된 실행 의도와 외부 API의 성공은 다른 확정 지점입니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- 모든 복제 노드가 같은 명령을 apply하면서 직접 메일을 보내면 복제 수만큼 외부 효과가 생길 수 있습니다. apply는 결정적인 상태 변경과 내구 실행 의도를 기록하고 외부 호출은 별도 owner·멱등 키 경로에서 수행합니다.
- 합의된 실행 의도와 외부 API의 성공은 다른 확정 지점입니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: 모든 복제 노드가 같은 명령을 apply하면서 직접 메일을 보내면 복제 수만큼 외부 효과가 생길 수 있습니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.