지난번 회사에서 면접에 갔을 때였다.
http 메소드에 대한 질문이 나왔고, 그에 대한 대답을 했다.
각 메소드에 대해서 설명해달라는 질문이었던 것으로 기억한다.
그와중에 잠깐 절었던 것이 patch와 put이었다.
공부가 덜 된 탓이었는지,
CRUD 읽기, 쓰기, 수정, 삭제의 개념으로 하나씩 대응하면서 이야기하는데 뭔가 하나가 빠진듯한 느낌이 든 것이다.
아마 대답은 다 했던거 같다. PUT 빼고..;;
그래서 http메소드에 대해서 다시금 공부하고 있는데 역시나 또 햇갈리거나 혼란스러울 수 있을거 같아서 기록으로 남긴다.
put과 patch는 리소스의 업데이트를 한다는 것에서 동일한 기능이다.
다만 세부 기능이 다르다.
put 리소스의 모든 것을 업데이트한다.
patch 리소스 중 일부를 업데이트 한다.
cats221 이라는 데이터가 있다고 해보자.
이름:'츠키'
나이: 2
성별: 수컷
put 메소드로 아래와 같이 보낸다면
입력되지 않은 값들은 null이된다. (나이, 성별)
PUT /cats/221
{
이름: '몰랑'
}
반면
patch 메소드로 아래와 같이 보낸다면,
입력된 값만 변경이 일어난다.
(나이:2, 성별:수컷은 그대로 유지)
PUT /cats/221
{
이름: '몰랑'
}
따라서 실제 실무에서는 아마도 patch위주로 사용할 가능성이 크다는 것을 예견 할 수 있을 듯하다.
*왜 patch가 수정일까?
과저 천공카드 쓰던 시절에서는 실수로 잘못 구멍을 뚫으면 스티커 같은것을 붙여서 매꿨다고 한다.
그래서 patch라고 ...
댓글