HTTP 요청 메서드 GET POST PUT PATCH DELETE 차이점 완벽 정리

HTTP 요청 메서드 GET, POST, PUT, PATCH, DELETE의 차이점을 쉽게 정리했습니다. REST API 설계에서 자주 사용하는 HTTP Method의 역할, 멱등성(Idempotency), 안전성(Safe Method), 사용 예시까지 개발자 관점에서 이해하기 쉽게 설명드립니다.

HTTP 요청 메서드

웹 개발이나 REST API를 공부하다 보면 GET, POST, PUT, PATCH, DELETE라는 HTTP 요청 메서드를 가장 먼저 접하게 됩니다. 이름은 익숙하지만 실제 프로젝트에서는 언제 어떤 메서드를 사용해야 하는지 헷갈리는 경우가 많습니다.

이번 글에서는 HTTP 요청 메서드 GET POST PUT PATCH DELETE 차이점을 중심으로 각각의 역할과 특징, REST API에서 권장되는 사용 방법까지 이해하기 쉽게 정리해 드리겠습니다.

01. HTTP 요청 메서드란?

이번 섹션에서는 HTTP Method가 무엇이며 왜 필요한지 알아보겠습니다.

✓ HTTP Method의 의미

HTTP 요청 메서드(Method)는 클라이언트가 서버에 어떤 작업을 요청하는지를 나타내는 규칙입니다.

예를 들어 브라우저나 모바일 앱에서 서버로 요청을 보낼 때 단순히 주소(URL)만 전달하는 것이 아니라 "조회", "등록", "수정", "삭제" 가운데 어떤 작업을 수행할 것인지도 함께 전달합니다.

대표적으로 사용하는 메서드는 다음과 같습니다.

메서드역할

GET 데이터 조회
POST 데이터 생성
PUT 데이터 전체 수정 또는 교체
PATCH 데이터 일부 수정
DELETE 데이터 삭제

REST API에서는 이러한 메서드를 목적에 맞게 사용하는 것이 권장됩니다.

02. GET 메서드

이번 섹션에서는 가장 많이 사용하는 GET 요청을 살펴보겠습니다.

✓ 언제 사용하시나요?

GET은 데이터를 조회할 때 사용하는 메서드입니다.

대표적인 예시는 다음과 같습니다.

  • 회원 목록 조회
  • 게시글 조회
  • 상품 목록 조회
  • 검색 결과 조회

예시

GET /users

GET /products

✓ 주요 특징

  • 서버 데이터를 조회합니다.
  • 데이터를 변경하지 않습니다.
  • 동일한 요청을 여러 번 보내도 결과가 동일합니다.
  • 브라우저 주소창에서도 실행할 수 있습니다.
  • 캐시(Cache)를 사용할 수 있습니다.

조회 목적이라면 대부분 GET을 사용하는 것이 일반적입니다.

03. POST 메서드

이번 섹션에서는 새로운 데이터를 생성하는 POST를 알아보겠습니다.

✓ 언제 사용하시나요?

POST는 새로운 데이터를 생성할 때 사용하는 메서드입니다.

예시

POST /users

POST /orders

POST /boards

회원가입이나 게시글 작성처럼 새로운 리소스를 만드는 경우 가장 많이 사용됩니다.

✓ 주요 특징

  • 새로운 데이터를 생성합니다.
  • 요청 본문(Body)에 데이터를 전달합니다.
  • 동일한 요청을 여러 번 보내면 데이터가 여러 개 생성될 수도 있습니다.
  • 일반적으로 멱등성을 보장하지 않습니다.

예를 들어 회원가입 요청을 두 번 보내면 회원이 두 명 생성될 수도 있으므로 POST는 반복 요청 시 결과가 달라질 수 있습니다.

04. PUT 메서드

이번 섹션에서는 전체 수정에 사용하는 PUT을 설명드리겠습니다.

✓ 언제 사용하시나요?

PUT은 기존 데이터를 전체 교체하거나 전체 수정할 때 사용합니다.

예시

PUT /users/1

사용자 정보를 아래처럼 수정한다고 가정해 보겠습니다.

기존 데이터

PUT 요청에서는 수정 대상의 전체 정보를 함께 보내는 방식이 일반적입니다.

✓ 주요 특징

  • 리소스를 전체 교체합니다.
  • 동일한 요청을 여러 번 보내도 결과가 같습니다.
  • 멱등성을 만족합니다.
  • 전체 데이터 기준으로 처리하는 경우가 많습니다.

05. PATCH 메서드

이번 섹션에서는 부분 수정에 사용하는 PATCH를 알아보겠습니다.

✓ 언제 사용하시나요?

PATCH는 일부 데이터만 수정할 때 사용합니다.

예를 들어 이름만 변경하는 경우라면 PATCH가 적합합니다.

예시

PATCH /users/1

변경 내용

  • 이름만 수정
  • 비밀번호만 변경
  • 휴대폰 번호만 수정

✓ 주요 특징

  • 필요한 데이터만 수정합니다.
  • 전체 정보를 다시 보낼 필요가 없습니다.
  • 네트워크 사용량을 줄일 수 있습니다.
  • 부분 수정이 필요한 REST API에서 많이 사용됩니다.

