본문 바로가기

Spring

[Spring Framework] REST 방식의 개념과 설정

728x90
반응형

REST(Representational State Transfer)란?

하나의 *URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념과 전송방식을 결합해 원하는 작업을 지정하는 것

(ex. '/board/1'은 게시물 중 1번이라는 고유한 의미를 가지도록 설계. 이에 대한 처리는 GET, POST 방식과 같이 추가적인 정보를 통해 결정 → URI + GET/POST/PUT/DELETE ... 으로 구성된다고 볼 수 있음)

 

 * URI(Uniform Resource Identifier) : URL보다 현실적이고 구체적인 의미로, 자원의 식별자라는 의미로 사용.

    └ 데이터베이스의 PK와 같은 의미

   URL(Uniform Resource Locator) : URI의 하위 개념으로, URI와 같은 의미로 사용하는 경우가 많음

                 URI보다 상징적인 의미가 강함 (이 곳에 가면 당신이 원하는 것을 얻을 수 있다)

 

 

관련 어노테이션

어노테이션 기능
@RestController Controller가 REST 방식을 처리하기 위한 것임을 명시
@ResponseBody JSP 같은 뷰로 전달되는 것이 아니라 데이터 자체를 전달하기 위한 용도
@PathVariable URL 경로에 있는 값을 파라미터로 추출하려 할 때 사용
@CrossOrigin Ajax의 크로스 도메인 문제를 해결할 때 사용
@RequestBody JSON 데이터를 원하는 타입으로 바인딩 처리

 

설정

pom.xml

<dependency> 추가

		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
		<dependency>
		    <groupId>com.fasterxml.jackson.core</groupId>
		    <artifactId>jackson-databind</artifactId>
		    <version>2.11.0</version>
		</dependency>
				
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->
		<dependency>
		    <groupId>com.fasterxml.jackson.dataformat</groupId>
		    <artifactId>jackson-dataformat-xml</artifactId>
		    <version>2.11.0</version>
		</dependency>
        		
		<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
		<dependency>
		    <groupId>com.google.code.gson</groupId>
		    <artifactId>gson</artifactId>
		    <version>2.8.6</version>
		</dependency>

jackson-databind, jackson-dataformat-xml

 : JSON 데이터를 처리하기 위한 라이브러리

  (객체를 JSON/XML로 변환할 때 사용됨)

gson

 : 테스트 시, 직접 Java 인스턴스를 JSON 타입의 문자열로 변환할 때 사용할 라이브러리

 

https://mvnrepository.com/search?q=maven+jackson-databind

 

Maven Repository: maven jackson-databind

General data-binding functionality for Jackson: works on core streaming API Last Release on Apr 26, 2020

mvnrepository.com

 

위 주소로 들어가면 아래 내용이 나온다.

책에서 jackson은 2.9.6 버전을 사용하지만 너무 옛날 버전이라 2.11.0으로 사용했다.

Gson 역시 최근 버전인 2.8.6 버전을 사용했다.

728x90
반응형