Spring - REST-API

상목·2023년 7월 20일
0

Spring

목록 보기
6/6

< 시작 전 알아두면 좋은 개념 >

> API (Application Programming interface) : 응용 프로그램에서 사용할 수 있도록 다른 응용 프로그램을 제어할 수 있게 만든 인터페이스

> API 사용 효과 : 내부 구현 로직을 알지 못해도 정의되어 있는 기능을 쉽게 사용 가능하다.

> Interface : 어떤 장치간 정보를 교환하기 위한 수단이나 방법을 의미한다. Ex) 마우스, 키보드, 터치패드 등 동작원리나 로직이 어떻게 구현되어 있는지  알지 못해도 쉽게 사용 가능하다.

< REST (Representational State Transfer) 란 ? >

> 자원의 이름으로 구분하여 해당 자원의 상태를 교환하는 것을 의미한다. (자원 == 데이터)

> REST는 서버와 클라이언트의 통신 방식 중 하나이다.

> HTTP URI를 통해 자원을 명시하고 HTTP Method를 통해 자원을 교환하는 것을 말한다. ( * HTTP Method : Create(생성), Read(읽기), Update(수정), Delete(삭제)  -> CRUD *)

< 특징 >

1. Server-Client 구조

 > 자원이 있는 쪽이 Server, 요청하는 쪽이 Client
 
 > 클라이언트와 서버가 독립적으로 분리되어 있어야 한다.

2. Stateless

> 요청 간에 클라이언트 정보가 서버에 저장되지 않아야 한다.

> 서버는 여러개의 요청이 와도 각각의 요청을 완전히 별개의 것으로 인식하고 처리해야한다.

3. Cacheable

> HTTP 프로토콜을 그대로 사용하기 때문에 HTTP의 특징인 캐싱 기능을 적용할 수 있다. 

> 대량의 요청을 효율적으로 처리하기 위해 캐시를 사용한다.

4. 계층화 (Latered System)

> 클라이언트는 서버의 구성과 상관없이 REST API 서버로 요청한다.

> 서버는 다중 계층으로 구성될 수 있다. Ex) 로드밸런싱, 보안요소, 캐시 등)

5. Code on Demand (Optional)

> 요청을 받으면 서버에서 클라이언트로 코드 또는 스크립트(로직)을 전달하여 클라이언트 기능 확장이 가능하다.

> JavaScript에서 자주 사용되는 개념 : 스크립트를 받아 화면을 띄어주는 형식

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

> 정보가 표준 형식으로 전송되기 위해 구성 요소간 통합 인터페이스를 제공한다.

> HTTP 프로토콜을 따르는 모든 플랫폼에서 사용 가능하게 끔 설계한다.

< 장점 >

> HTTP 표준 프로토콜을 사용하는 모든 플랫폼에서 호환이 가능하다

> 서버와 클라이언트의 역할을 명확하게 분리 가능하다 ( 요청하는 쪽이 클라이언트 자원이 있는 쪽이 서버)

> 여러 서비스 설계에서 생길 수 있는 문제를 최소화 할 수 있다.

< REST API 란? >

> REST 아키택처의 조건을 준수하는 어플리케이션 프로그래밍 인터페이스를 뜻한다.

> 최근 많은 API가 REST API로 제공되고 있다.

> 일반적으로 REST 아키텍처를 구현하는 웹 서비스를 RESTful한다고 표현한다.

< REST API 특징 >

> REST 기반으로 시스템을 분산하여 확장성과 재사용성을 높일 수 있다.

> HTTP 표준을 따르고 있어 여러 프로그래밍 언어로 구현할 수 있다.
profile
풀스택 개발 이야기

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

덕분에 좋은 정보 얻어갑니다, 감사합니다.

답글 달기