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 버전을 사용했다.
'Spring' 카테고리의 다른 글
[Spring MVC] Tiles 개념과 설정 (0) | 2020.06.12 |
---|---|
[Spring Famework] 오라클 데이터 베이스와 연동 (0) | 2020.06.09 |
[Spring] 프로젝트 설정 (1) (0) | 2020.06.08 |
[Spring] 새 프로젝트 생성, 프로젝트 구조 살펴보기, 롬복 설치 (0) | 2020.06.02 |