Raft 명령은 커밋됐지만 응답을 잃었습니다. 요청 ID별 결과를 상태 머신과 snapshot에 어떻게 보관하나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
논리 client 요청 ID와 처리 결과를 상태 머신 적용과 함께 보관해 같은 명령이 다른 로그 위치에 다시 들어와도 효과를 반복하지 않게 합니다. 응답 유실은 commit 실패의 증거가 아닙니다.
snapshot에도 dedup 상태와 필요한 결과를 포함하고 보존 기간을 최대 재시도와 맞춥니다. 외부 결제·메일의 효과는 별도 멱등 경계가 필요합니다. commit·apply·응답 전후 중단을 시험합니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- 논리 client 요청 ID와 처리 결과를 상태 머신 적용과 함께 보관해 같은 명령이 다른 로그 위치에 다시 들어와도 효과를 반복하지 않게 합니다. 응답 유실은 commit 실패의 증거가 아닙니다.
- commit·apply·응답 전후 중단을 시험합니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: 논리 client 요청 ID와 처리 결과를 상태 머신 적용과 함께 보관해 같은 명령이 다른 로그 위치에 다시 들어와도 효과를 반복하지 않게 합니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.