팀소개 페이지 만들기 프로젝트를 하면서 HTTP 주요 메서드에 대해 공부했다. 나는 프로젝트에서 상세 보기 페이지와 프로필 수정 기능을 맡았는데 POST 메서드로도 리소스를 수정할 수 있는데 왜 PUT 메서드가 따로 있는지 의문이 들었다. 그래서 프로필 수정 기능을 먼저 익숙한 POST 메서드로 구현해 보고 PUT 메서드를 이용해서 다시 짜봤다. 그런데 막상 실행시켜보니 겉보기엔 두 메서드에 별 다른 점이 없어 보여 어떤 차이점이 있는지 알아봤다.

 

POST 메서드와 PUT 메서드의 차이점은 멱등성에 있다는데 동일한 요청을 한번 보내는 것과 여러번 연속으로 보내는 것이 같은 효과를 가지고, 서버의 상태도 동일하게 남을 때 해당 HTTP 메서드가 멱등성을 가진다고 한다. 

 

POST

POST는 서버로 데이터를 전송하여 새로운 자원을 생성하는 역할을 한다. 따라서 요청을 여러 번 보내는 경우 매번 새로운 자원이 생겨나는 것이며, 이는 서버의 상태가 변경되는 것을 의미한다. 그러므로 POST 메서드는 멱등성을 가지지 않는다.

 

PUT 

PUT 메서드는 대상 리소스를 덮어씌워 변경하거나, 대상 리소스가 없다면 새로 추가한다. 만일 대상 리소스가 없다면 PUT이 POST와 같은 동작을 하게 되는데, POST는 매번 새로운 자원을 만드는 반면, PUT은 해당 자원이 이미 있다면 데이터만 덮어쓴다. 따라서 요청을 한번하든 여러 번 하든 결국 서버의 상태는 같아지니, PUT은 멱등하다.

 

 

사실 멱등성이란 말이 낯설어서 그런지 아직 무슨 뜻인지 잘 와닿진 않지만 앞으로 계속 쓰다 보면 언젠간 '아 이게 이런 뜻이구나' 알게 될 날이 올 것 같다.

 

 

'WIL' 카테고리의 다른 글

AOP란?  (0) 2023.07.16
WEEK2 개인과제 구상  (0) 2023.05.28

+ Recent posts