멱등성이란?
멱등성은 같은 요청을 여러번 수행해도 결과가 한 번 수행한 것과 동일하게 유지되는 성질을 이야기한다.
즉, 요청이 반복되더라도 결과가 변하지 않아야 한다.
금액 처리 예시로 보는 멱등성
멱등성이 없는 경우
사용자는 한 번만 입금하려고 했지만, 동일한 요청이 여러 번 처리될 수 있다.
예를 들어
- 사용자가 입금 버튼을 한 번 클릭
- 로딩이 오래걸림
- 요청이 안 된건가? 라고 생각해서 입금 버튼을 여러번 클릭
이 때 실제로는 첫번째 요청도 처리중이고 추가로 보낸 요청들도 모두 처리되면 사용자의 의도는 10000원 입금이었지만 20000원, 30000원이 입금 될 수도 있다.
이처럼 사용자의 의도와 다르게 동일한 요청이 여러 번 처리될 수 있기 때문에 멱등성 처리가 중요하다.
멱등성이 있는 경우
같은 값을 여러 번 설정해도 결과가 항상 동일하다.
위에서 설명한 상황처럼
- 사용자가 10000원 입금 버튼 클릭
- 로딩이 길어져서 여러 번 클릭
이 때 요청을 여러번 들어왔지만 서버가 동일한 요청으로 판단해서 한번만 처리해서 결과적으로 잔액은 10000원만 증가한다.
이렇게 여러 번 요청이 들어왔지만 결과는 한 번 수행한 것과 동일하게 유지된다면 멱등성이 있다고 볼 수 있다.
멱등성을 보장하기 위한 방법
그렇다면 이런 멱등성 처리를 어떻게 해결할 수 있을까?
단순히 생각하면 같은 요청인지 구분하고, 이미 처리된 요청은 다시 처리하지 않는 것이다
예시로
- 사용자가 입금 요청을 보낸다
- 서버는 해당 요청을 처리하면서 이미 처리된 요청인지 기록해둔다
- 이후 동일한 요청이 다시 들어오면 새로 처리하지 않고 이전에 처리한 결과를 그대로 반환한다.
이렇게 하면 여러 번 요청이 들어오더라도 결과는 항상 한 번 수행한 것과 동일하게 유지된다.
'Study' 카테고리의 다른 글
| Inbox / Outbox 패턴 정리 (0) | 2026.04.30 |
|---|---|
| 데이터 정합성 (0) | 2026.04.27 |
| 라우터 / 스위치 / 허브 차이 (0) | 2026.04.25 |
| IP 주소 / 서브넷 마스크 / 공인 IP & 사설 IP (0) | 2026.04.24 |
| OSI 7계층 / TCP-IP 4계층 (0) | 2026.04.23 |