[Network] REST와 RESTfulAPI

미래·2023년 6월 15일
0

CS

목록 보기
6/6
post-thumbnail

프론트엔드단에서 웹페이지를 구현하고 서버와 소통하다 보면, REST, RESTful, RESTfulAPI란 단어를 많이 접하게 된다. REST는 뭐고, RESTful한 API는 뭘까?

aws는 친절하게도 공식 홈페이지에 RESTful API란 뭔가요?라는 문서를 제공하고 있다.

1. RESTful API가 뭘까?

RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스입니다. 대부분의 비즈니스 애플리케이션은 다양한 태스크를 수행하기 위해 다른 내부 애플리케이션 및 서드 파티 애플리케이션과 통신해야 합니다. RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따르므로 이러한 정보 교환을 지원합니다.

말 그대로, 인터넷에서 정보를 교환하기 위해 사용하는 건데 안전성, 신뢰성, 효율성이 장점이다. API는 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙인데, 쉽게 말하자면 REST한 방식을 따른 API가 바로 RESTful API인 것. 그렇다면 REST가 대체 뭘까?

2. REST는 뭘까?

Representational State Transfer(REST). 자원의 이름을 나타내어(Represent) 해당 자원의 상태를 주고받는 방식의 소프트웨어 아키텍처다.

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

.

3. REST에는 다음과 같은 특징이 있다!

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

서버는 API를 제공하고 비즈니스 로직 처리 및 저장을 책임진다. 클라이언트는 사용자 인증이나 context(세션, 로그인 정보) 등을 직접 관리하고 책임진다. 서로 간의 의존성이 줄어든다.

2) Stateless(무상태)

서버가 이전의 모든 요청과 독립적으로 모든 클라이언트 요청을 완료하는 통신 방법. 각 API의 서버는 클라이언트의 요청만을 처리한다. 서버의 처리 방식에 일관성이 생기고, 서비스의 자유도가 높아진다.

3) Cacheable(캐시 처리 가능)

서버 응답 시간을 개선하기 위해 클라이언트 또는 중개자에 일부 응답을 저장하는 프로세스인 캐싱을 지원한다. 캐시 가능 또는 캐시 불가능으로 정의되는 API 응답을 사용하여 캐싱을 제어한다.

4) Layered System(계층화)

클라이언트는 클라이언트와 서버 사이의 다른 승인된 중개자에게 연결할 수 있으며 여전히 서버로부터도 응답을 받는다. 서버는 요청을 다른 서버로 전달할 수도 있다. 클라이언트 요청을 이행하기 위해 함께 작동하는 보안, 애플리케이션 및 비즈니스 로직과 같은 여러 계층으로 여러 서버에서 실행되도록 RESTful 웹 서비스를 설계할 수 있다.

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

URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다. HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다. 특정 언어나 기술에 종속되지 않는다.

6) 온맨디드 코드

서버는 소프트웨어 프로그래밍 코드를 클라이언트에 전송하여 클라이언트 기능을 일시적으로 확장하거나 사용자 지정할 수 있다.



*참고문서
[Network] REST란? REST API란? RESTful이란?
[네트워크] REST API란? REST, RESTful이란?

profile
여전히 에디터, 새롭게 개발자

0개의 댓글