서버의 역할은 점점 더 순수 데이터에 대한 처리를 목적으로 하는 형태로 바뀌고 있다 .
REST 방식이란 Repersentational State Transfer의 약자로 하나의 URI는 하나의 고유 리소스를 대표하도록 설계된다는 개념에 전송방식을 결합하여 요청에 응답한다. 즉 리소스를 이름으로 구분하고 전송 방식을 명기하는 클라이언트와 서버의 데이터 송수신 방법이다.
** URI 는 리소스의 식별자이고 URL은 이의 하위 개념이라고 생각하면 된다 . URI의 I는 database의 pk와 같은 고유 식별 경로가 포함된 형태의 주소이다.
REST 전송방식
종류:: GET(create) / POST(read) / PUT, PATCH(update) / DELETE(delete)
스프링에서는 @ReseponseBody 어노테이션을 사용하여 주로 json형태의 데이터를 전송한다.
- @RestController :: 컨트롤러가 REST방식을 처리하기 위한 것임을 스프링에게 명시
- @ResponseBody :: 일반적인 JSP와 같은 뷰로 전달되는 것이 아니라 데이터 자체를 전달하기 위한 용도
REST방식은 기존의 Model 객체에 데이터를 바인딩하여 jsp 에 전달하는 방식과 다소 다르게 동작한다. 먼저 @RestController 로 컨트롤러의 메서드 리턴타입을 지정해준다. 현재 프로젝트의 경우 JSON을 사용해 전달할 예정이므로 pom.xml 내에 jackson-databind 라이브러리를 추가해주어야 한다. jackson-databind 라이브러리를 사용하면 데이터를 JSON 포맷의 문자열로 변환시켜 객체를 전달할 수 있다.
** JSON (javaScript Object Notation)
:: 데이터를 중괄호(오브젝트)로 묶고 key-value쌍으로 값을 구성하는 경량 데이터 포맷
ex) {"회원ID : id1", "회원등급 : 일반 "}
>> xml에서도 객체를 표현할때 이와 같은 구조를 사용한다
기존에는 @GetMapping 어노테이션에서 요청 경로만 지정해주었다면 @RestController 어노테이션을 사용하는 경우 value 값에 전송할 텍스트 형식을 지정하고 http전송방식을 method속성에 추가해주어야 한다. 이후 컨트롤러를 호출하여 확인해보면 기존과 달리 JSON타입으로 데이터가 전달되는 것을 확인할 수 있다.
@RequestMapping(value="{custno}", method={RequestMethod.POST, RequestMethod.GET})
REST방식은 URI와 결합하므로 아래와 같은 형태로 반영된다.
- 등록 :: POST /member/register
- 조회 :: GET /member/{id}
- 수정 :: PUT /member/{id} + body(reqeustBody)
- 삭제 :: DELETE /member/{id}
'WebApplication' 카테고리의 다른 글
[Spring] 스프링 MVC 트랜잭션(Transaction) 관리 (0) | 2022.08.07 |
---|---|
[Spring] AOP 설정 및 Advice 적용(Pointcut > Before Advice) (0) | 2022.08.06 |
[Spring] Controller 에 지정된 JSP를 이용한 화면처리 (0) | 2022.08.01 |
[Spring] Controller 비즈니스 로직처리(CRUD) (0) | 2022.07.31 |
[Spring] 스프링 MVC 패턴 mapper작업 (with. MyBatis) (0) | 2022.07.29 |