웹/Javascript

Nodejs express PUT PATCH 차이

공대생철이 2022. 1. 4. 14:03
728x90

express에서 사용할 수 있는 update 요청으로는 PUT과 PATCH가 있습니다.

 

위의 코드들은 PUT과 PATCH를 배우면서 사용한 예시 코드입니다.

 

언뜻 보기에도 큰 차이가 없죠.

 

replaceOne, updatdOne이라는 mongoose API도 크게 다를 게 없어 보입니다. 

 

PUT과 PATCH는 데이터를 업데이트한다는 점에서는 일맥상통합니다.

 

하지만 그 방식이 다른 것이죠. 

제 DB에 title이 HTML과 CSS인 두 개의 document가 있습니다.

 

HTML에 해당하는 주소에 content를 WTF으로 바꾸는 PUT 요청을 해보겠습니다. 

결과는 위와 같습니다. 

 

title이 HTML인 document를 찾아서 그 문서의 모든 내용을 content : WTF인 document로 바꿔버렸습니다.

 

 

이번엔 PATCH를 해보겠습니다.

 

똑같이 title : HTML인 doc를 찾아  content를 WTF로 바꿔주는 PATCH 요청을 보내보겠습니다. 

PUT과 다르게 title은 HTML로 유지되고 content만 수정되었습니다.


각각의 요청에 replaceOne과 updateOne이라는 다른 mongoose API를 사용한 것에 그 차이점이 숨어있습니다.

 

PUT은 말 그래도 해당 데이터의 document를 새로 입력해준 document로 통으로 바꿔버리는 요청이고

 

PATCH는 filter로 찾은 데이터의 해당 부분만 수정해주는 요청입니다. 

 

비유적으로 따지자면 

 

핸드폰이 고장나서 AS를 갈 때

 

새로운 리퍼폰을 주는 것이 PUT

 

고장 난 부품만 갈아주는 것이 PATCH

728x90