APIMedium#410
REST API의 주요 HTTP 메서드(GET, POST, PUT, PATCH, DELETE)의 차이점을 설명해주세요.
#API#REST#HTTP#메서드
답변 포인트
각 HTTP 메서드가 리소스를 조회, 생성, 전체 수정, 부분 수정, 삭제 중 무엇에 쓰이는지 비교해보세요.
정답 및 해설
빠른 요약
RESTful API 설계에서 각 메서드는 리소스에 대한 행위(Verb)를 나타냅니다. ## 1.
RESTful API 설계에서 각 메서드는 리소스에 대한 행위(Verb)를 나타냅니다.
1. GET (조회)
- 리소스를 가져올 때 사용합니다.
- 멱등성(Idempotent): 여러 번 호출해도 서버의 상태가 변하지 않으며 결과가 같습니다.
- 안전성(Safe): 서버의 데이터를 변경하지 않습니다.
- 예:
GET /users/1(ID가 1인 사용자 정보 조회)
2. POST (생성)
- 새로운 리소스를 생성할 때 사용합니다.
- 멱등성 없음: 호출할 때마다 새로운 리소스가 생성될 수 있습니다.
- 예:
POST /users(새로운 사용자 생성)
3. PUT (전체 교체)
- 리소스를 완전히 새로운 상태로 교체할 때 사용합니다.
- 멱등성: 동일한 데이터를 여러 번 보내도 리소스는 항상 같은 상태로 유지됩니다.
- 만약 해당 리소스가 없으면 새로 생성하기도 합니다.
- 예:
PUT /users/1(ID 1인 사용자의 전체 정보를 전달된 데이터로 통째로 갈아끼움)
4. PATCH (부분 수정)
- 리소스의 일부 필드만 수정할 때 사용합니다.
- 멱등성 없음 (엄밀히는): 구현 방식에 따라 다를 수 있지만, 일반적으로 PATCH는 멱등성을 보장하지 않는 것으로 간주됩니다. (예:
age += 1같은 연산적 수정 시) - 예:
PATCH /users/1(ID 1인 사용자의 이름만 변경)
5. DELETE (삭제)
- 리소스를 삭제할 때 사용합니다.
- 멱등성: 이미 삭제된 리소스에 대해 다시 DELETE를 호출해도 결과적으로 리소스는 없는 상태이므로 멱등합니다.
- 예:
DELETE /users/1(ID 1인 사용자 삭제)
요약 비교
| 메서드 | 역할 | 멱등성 | 안전성 |
|---|---|---|---|
| GET | 조회 | O | O |
| POST | 생성 | X | X |
| PUT | 전체 교체 | O | X |
| PATCH | 부분 수정 | X (일반적) | X |
| DELETE | 삭제 | O | X |