최근에는 사용자 정보 수정 API에서 PUT보다 PATCH를 사용하는 사례도 많이 볼 수 있습니다.

06. DELETE 메서드

이번 섹션에서는 데이터 삭제 요청을 살펴보겠습니다.

✓ 언제 사용하시나요?

DELETE는 리소스를 삭제할 때 사용하는 메서드입니다.

예시

DELETE /users/1

DELETE /boards/100

✓ 주요 특징

  • 데이터를 삭제합니다.
  • 일반적으로 멱등성을 만족합니다.
  • 같은 삭제 요청을 여러 번 보내더라도 최종 상태는 삭제된 상태입니다.

다만 실제 서비스에서는 완전 삭제 대신 삭제 여부만 표시하는 소프트 삭제(Soft Delete)를 사용하는 경우도 있습니다.

07. GET POST PUT PATCH DELETE 차이점 비교

이번 섹션에서는 다섯 가지 메서드를 한 번에 비교해 보겠습니다.

메서드목적데이터 변경멱등성

GET 조회 변경 없음 O
POST 생성 생성 X
PUT 전체 수정 변경 O
PATCH 일부 수정 변경 구현에 따라 다르지만 일반적으로 부분 수정에 사용됩니다.
DELETE 삭제 삭제 O

이 표만 이해하셔도 대부분의 REST API를 읽고 작성하는 데 큰 도움이 됩니다.

08. 멱등성(Idempotency)이 중요한 이유

이번 섹션에서는 HTTP 메서드를 이해할 때 반드시 알아야 하는 멱등성을 설명드리겠습니다.

✓ 멱등성이란?

멱등성(Idempotency)은 같은 요청을 여러 번 수행하더라도 최종 결과가 동일한 성질을 의미합니다.

예를 들어

  • GET은 여러 번 조회해도 데이터는 변경되지 않습니다.
  • PUT은 같은 내용을 여러 번 수정해도 결과가 같습니다.
  • DELETE는 여러 번 삭제 요청을 보내더라도 삭제된 상태는 동일합니다.

반면 POST는 요청할 때마다 새로운 데이터가 생성될 수 있기 때문에 일반적으로 멱등성을 만족하지 않습니다.

09. REST API에서 권장되는 사용 방법

이번 섹션에서는 실무에서 자주 사용하는 HTTP Method 설계 방식을 정리해 드리겠습니다.

✓ 권장 예시

회원 목록 조회

GET /users

회원 상세 조회

GET /users/1

회원 등록

POST /users

회원 전체 정보 수정

PUT /users/1

회원 일부 정보 수정

PATCH /users/1

회원 삭제

DELETE /users/1

URI에는 동사보다 명사를 사용하고, 실제 작업은 HTTP 메서드로 구분하는 것이 REST API 설계 원칙에 더 적합합니다.

10. 개발자가 자주 헷갈리는 부분

이번 섹션에서는 실무에서 자주 발생하는 혼동 사례를 정리해 드리겠습니다.

✓ GET으로 수정하면 안 되는 이유

GET은 조회 전용이므로 데이터를 변경하는 기능을 구현하면 안 됩니다.

✓ POST와 PUT 차이

POST는 새로운 데이터 생성, PUT은 기존 데이터 전체 수정에 적합합니다.

✓ PUT과 PATCH 차이

PUT은 전체 데이터를 기준으로 수정하는 경우가 많고, PATCH는 변경된 일부 항목만 수정하는 데 적합합니다.

✓ DELETE는 반드시 물리 삭제인가요?

반드시 그렇지는 않습니다.

실제 서비스에서는 데이터 복구나 감사 로그를 위해 삭제 여부만 표시하는 소프트 삭제를 사용하는 경우도 많습니다.

FAQ

Q1. GET과 POST의 가장 큰 차이점은 무엇인가요?

GET은 데이터를 조회하는 용도로 사용하며 서버 데이터를 변경하지 않습니다. POST는 새로운 데이터를 생성하거나 서버에 작업을 요청할 때 사용합니다.

Q2. PUT과 PATCH는 언제 구분해서 사용해야 하나요?

전체 데이터를 교체하거나 전체 수정이 필요한 경우에는 PUT을 사용하는 경우가 많습니다. 일부 필드만 수정하는 경우에는 PATCH가 더 적합합니다.

Q3. DELETE 요청을 여러 번 보내면 문제가 발생하나요?

일반적으로 DELETE는 멱등성을 만족하는 메서드입니다. 이미 삭제된 리소스에 다시 DELETE 요청을 보내더라도 최종 상태는 삭제된 상태로 유지됩니다.

Q4. REST API에서는 반드시 HTTP Method를 구분해야 하나요?

REST API에서는 각 HTTP Method의 의미에 맞게 사용하는 것이 권장됩니다. 이렇게 설계하면 API의 의도를 이해하기 쉬워지고 유지보수도 편리해집니다.

Q5. HTTP Method는 REST API에서만 사용되나요?

아닙니다. HTTP Method는 HTTP 프로토콜 자체에서 정의된 요청 방식이며, REST API에서는 이러한 메서드를 적극적으로 활용하여 자원을 표현합니다.