REST API를 공부하며
Client는 Server에게 URI로 요청할 때,
어떠한 용도(ex) 조회/생성/수정/삭제)로 쓰기 위한 건지를 나타내준다는 것을 알게 되었다.
따라서, 자원(Resource)에 대한 다양한 행동을 HTTP Method로 정의한다는 것이다.
HTTP Method의 종류와 간단하게 개념을 살펴보았다.
각 Method는 특정한 의도에 따라 사용되며,
이는 RESTful 서비스의 설계와 구현에서 중요한 원칙 중 하나이다.
GET
자원을 조회하는 데 사용된다.
URI에 포함된 정보를 기반으로 자원을 가져온다.
안전하며 멱등성을 갖는다.
* 멱등성이란?
한 번 이상 같은 요청을 해도
동일한 결과가 나오는 성질
POST
새로운 자원을 생성하거나 데이터를 제출할 때 사용된다.
서버의 상태나 정보를 변경하는 데 사용될 수 있다.
PUT
자원을 전체적으로 업데이트하는 데 사용된다.
지정된 URI에 자원이 이미 존재한다면 그것을 수정하고, 없다면 새로 생성한다.
멱등성을 갖는다.
PATCH
자원의 일부분만을 업데이트하는 데 사용된다.
PUT과 비교했을 때 특정 부분만 변경하는 데 사용된다.
DELETE
지정된 URI의 자원을 제거하는 데 사용된다.
멱등성을 갖는다.
HEAD
GET과 비슷하나, 실제 자원의 본문(body)를 반환하지 않고 헤더 정보만을 반환한다.
자원이 존재하는지 혹은 사용자가 특정 자원에 접근 권한이 있는지 확인하는 데 사용될 수 있다.
OPTIONS
웹 서버가 지원하는 메서드를 알기 위해 사용된다.
대상 리소스에 대해 사용 가능한 메서드를 반환한다.
CONNECT
네트워크 터널을 설정하기 위해 사용되는 메서드이다.
주로 SSL 터널링에 사용된다.
대부분의 웹 애플리케이션은
데이터를 생성(Create), 읽기(Read), 수정(Update), 삭제(Delete)하는 기본적인 작업을 수행한다.
이러한 CRUD 작업을 대표하는 HTTP 메서드들이
POST(생성), GET(읽기), PUT or PATCH(수정), DELETE(삭제)이기 때문에
이 5가지가 주로 많이 쓰이는 것 같다!
* 공부하다가 추가 기록.
PUT, PATCH의 차이는 그 자체의 기능을 갖고 있는 것이 아닌,
의도나 예상되는 동작을 클라이언트나 다른 개발자에게 명확하게 전달하기 위한 것이다.
HTTP메서드의 정의는 의미적인 차이를 갖고 있으며,
이를 통해 RESTful한 API 디자인을 할 수 있게 된다.
PUT : 리소스의 전체를 대체할 것이라는 의미를 갖는다.
클라이언트는 전체 리소스 정보를 제공해야 한다.
PATCH : 리소스의 일부분만을 수정할 것이라는 의미를 갖는다.
클라이언트는 변경하려는 부분의 정보만 제공하면 된다.
이런 의미적인 차이를 갖는 것이지, 실제로 어떻게 구현될지는 개발자의 코드나 로직에 따라 달란진다.
하지만 PUT으로 부분적인 업데이트를 하거나
PATCH로 전체를 대체하는 동작을 하면 RESTful한 API디자인 원칙과 맞지 않게 된다.
결국, HTTP메서드의 선택은 의미와 의도를 명확하게 전달하기 위한 것이며, 실제 구현은 개발자의 서비스 로직과 데이터베이스 처리 방식에 따라 결정된다.
'개인 공부 (23.07~' 카테고리의 다른 글
MyBatis 파라미터 바인딩 방법 2가지 (1) | 2023.08.18 |
---|---|
[Spring] 의존성 주입(DI) 개념, 설정, 사용법 (0) | 2023.08.17 |
[REST API] 개념, 특징, URI 규칙 이해하기 (0) | 2023.08.15 |
MVC 패턴 쉽게 이해하기 (0) | 2023.08.15 |
Controller ▷ Service ▷ Repository 단계 이해하기 (0) | 2023.08.11 |