-
01. REST와 AjaxSpring Web Project/6. Ajax 댓글 (Reply) 2020. 12. 22. 23:30반응형
0. REST(Representational State Transfer)
하나의 URI는 하나의 고유한 리소스(Resource)를 대표 (설계 개념)
> REST API : 외부에서 REST 방식으로 제공되는 특정 URI를 통해 사용자가 원하는 정보를 제공하는 방식
> REST 방식의 서비스 제공이 가능한 것을 'Restful'하다고 표현
> 과거 웹은 데이터 처리에 GET/POST 방식만을 사용하고, 추가적인 작업은 method나 command와 같은 파라미터를 지정하여 수행하려는 작업을 명시, REST 방식은 이러한 파라미터를 사용하기 보다 'URI + Http의 메소드(get, post, put...)'을 이용하여 필요한 작업 처리
Note) REST 방식 사용 원칙
1) URI가 원하는 리소스를 의미
2) URI에는 식별할 수 있는 데이터를 같이 전달하는 것이 일반적임
Note) Http method
> GET : 자료의 조회용
> DELETE : 자료의 삭제
> POST + 데이터 : 신규 자료 등록
> PUT + 데이터 : 신규 자료의 수정 혹은 등록
> PATCH : 간혹 PUT 방식 대용으로 사용
1. @RestController
기존의 특정한 JSP와 같은 뷰를 만들어 내는 것이 목적이 아닌 REST 방식의 데이터 처리를 위해 사용하는 애노테이션, 주로 사용되는 것은 단순 문자열과 JSON, XML 등
> 문자열 데이터는 기본적으로 브라우저에서 'text/html' 타입으로 처리
> @ResponseBody가 없어도 동일하게 동작
> JSON 타입의 데이터를 변환하기 위해서는 jackson-databind 라이브러리 추가
2. @ResponseBody
메소드나 리턴 타입에 사용할 수 있는 애노테이션, 스프링의 MessageConverter가 데이터를 가공해서 브라우저에 전송
(과거 MIME 타입 지정 및 데이터를 만들어 내는 방식 자동화)
3. ResponseEntity 타입
스프링에서 제공하는 ResponseEntity 타입은 개발자가 직접 결과 데이터 + HTTP의 상태 코드를 직접 제어할 수 있는 클래스
Note) HTTP 상태(status) 코드
> 100번대 : 현재 데이터의 처리 중인 상태
- 100 : 데이터의 일부를 서버가 받은 상태
> 200번대 : 정상적인 응답
- 200 : 정상 처리
- 204 : 정상 처리되었으나 서버에서 보내줄 데이터가 없음
> 300번대 : 다른 URL 처리
- 301 : 요청된 페이지가 새 URL로 변경됨
- 304 : 이미 기존 데이터와 변경된 것이 없음
> 400번대 : 서버에서 인식할 수 없음
- 400 : 전송된 Request에 문제가 있어서 서버가 인식할 수 없음
- 403 : 서버에서 허락되지 않음
- 404 : URL에 해당하는 자원을 찾을 수 없음 (Not Found)
- 406 : 전송 방식이 허락되지 않음 (REST에서 자주 발생)
> 500번대 : 서버 내부 문제
- 500 : 서버에서 처리 시 문제 발생
- 502 : 게이트웨이나 프록시 상태 문제(과부하 등)
- 503 : 일시적인 과부하나 서비스 중단 생태
- 504 : 지정된 처리시간이 지나서 처리되지 못함
4. Advanced REST Client
REST 방식의 경우, 화면을 제작하지 않는 형태로 처리되기에 결과를 체크하기 위해 Chrome 브라우저의 앱(Chrome App Store)으로 존재하는 Advanced REST Client나 PostMan 등의 프로그램 사용
5. Ajax(Asynchronous JavaScript and XML, 비동기화된 자바스크립트와 XML)
브라우저에서 대화형으로 서버와 데이터를 주고받는 형태의 메시지 전송 방식
> 화면의 전환이나 깜빡임 없이 서버에서 데이터를 받는 방법
> 예) 구글(Google)의 지도나 포털 사이트의 자동완성 기능들
> 특징 : 1) 브라우저의 화면 전환이 없기 때문에 사용자 경험 측면에서 좋다는 점, 2) 서버에서 화면에 필요한 모든 데이터를 만드는 대신 서버는 필요한 데이터만 전달하기 때문에 개발의 무게 중심이 브라우저 쪽으로 많이 배분된다는 점
Note) 비동기화(asynchronous) : 결과의 데이터를 기다리는 방식이 아닌, 결과를 통보받는 형식
※ REST 방식이 데이터를 호출하고, 사용하는 방식을 의미한다면 Ajax는 실제로 그를 이용하는 수단에 가깝다.
반응형'Spring Web Project > 6. Ajax 댓글 (Reply)' 카테고리의 다른 글
06. 삭제 Controller (REST 방식) (0) 2021.01.11 05. 수정 Controller (REST 방식) (0) 2021.01.11 04. 목록 Controller (REST 방식) (0) 2020.12.30 03. 등록 Controller (REST 방식) (0) 2020.12.29 02. TABLE 생성, Domain ~ Service (0) 2020.12.29