FrontEnd/Vue.js

REST API, RESTFUL API

M00NPANG 2023. 5. 7. 01:41
API

다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다.

개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다.

ex. 근무 시간 기록 애플리케이션은 직원의 전체 이름과 날짜 범위를 용청하는 API를 표시한다. 이 정보가 수신되면 내부적으로 직원의 근무 시간 기록을 처리하고 해당 날짜 범위에서 근무한 시간을 변환한다.

 

 

REST(Representational State Transfer)

API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처

처음에는 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌다.

REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있다.

구현이 쉽고 수정이 가능하여 모든  API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있다.

 

REST API

REST 아키텍처 스타일을 따르는 API

다양한 클라이언트(, 앱 등)에서 사용 가능

일관된 인터페이스를 제공하여 서버와 클라이언트 간의 상호작용을 단순화하고 표준화 가능

자원을 중심으로 시스템을 구성할 수 있고, 자원을 쉽게 공유하고 재사용할 수 있다.

캐시 기능을 이용하여 성능을 향상시킬 수 있으며, 분산 환경에서 쉽게 확장 가능한 아키텍처를 제공한다.

REST API의 특징

1. 클라이언트-서버 아키텍처: 클라이언트와 서버가 분리되어 각각 독립적으로 발전하고 변경될 수 있다.
2. 무상태성(Stateless): 클라이언트와 서버 간에 상태를 유지하지 않습니다. 각 요청이 독립적으로 처리되기 때문에 서버의 부담이 줄어든다.
3. 캐시 가능(Cacheable): 서버의 응답은 캐시될 수 있어야 합니다. 클라이언트는 이전에 받은 응답을 캐시하여 사용하므로, 서버의 부하를 줄일 수 있다.
4. 계층화(Layered System): 클라이언트와 서버 사이에 다양한 계층(layer)를 둘 수 있다. 이를 통해 보안, 로드 밸런싱, 공유 캐시 등의 기능을 제공할 수 있다. 5. 인터페이스 일관성(Uniform Interface): URI를 통해 자원을 식별하고, HTTP 메서드(GET, POST, PUT, DELETE)를 사용하여 해당 자원에 대한 CRUD(Create, Read, Update, Delete) 연산을 수행한다.
6. 자체 표현(Self-descriptiveness): REST API 메시지는 자체적으로 어떤 동작을 수행해야 하는지 명확하게 나타내야 한다.
7. 클라이언트와 서버의 분리: REST API는 클라이언트와 서버의 역할을 명확하게 분리하므로, 각각의 역할에 맞는 최적화와 유지보수가 가능한다.

이러한 REST API의 특징들은 클라이언트와 서버 간의 상호 운용성(interoperability), 확장성(scalability), 간결성(simplicity), 신뢰성(reliability) 등을 제공하여 웹 서비스 개발에 많은 이점을 제공한다.

RESTFUL API

REST API가 제공하는 URI, HTTP Method, 자원의 표현 등을 따르면서, 일관성 있는 URI를 사용하고, HTTP Method를 명확하게 정의하여 자원을 관리하는 API

 

다양한 클라이언트(, 앱 등)에서 사용 가능하다.

서버와 클라이언트 간의 상호작용을 단순화하고 표준화할 수 있다. 

자원을 중심으로 시스템을 주성할 수 있고, 자원을 쉽게 공유하고 재사용할 수 있다.

캐시 기능을 이용하여 성능을 향상시킬 수 있으며, 분산 환경에서 쉽게 확장 가능한 아키텍처를 제공한다.

RESTful API의 특징

1. URI(Uniform Resource Identifier) : 리소스를 고유하게 식벽하는 URI를 사용
2. HTTP Method : HTTP Method를 통해 리소스에 대한 작업(생성, 조회, 수정, 삭제)
3. 자원(Resource) : HTTP Method를 통해 정의된 자원을 표현하는 데이터 형식(JSON, XML 등)
4. 자체 표현(Self-descriptive) : API 자체가 어떻게 사용되는지 명확하게 설명하는 메타데이터를 포함

RESTful API 사용 이점

1. 분리된 클라이언트-서버 아키텍처: RESTful API는 클라이언트와 서버를 분리시켜 서로의 의존성을 낮추고 상호작용을 쉽게 한다.
2. 유니폼 인터페이스: RESTful API는 HTTP 프로토콜을 기반으로 하기 때문에 HTTP 메소드와 URI를 통해 리소스를 조작한다. 이는 인터페이스가 일관성 있게 유지되고 구성이 단순해지며, 캐싱과 검증 기능을 활용할 수 있게 한다.
3. 상태 없음(Stateless): RESTful API는 서버가 클라이언트의 상태를 유지하지 않는다. 즉, 클라이언트의 모든 요청에 대한 응답은 독립적이고, 서버는 각 요청을 단순히 처리하고 응답합니다. 이는 서버 부하를 줄이고, 확장성을 높여준다.
4. 쉬운 캐싱: RESTful API는 HTTP 헤더를 통해 캐싱을 지원한다. 이는 응답을 캐시하여 클라이언트의 불필요한 요청을 줄일 수 있으며, 서버 부하를 줄여준다.
5. 다양한 클라이언트와 호환성: RESTful API는 웹을 기반으로 하기 때문에 다양한 클라이언트와 호환성이 높다. ex, 브라우저, 모바일 앱, 웹 서비스 등에서 모두 사용할 수 있다.
6. 유연성: RESTful API는 다양한 형태의 데이터를 전송할 수 있으며, JSON, XML 등 여러 형식을 지원한다. 이는 API를 사용하는 클라이언트에게 쉽게 처리 가능한 데이터를 제공하며, 개발자가 필요한 데이터를 선택적으로 사용할 수 있게 한다.
RESTful API 작동 방법

1. 클라이언트가 서버에 요청을 전송합니다. 클라이언트가 API 문서에 따라 서버가 이해하는 방식으로 요청 형식을 지정합니다.
2. 서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인합니다.
3. 서버가 요청을 수신하고 내부적으로 처리합니다.
4. 서버가 클라이언트에 응답을 반환합니다. 응답에는 요청이 성공했는지 여부를 클라이언트에 알려주는 정보가 포함됩니다. 응답에는 클라이언트가 요청한 모든 정보도 포함됩니다.

'FrontEnd > Vue.js' 카테고리의 다른 글

node.js 환경 vs 브라우저 환경  (1) 2023.05.07
Vue.js vs React  (1) 2023.05.07
웹 스토리지(Web Storage)  (0) 2023.05.06
세션과 쿠키  (0) 2023.05.06
GitHub Workflow  (1) 2023.04.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
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
글 보관함