Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발새발

# REST Client 본문

스프링

# REST Client

개발하는후추 2022. 8. 4. 15:43

REST 는 "REpresentational State Transfer"의 약자로 주어진 시점에 두 시스템 간의 새로운 통신 방식으로, 시스템 중 하나를 'REST 클라이언트'라고 하고 다른 시스템을 'REST 서버'라고 한다

HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고
HTTP Method(POST, GET, PUT, DELETE)를 통해
해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미

REST 클라이언트란?

REST 클라이언트는 시스템 또는 서비스 공급자가 통신을 위해 노출하는 REST 서비스 API를 호출하는 방법 또는 도구

예를 들어 API가 Google에서 실시간 교통 정보를 얻기 위해 Google 교통 API를 호출하는 소프트웨어/도구를 REST 클라이언트라고 한다

REST의 특징

Server-Client(서버-클라이언트 구조)

  • 서버는 api제공, 클라이언트는 사용자 인증,세션,로그인등의 정보를 관리하는 구조로 각각의 역할이 명확하여 서버에서 개발할 내용이 명확하고 의존성이 줄어든다

Stateless(무상태)

  • 작업을 위한 상태정보를 저장하고 관리하지 않는다
  • 세션,쿠키 정보를 별도로 저장하고 관리하지 않기 때문에 api서버는 들어온 요청만 처리하면 된다

Cacheable(캐시 처리 가능)

  • HTTP라는 기존 웹 표준을 그대로 사용하기 때문에, HTTP가 가진 캐싱 기능을 적용할 수 있다

Layered System(계층화)

  • 다중 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있게 한다

Uniform Interface(인터페이스 일관성)

  • HTTP 표준에만 따른다면, 안드로이드/IOS 플랫폼이든, 특정 언어나 기술에 종속되지 않고 모든 플랫폼에 사용할 수 있다

REST의 장단점

장점

  • HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구출할 필요가 없다
  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능
  • Hypermedia API의 기본을 충실히 지키면서 범용성을 보장
  • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다
  • 서버와 클라이언트의 역할을 명확하게 분리

단점

  • 표준이 자체가 존재하지 않아 정의가 필요
  • 사용할 수 있는 메소드가 4가지밖에 없다
  • HTTP Method 형태가 제한적이다.
  • 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header 정보의 값을 처리해야 하므로 전문성이 요구된다.

'스프링' 카테고리의 다른 글

트랜잭션이란?  (0) 2022.08.04
ORM이란?  (0) 2022.08.04
JPA  (0) 2022.08.04
#스프링 MVC 2  (0) 2022.08.04
#스프링 MVC 동작  (0) 2022.08.04
Comments