IT·테크/개발

REST API와 HTTP 메서드 — 화면 대신 데이터를 주는 웹 서비스

레루루 2026. 8. 2. 20:47
반응형

이 글은 2022년 7월 기준 기록입니다.

화면을 주던 서버가 데이터를 주게 된 이유

기존 웹 MVC에서는 view를 jsp 파일을 통해 생성된 html을 제공함으로써 사용자에게 화면을 제공했습니다. 서버가 완성된 페이지를 만들어 내려보내는 방식입니다.
 
문제는 클라이언트 쪽이 웹 브라우저 하나가 아니게 되면서 생겼습니다. 클라이언트 사이드에서 다양한 플랫폼을 필요로 함에 따라서, 웹 브라우저를 통해서만 접근할 수 있는 html 파일이 아닌 데이터 자체를 제공할 수 있는 웹 애플리케이션 서비스가 필요해졌습니다.
 
이렇게 데이터만 제공할 수 있도록 구성된 웹 애플리케이션 서비스를 RESTful 하다고 합니다.

메서드가 곧 동사다

REST에서 자원에 무엇을 할지는 URL이 아니라 HTTP 메서드가 나타냅니다. 다섯 개가 CRUD에 대응합니다.

메서드 용도 CRUD
GET 데이터를 가져올 때 사용 READ
POST 데이터를 삽입할 때 사용 CREATE
PUT 데이터를 수정할 때 사용 UPDATE
PATCH 데이터의 일부만 수정할 때 사용 UPDATE
DELETE 데이터를 삭제할 때 사용 DELETE

 

PUTPATCH는 둘 다 수정이지만 범위가 다릅니다. 전체를 바꾸는 것이 PUT, 일부만 바꾸는 것이 PATCH입니다.

HTML은 다섯 메서드를 다 지원하지 않는다

여기서 실무적인 걸림돌이 하나 있습니다.
 

GETPOST는 기존과 동일하게 form 태그를 활용해 보낼 수 있습니다. 그런데 PUT, PATCH, DELETE는 HTML 표준에 존재하지 않아서 form 태그의 method로는 사용할 수 없습니다.

 

그래서 우회 방법을 씁니다. form 자체는 POST로 보내되, 실제로 의도한 메서드를 별도의 값으로 함께 실어 보내는 방식입니다. input 태그의 hidden 타입으로 name="method" value="PUT" 형태를 활용합니다.

<input type="hidden" name="method" value="PUT" />
반응형