수학에서 사용하는 용어로 같은 연산을 여러번 적용하더라도 결과가 달라지지 않는 성질을 뜻한다..!
RESTAPI에서 HTTP Method에는 크게 Get, Post, Put, Delete가 있다
여기서 Get, Put, Delete는 멱등성을 가지고, Post만 멱등성을 가지지 않는다고 함
-> 같은 요청을 여러번 보냈을 때 응답이 같아야 멱등성이 유지된다고 함
일반적으로 데이터 변경에는 PutMapping
을 사용하지만
PutMapping은 데이터 전체를 덮어쓴다는 특징이 있음
-> PostMapping 또는 PatchMapping 둘 중 고민함
둘다 데이터 일부를 변경한다는 점에서 PutMapping의 문제를 해결해줌
PatchMapping은 데이터 일부를 변경할 때 쓰는 용도라 용도와 사용이 같아 다른 사람이 보기에도 용도 파악이 된다는 점에서 더 좋음
postMapping에서 데이터 일부 수정을 하게 된다면 멱등성은 보장이 된다( @PostMapping 자체가 멱등성을 보장하지 않는다기 보다는 PostMapping이 하는 일이 멱등성 보장이 안된다고 생각하는것이 맞다)
하지만 용도와 사용이 다르기 때문에 PatchMapping을 사용하는 것이 더 바람직해보인다.