반응형
이 글은 2022년 7월 기준 기록입니다.
화면을 주던 서버가 데이터를 주게 된 이유
기존 웹 MVC에서는 view를 jsp 파일을 통해 생성된 html을 제공함으로써 사용자에게 화면을 제공했습니다. 서버가 완성된 페이지를 만들어 내려보내는 방식입니다.
문제는 클라이언트 쪽이 웹 브라우저 하나가 아니게 되면서 생겼습니다. 클라이언트 사이드에서 다양한 플랫폼을 필요로 함에 따라서, 웹 브라우저를 통해서만 접근할 수 있는 html 파일이 아닌 데이터 자체를 제공할 수 있는 웹 애플리케이션 서비스가 필요해졌습니다.
이렇게 데이터만 제공할 수 있도록 구성된 웹 애플리케이션 서비스를 RESTful 하다고 합니다.
메서드가 곧 동사다
REST에서 자원에 무엇을 할지는 URL이 아니라 HTTP 메서드가 나타냅니다. 다섯 개가 CRUD에 대응합니다.
| 메서드 | 용도 | CRUD |
|---|---|---|
GET |
데이터를 가져올 때 사용 | READ |
POST |
데이터를 삽입할 때 사용 | CREATE |
PUT |
데이터를 수정할 때 사용 | UPDATE |
PATCH |
데이터의 일부만 수정할 때 사용 | UPDATE |
DELETE |
데이터를 삭제할 때 사용 | DELETE |
PUT과 PATCH는 둘 다 수정이지만 범위가 다릅니다. 전체를 바꾸는 것이 PUT, 일부만 바꾸는 것이 PATCH입니다.
HTML은 다섯 메서드를 다 지원하지 않는다
여기서 실무적인 걸림돌이 하나 있습니다.
GET과 POST는 기존과 동일하게 form 태그를 활용해 보낼 수 있습니다. 그런데 PUT, PATCH, DELETE는 HTML 표준에 존재하지 않아서 form 태그의 method로는 사용할 수 없습니다.
그래서 우회 방법을 씁니다. form 자체는 POST로 보내되, 실제로 의도한 메서드를 별도의 값으로 함께 실어 보내는 방식입니다. input 태그의 hidden 타입으로 name="method" value="PUT" 형태를 활용합니다.
<input type="hidden" name="method" value="PUT" />반응형
'IT·테크 > 개발' 카테고리의 다른 글
| 빅데이터 이해하기 — 6V, 세 가지 인사이트, 그리고 구현 기술 지도 (0) | 2026.08.03 |
|---|---|
| Spring MVC 게시판 만들기 — 프로젝트 구조부터 글 등록과 목록 조회까지 (0) | 2026.08.01 |
| MyBatis 설정과 서블릿 필터 — SQL을 XML로 분리하고 요청을 가로채기 (0) | 2026.08.01 |
| STS 설치와 pom.xml 설정 — Spring MVC Legacy 개발 환경 잡기 (0) | 2026.07.31 |
| Java System.out·System.err를 SLF4J 로거로 리다이렉트하기 (0) | 2026.07.29 |