Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

01_rest.txt 본문

SPRING/chapter05_REST

01_rest.txt

GAWON 2023. 7. 4. 18:17
1. REST(Representational State Transfer)
	- 네트워크에서 클라이언트와 서버의 통신 방식 중 하나.
	
	1) 주요 어노테이션
		(1) @RestController
			- Controller가 Rest 방식을 처리하기 위한 것을 명시
			- 기존 Controller에서 Model에 값을 담아서 전달하는 방식과 다름
		(2) @ResponseBody
			- 일반적인 JSP와 같은 뷰로 전달되는게 아니라 데이터 자체를 전달하기 위한 용도
		(3) @PathVariable
			- URL 경로에 있는 값을 파라미터로 추출할 때 사용
		(4) @CrossOrigin
			- Ajax의 크로스 도메인 문제를 해결해주는 어노테이션
		(5) @RequestBody
			- JSON 데이터를 원하는 타입으로 바인딩
			
	2) JSON(JavaScript Object Notation)
		- 자바스크립트와 비슷한 형태로 생긴 데이터 묶음
		- {}로 묶고 키:값 으로 구성
		- 스프링에서 사용하기 위해 jackson-databind 라이브러리 추가
		- xml 처리를 위해 jackson-dataformat-xml 라이브러리 추가
	
	3) 구성 요소
		(1) Resource
			- REST에서 가장 중요한 개념은 바로 유일한 ID를 가지는 Resource가 서버에 존재하고, 
			클라이언트는 각 Resource의 상태를 조작하기 위해 요청을 보낸다.
			일반적으로 Resource는 user, friends, group 등과 같은 명사형의 단어이고, 
			HTTP에서 이러한 Resource 를 구별하기 위한 ID는 '/member/101'와 같은 URI이다.

		(2) Method
			- GET, DELETE 등과 같이 Resource를 조작할 수 있는 동사형의 단어를 Method라고 한다. 
			클라이언트는 URI를 이용해서 Resource를 지정하고 해당 Resource를 조작하기 위해서 Method를 사용한다.
			 HTTP에서는 GET, POST, PUT, DELETE 등의 Method를 제공한다. 
			 
			 작업				전송방식		URI
			 등록(Create)		POST		/member/new
			 조회	(Read)		GET			/member/{id}
			 수정(Update)		PUT			/member/{id} + body(json 데이터 등)
			 삭제(Delete)		DELETE		/member/{id}

		(3) Representation of Resource
			-	클라이언트가 서버로 요청을 보냈을 때, 서버가 응답으로 보내주는 Resource의 상태를 
			Representation이라고 한다. REST에서 하나의 Resource는 여러 형태의 
			Representation으로 나타내어 질 수 있다. 
			주로 xml, json, text 등을 전달할 수 있다.

		(4) URI 구성
			- URI는 ‘/groups’, ‘/users’ 등과 같이 직관적으로 어떤 정보를 제공하는지 알 수 있는 단어들로 구성
			- URI는 ‘/groups/member/101’와 같이 URI path가 계층적인 구조를 가지도록 구성
			- URI의 상위 path는 하위 path의 집합을 의미하는 단어로 구성. 예를 들어 ‘/groups/101/member/12532’의 경우
				 ‘groups’는	‘101’ 등의 그룹의 집합이므로 ‘/groups’ 만으로도 그룹 목록이라는 정보를 제공할 수 있는 유효한 URI가 된다.
			- CREATE / DESTORY/UPDATE/DELETE 등의 기본 CRUD 처리는 URI에 명시적으로 표현하도록 하여
				 URI를 보더라도 직관적으로 어떤 기능을 제공하는지 알 수 있도록 명명하도록 한다.

'SPRING > chapter05_REST' 카테고리의 다른 글

chapter05_REST SPRING  (0) 2023.07.04
chapter05_REST/pom.xml  (0) 2023.07.04
web.xml  (0) 2023.07.04
SampleVO.java  (0) 2023.07.04
SampleController.java  (0) 2023.07.04