HTTP 멱등성이란? 🤔
멱등성이란? 🧩
멱등성은 같은 연산을 여러 번 해도 결과가 변하지 않는 성질을 말해요.
HTTP에서 멱등성은 "같은 요청을 한 번 보내든, 여러 번 보내든 서버의 상태와 결과가 똑같다"는 뜻이에요.
대표적인 멱등 HTTP 메서드 📝
- GET: 정보를 가져오기만 하니까 몇 번을 해도 서버 상태가 바뀌지 않아요.
- PUT: 같은 데이터를 여러 번 저장해도 결과는 항상 마지막에 저장한 값!
- DELETE: 이미 삭제된 걸 또 삭제해도 결과는 "없음"으로 같아요.
- HEAD, OPTIONS, TRACE: 서버 상태를 바꾸지 않으니 멱등합니다.
실생활 예시로 이해하기 🍔
🍔 햄버거 주문(멱등하지 않음)
- "햄버거 하나 주세요!"를 두 번 말하면 햄버거가 두 개 나와요.
- 즉, POST는 멱등하지 않은 경우가 많아요.
📝 명찰 붙이기(멱등함)
- "내 이름표를 '홍길동'으로 바꿔주세요!"를 여러 번 말해도 결과는 항상 '홍길동'
- PUT은 멱등합니다.
멱등성이 왜 중요할까? 🚦
네트워크 문제 등으로 요청이 중복될 때,
멱등한 API는 안심하고 다시 요청해도 서버 상태가 달라지지 않아 안전해요!
예시:
결제 요청이 타임아웃으로 실패했을 때
- 멱등하지 않으면: 두 번 결제될 수 있음(중복 결제 위험)
- 멱등하면: 여러 번 요청해도 한 번만 결제됨
한 줄 요약 ✨
멱등성은 "같은 요청을 여러 번 해도 결과가 변하지 않는 성질"
안전한 서버 설계와 중복 요청 방지에 꼭 필요한 개념이에요!
HTTP 메서드에서 멱등성이란 무엇인가요?
연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 멱등성이라고 합니다. HTTP 메서드의 멱등성은 동일한 요청을 한번 보내는 것과 여러번 보내는 것이 서로 동일한 효과를 지니며, 서버의 상태도 동일하게 남을 경우에 멱등하다고 이야기할 수 있습니다. 대표적으로 멱등한 메서드는 GET, HEAD, PUT, DELETE, TRACE, OPTIONS 가 있습니다.
멱등성은 어떻게 활용될 수 있나요? 🤔
모종의 이유로 전송 커넥션이 끊어졌을 때, 멱등성은 클라이언트가 다시 같은 요청을 해도 되는가에 대한 판단 근거가 될 수 있습니다. 멱등하다면 요청을 재시도할 때 같은 서버의 상태를 보장하기 때문에 문제가 없습니다. 반면, 멱등하지 않다면 재시도 요청시 중복 요청을 보내 문제를 발생 시킬 수 있습니다. 예를 들어, 사용자가 결제하는 시점에 타임아웃으로 인해 정상 응답을 못받는 상황을 생각해 볼 수 있습니다. 해당 경우에서 멱등하지 않은 결제 API 경우에는 결제가 성공했는지 수동으로 확인하고 재요청해야합니다. 반면, 멱등한 결제 API의 경우에는 안심하고 여러 번 요청할 수 있으며 중복 요청으로 발생하는 문제(중복 결제)를 방지할 수 있습니다.
'1일 1CS(Computer Science)' 카테고리의 다른 글
데이터베이스 시스템에서 동시성을 제어하는 방법에 대해 설명해주세요. (0) | 2025.04.24 |
---|---|
웹 접근성의 개념과 개선 방법에 대해 설명해주세요. (0) | 2025.04.24 |
useEffect와 useLayoutEffect의 차이점에 대해서 설명해주세요. (0) | 2025.04.24 |
사용자가 웹사이트에 처음 접근했을 때 발생하는 일련의 과정에 대해 설명해 주세요. (0) | 2025.04.24 |
자바스크립트에서 어떻게 호이스팅이 가능한지에 대해서 설명해주세요. (0) | 2025.04.24 |