대충이라도 하자

멱등(Idempotent) 본문

꼬꼬마 개발자 노트

멱등(Idempotent)

Sueeeeee
반응형

HTTP 메소드의 속성

- 안전 : 본질적으로 읽기 전용이며, 원본 서버의 리소스에 영향을 주지 않는 속성

- 멱등 : 요청을 재시도해도, 재실행해도 원래 의도한 바와 같이 동일하게 작동하는 속성을 의미

           연산을 여러 번 반복해도 결과값은 변하지 않음.

- 캐시가능 : 요청한 응답의 리소스를 향후 재사용을 위해 저장할 수 있는 속성을 의미

 

멱등한 메소드는?

- GET : 같은 요청을 한 번 하든, 수 천 번 하든 클라이언트가 원하는 결과대로 작동

- PUT : 클라이언트가 요청을 반복할 경우,

PUT의 특성 상 클라이언트가 원한 결과대로 무조건 리소스가 갱신되거나 생성

- DELETE : 클라이언트가 원한 결과대로 삭제

 

결국, POST 제외 전부 멱등

POST는 클라이언트가 요청을 반복할 경우, 클라이언트의 의도대로 작동하지 않을 수 있다.

네트워크 상에서 어떤 요청을 했을 때, 네트워크 상에서 다양한 변수에 의해 요청이 실패할 수 있기 때문이다.

 

멱등은 RESTful 웹 서비스의 맥락에서 많이 언급된다.

REST는 웹 애플리케이션을 리소스(예: Twitter 사용자 또는 Flickr 이미지)로 구성한 다음 POST, PUT, GET 및 DELETE의 HTTP 메서드를 사용하여 해당 리소스를 생성, 업데이트, 읽기 및 삭제한다. 이중 POST를 제외한 나머지 HTTP 메서드를 사용하는 API(GET, PUT, DELETE)들이 멱등성이 유지되어야 한다.

멱등성은 REST에서 중요한 역할을 한다. REST 리소스 표현을 GET하고 작업이 실패하면 작업이 성공할 때까지 GET을 계속해서 반복할 수 있다. 웹 서비스의 경우 이미지를 몇 번 가져왔는지는 중요하지 않다. 마찬가지로 RESTful 웹 서비스를 사용하여 Twitter 계정 정보를 업데이트하는 경우 웹 서비스에서 확인을 받기 위해 필요한 만큼 새 정보를 PUT 할 수 있다. 천 번 PUT 하는 것은 한 번 PUT 하는 것과 같다. 마찬가지로 REST 리소스를 천 번 DELETE하는 것은 한 번 DELETE하는 것과 같다. 따라서 멱등성을 사용하면 통신 오류에 탄력적인 웹 서비스를 훨씬 쉽게 구성할 수 있다.

반응형

'꼬꼬마 개발자 노트' 카테고리의 다른 글

docker ps 시, permission denied 오류  (0) 2023.01.05
Docker  (0) 2022.08.12
API 설계  (0) 2022.02.09
Stateless & Connectionless  (0) 2022.01.27
Elasticsearch 설치 및 사용 (Windows)  (0) 2022.01.18
Comments