본문 바로가기

IT 개념

스프링 REST

스프링을 하면서 REST 라는 개념이 나왔는데.. 이해가 잘 안가서 찾아보았습니다.

https://congsong.tistory.com/28

 

스프링 부트(Spring Boot ) - REST API 알아보기 [개발을 시작해봐요!]

이전의 두 글에서는 게시판에 페이징(검색) 기능을 적용해 보았습니다 이번 글부터는 게시판에 댓글 기능을 구현하는데요, 본 포스팅에서는 REST API 방식에 대해 가볍게 알아보도록 하겠습니다. 이번 글은 구멍..

congsong.tistory.com

REST 란

Representational State Transfer 의 약어로 하나의 URI는

하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념입니다.

디바이스의 종류에 상관 없이 공통으로 데이터를 처리할 수 있도록 하는 방식을 REST 라고 합니다.

REST API 는 사용자가 어떠한 요청을 했을 때 화면(HTML)을 리턴하지 않고

사용자가 필요로 하는 결과(데이터)만을 리턴해주는 방식입니다.

https://engkimbs.tistory.com/855

 

[Spring Rest API #1] REST API란?

| REST API란 REST API란 REST 아키텍처 스타일을 지키는 API를 말합니다. REST 아키텍처는 클라이언트와 서버간의 독립적인 개발을 진행할 수 있는 아키텍처 스타일입니다. 서버와 클라이언트의 데이터는 HTTP..

engkimbs.tistory.com

클라이언트와 서버는 따로 분리되며 데이터는 HTTP 프로토콜 위에서 주고 받는 아키텍처라고 생각하면 됩니다.

서버에서 HTML 을 그려세 데이터를 보내는 MVC 아키텍처와 큰 차이가 있습니다.

REST 인터페이스 일관성

1. 자원식별

1) URI(자원, resource)을 통한 자원식별, 자원을 나타내기 위해서는 명사(noun)을 사용해야 하고 표현하고자

하는 자원이 복수형일 경우에는 이것을 명시해야 합니다.

2. 메세지를 통한 리소스 조작

1) HTTP 메서드를 GET/POST/PUT/DELETE 를 통하며 서버측에 데이터를 컨트롤합니다.

GET(조회), POST(생성), PUT(갱신), DELETE(삭제)를 나타내며 이러한 기준을 적용하여 API 를

설계해야 합니다.

(ex GET http://localhost/api/books)

3. 자기 서술적 메시지(self-decriptive)

1) REST API 에서는 데이터를 설명하는 명세서가 존재햐아 합니다.

글로 보니까 잘 이해가 안되네요..

그래서 유튜브도 찾아보았습니다.

https://www.youtube.com/watch?v=iOueE9AXDQQ

 

1. REST API는 정보를 주고받는 데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식이다.

1) 어떤 프로그램, 언어를 쓰든 이 폼에 맞춰서 기능을 만들어내면 되는겁니다.

※ API ( Application Programming Interface )

소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단입니다.

2. 프론트엔드 웹에서 서버에 데이터를 요청하거나, 배달 앱에서 서버에 주문을 넣거나 등

이런 서비스들에서 오늘날 널리 사용되는 것이 REST 란 형식의 API 입니다. (과거의 SOAP 형식 대체)

3. REST 의 가장 중요한 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지를

그 요청의 모습 자체로 추론 가능하다는 것이다.

4. 서버에 REST API 로 요청을 보낼 때는 HTTP( HypterText Transfer Protocol) 란 규약에 따라 신호를 전송한다.

우체국에서 일반우편, 등기, 택배 등 다양한 방식이 있듯이 이 HTTP 로 요청을 보낼 때도 여러 메소드가 있다.

(GET, READ, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH)

REST API 에서는 4가지(GET,POST, PUT, DELETE) 혹은 5가지(PATCH)를 사용한다.

5. POST, PUT, PATCH 에는 body란 주머니가 있어서 정보들을

GET 이나 DELETE 보다 많이, 비교적 안전하게 감춰서 실어보낼 수 있다.

6. GET 은 데이터를 Read, 조회하는데 사용한다.

어떤 URI 에 get으로 보내는 요청이 있다면 개발자들은 Read 요청이라고 짐작할 수 있다.

7. POST 는 Create, 새로운 정보를 추가하는데 사용한다.

어떤 반에 새 학생이 들어와서 정보를 추가하려면 URI를 짜고 POST 요청을 작성해서 body 에 새 학생의 정보를

보낸다. 학생의 idx는 정보가 추가되면서 생성되기 때문에 post 요청에서는 명기할 필요가 없다.

그런데 해당 idx를 가진 학생의 정보들이 변경되었을 때는 URI에 변경할 학생의 idx 까지 명기한 다음

PUT 또는 PATCH 를 사용해서 변경, UPDATE 될 새 정보들을 body에 실어보낸다.

PUT은 정보를 통째로 갈아 끼울 때, PATCH는 정보 중 일부를 특정 방식으로 변경할 때 사용한다.

8. DELETE는 URI 에 지울 데이터의 idx까지 표시해야 한다.

9.URI 는 동사가 아닌 명사들로 이루어져야 한다.

영상을 보니까 이해했습니다.

REST API 는 데이터를 주고 받는 형식이고

메소드 방식에 따라 이 요청이 어떤 요청인지 유추할 수 있습니다.

즉, 데이터를 효율적으로 전송하고 업무를 효율적으로 하기 위한 프로토콜이라고 생각하면 되겠네요!

'IT 개념' 카테고리의 다른 글

JSTL <c:if>, <c:choose>  (0) 2021.06.15
AJAX..?비동기처리방식..?  (0) 2021.06.15
스프링 @Controller  (0) 2021.06.10
스프링 @ModelAttribute  (0) 2021.06.10
스프링 addAttribute VS addFlashAttribute  (0) 2021.06.10