HTTP 메서드의 관계와 역할을 단순화해 표현한 개념도입니다.
HTTP 메서드(GET, POST, PUT, DELETE 등) 심층 이해
한눈에 보는 요약
HTTP 메서드는 웹에서 클라이언트와 서버가 리소스를 어떻게 다룰지 명확하게 정의하는 규칙 체계입니다. GET은 조회, POST는 생성, PUT은 전체 수정, DELETE는 삭제라는 목적을 가집니다.
HTTP 메서드는 RESTful API 설계의 핵심 요소로, 멱등성·안전성을 이해하면 예측 가능하고 안정적인 API 구조를 설계할 수 있습니다.
실무에서는 메서드의 의미적 일관성이 API 사용성을 결정하며, 클라이언트·서버·캐싱 구조에도 직접적인 영향을 미칩니다.
목차
핵심 포인트
- HTTP 메서드는 리소스를 ‘어떻게 조작할지’를 정의하는 표준 프로토콜이다.
- GET·POST·PUT·DELETE는 REST API에서 가장 널리 쓰이는 4대 메서드다.
- 멱등성(idempotent)과 안전성(safe)은 API 신뢰성을 판단하는 핵심 기준이다.
- POST와 PUT은 혼동되기 쉬우나 목적이 다르므로 정확히 구분해야 한다.
- 적절한 메서드 선택은 API 문서화, 유지보수, 보안 정책에도 영향을 준다.
상세 설명
1. HTTP 메서드의 기본 개념
HTTP 메서드는 서버 리소스에 대한 행동을 정의하는 표준 명령입니다. 클라이언트는 URL(자원 위치)에 메서드를 조합해 서버에 의도를 전달합니다. 예를 들어, 동일한 URL이라도 GET으로 요청하면 조회, POST로 요청하면 생성 작업을 수행합니다. 이 구분은 애플리케이션 전반의 일관성을 유지하는 핵심 요소입니다.
2. 주요 HTTP 메서드 동작 원리
GET은 데이터를 변경하지 않는 안전한 메서드이며, 브라우저·프록시 캐싱과 상호작용합니다. 반대로 POST는 새로운 리소스를 생성하거나 특정 서버 작업을 실행하므로 항상 서버 상태를 변경합니다. PUT은 리소스를 “전체 교체”하는 의미를 가지며, DELETE는 특정 리소스 삭제 의도를 전달합니다.
이들 메서드는 멱등성 여부가 다르며, 이는 네트워크 재전송·실패 복구 설계에 직접적인 영향을 줍니다.
3. RESTful API 설계 시 메서드 선택 기준
API 설계에서 목적별로 메서드를 구분해 사용하는 것은 필수적입니다. 예를 들어, 목록 조회는 GET, 새로운 결제 요청은 POST, 사용자의 프로필 전체 업데이트는 PUT, 특정 객체 제거는 DELETE가 적절합니다. 이처럼 표준 메서드를 따르는 구조는 문서 작성이 쉬우며, API 클라이언트가 동작을 예측할 수 있어 확장성·유지보수성이 향상됩니다.
메서드 비교 표
아래 표는 대표 HTTP 메서드의 목적, 멱등성, 안전성, 대표 사용 사례를 정리한 자료입니다.
| 메서드 | 주요 목적 | 멱등성 | 안전성 | 대표 사용 사례 |
|---|---|---|---|---|
| GET | 리소스 조회 | O | O | 상품 목록 조회, 사용자 정보 조회 |
| POST | 리소스 생성·비정형 작업 | X | X | 회원가입, 로그인, 주문 생성 |
| PUT | 리소스 전체 수정 | O | X | 사용자 프로필 정보 전체 업데이트 |
| DELETE | 리소스 삭제 | O | X | 게시글 삭제, 계정 삭제 |
코드 예시
curl -X PUT "https://api.example.com/v1/users/123" \ -H "Content-Type: application/json" \ -d '{"name": "홍길동", "email": "hong@example.com"}' 위 예시는 특정 사용자의 전체 정보를 PUT 메서드로 업데이트하는 요청입니다. PUT은 리소스를 “대체”한다는 개념이므로 요청 바디에는 전체 필드를 포함하는 것이 원칙입니다. 부분 업데이트라면 PATCH 메서드가 적절하며, 일부 API는 POST를 사용해 유사 기능을 처리하기도 합니다.
실행 단계
- API 대상 리소스의 성격을 정의합니다. 조회만 필요한지, 생성·수정·삭제가 필요한지 먼저 판단합니다.
- 리소스별 URL 구조를 설계하고, REST 원칙에 따라 HTTP 메서드를 대응시킵니다.
- 각 메서드의 멱등성·안전성 여부를 고려해 통신 재시도·오류 처리 정책을 수립합니다.
- 요청·응답 형식(JSON, XML 등)을 표준화하고, 필요한 HTTP 헤더를 명확히 정의합니다.
- 마지막으로 Swagger/OpenAPI 형태로 문서화해 팀 간 공통 이해를 확보합니다.
추가로 생각해볼 점
- PATCH 메서드의 역할 구분도 실무에서 중요하므로 PUT과 함께 비교해보는 것이 좋습니다.
- HTTP 메서드 선택은 캐싱, 로드 밸런싱, 보안 정책에도 영향을 주기 때문에 전체 아키텍처 관점에서 검토해야 합니다.

0 댓글