REST API

REST API는 REST(Representational State Transfer) 아키텍처의 제약 조건을 준수하는 API(Application Programming Interface)입니다. REST는 웹 등의 분산 하이퍼미디어 시스템에 접근하기 위해 개발된 소프트웨어 아키텍처 스타일로, 구체적인 프로토콜이나 표준이 아니라 아키텍처 원칙의 집합입니다.

 

REST API에서는 서버와 클라이언트 간의 통신에 HTTP/HTTPS 프로토콜을 사용하며, HTTP의 기본적인 메서드인 GET, POST, PUT, DELETE를 사용해 리소스에 접근하고 제어할 수 있습니다.

REST API의 핵심 원칙

  1. Client-Server Architecture: 클라이언트와 서버는 HTTP를 통해 요청과 응답을 관리하는 독립적인 구조를 가집니다.
  2. Stateless: 각 요청 간에 클라이언트의 정보가 저장되지 않으며, 요청이 서로 독립적입니다.
  3. Cacheable: 클라이언트와 서버 상호작용을 간소화하기 위해 데이터 캐싱이 가능해야 합니다.
  4. Uniform Interface: 구성 요소 간의 통합된 인터페이스를 통해 정보가 표준 형식으로 전송되어야 합니다.
    • 리소스는 고유하게 식별 가능해야 하며 클라이언트에 전송된 표현과 분리되어야 합니다.
    • 클라이언트는 수신된 표현을 통해 리소스를 조작할 수 있어야 합니다.
    • 메시지는 스스로를 설명할 수 있어야 합니다. 즉, 클라이언트가 정보를 어떻게 처리해야 할지 충분한 정보를 포함해야 합니다.
    • HATEOAS(Hypermedia as the Engine of Application State): 클라이언트가 리소스에 접근한 후, 현재 수행 가능한 다른 모든 작업을 하이퍼링크를 통해 찾을 수 있어야 합니다.
  5. Layered System: 클라이언트는 서버의 다양한 계층(보안, 로드 밸런싱 등)을 볼 수 없는 계층화된 시스템으로 정보를 검색합니다.
  6. Code-on-Demand (Optional): 서버는 요청에 따라 클라이언트로 실행 가능한 코드를 전송하여 클라이언트의 기능을 확장할 수 있습니다.

 

독립적 진화의 중요성

REST API의 중요한 특징 중 하나는 서버와 클라이언트가 각각 독립적으로 진화할 수 있다는 것입니다. 서버의 기능 변경이 클라이언트의 업데이트를 필요로 하지 않으므로 양측은 서로 독립적으로 발전할 수 있습니다.

 

이는 시스템의 유지보수성과 확장성을 크게 향상시킵니다.

REST API는 이러한 원칙을 바탕으로 다양한 웹 서비스와 애플리케이션에서 데이터의 교환과 서비스의 제공에 널리 사용되고 있습니다. XML이나 JSON과 같은 표준화된 데이터 포맷을 이용해 효율적이고 유연한 커뮤니케이션을 가능하게 합니다.

 

 

 

 

 

 

참고 :

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

https://www.redhat.com/ko/topics/api/what-is-a-rest-api

https://tuhbm.github.io/2019/04/24/architecture/

'네트워크' 카테고리의 다른 글

프록시 서버  (0) 2024.04.12
CDN 작동 방식  (0) 2024.04.12
DNS 작동방식  (0) 2024.04.12
쿠키 | 세션  (0) 2024.04.12