바로 가기

REST API란?

URL 복사

2024년 글로벌 IT 트렌드는 어떻게 변화할까요?

기술 세계가 급속한 디지털 전환을 겪으면서, 기업이 핵심 영역에 대한 우선순위를 조정하는 동향이 변화하고 있습니다. 이 2024년 글로벌 IT 트렌드 리포트는 IT 업계는 물론 다양한 업계의 6대 예산 지원 우선순위와 발전을 막는 3대 문제점을 설명합니다.

REST(RESTful, Representational State Transfer, RESTful, 레스트풀) API는 REST 아키텍처 스타일의 제약 조건을 준수하고 RESTful 웹 서비스와 상호 작용할 수 있도록 하는 애플리케이션 프로그래밍 인터페이스(API 또는 웹 API)입니다. REST는 Representational State Transfer의 줄임말이며, 컴퓨터 과학자 Roy Fielding이 만들었습니다.

API는 애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트로, 때때로 API는 정보 제공자와 정보 사용자 간의 계약으로 지칭되며 소비자에게 필요한 콘텐츠(호출)와 생산자에게 필요한 콘텐츠(응답)를 구성합니다.예를 들어, 날씨 서비스용 API 설계에서는 사용자는 우편번호를 제공하고, 생산자는 두 부분(첫 번째는 최고 기온, 두 번째는 최저 기온)으로 구성된 응답으로 답하도록 지정할 수 있습니다.  

바꿔 말하자면 컴퓨터나 시스템과 상호 작용하여 정보를 검색하거나 기능을 수행하고자 할 때 API는 사용자가 원하는 것을 시스템에 전달할 수 있게 지원하여 시스템이 이 요청을 이해하고 이행하도록 할 수 있습니다. 

API를 사용자 또는 클라이언트, 그리고 사용자와 클라이언트가 얻으려 하는 리소스 또는 웹 서비스 사이의 조정자로 생각하면 됩니다. API는 조직이 보안, 제어, 인증을 유지 관리(누가 무엇에 액세스할 수 있는지 결정)하면서 리소스와 정보를 공유할 수 있는 방법이기도 합니다. 

API의 또 다른 장점은 캐싱, 즉 리소스 검색 방법 또는 리소스의 출처에 대해 자세히 알 필요가 없다는 것입니다.

마이크로서비스 개발자를 위한 설계 팁

REST는 프로토콜이나 표준이 아닌 아키텍처 제약 조건입니다. API 개발자는 REST를 다양한 방식으로 구현할 수 있습니다.

RESTful API를 통해 클라이언트 요청이 수행될 때 RESTful API는 리소스 상태에 대한 표현을 요청자 또는 엔드포인트에 전송합니다. 이 정보 또는 표현은 HTTP: JSON(Javascript Object Notation), HTML, XLT, Python, PHP 또는 일반 텍스트를 통해 몇 가지 형식으로 전송됩니다. JSON은 그 이름에도 불구하고 사용 언어와 상관이 없을 뿐 아니라 인간과 머신이 모두 읽을 수 있기 때문에 가장 널리 사용되는 파일 형식입니다. 

그 외에 헤더와 매개 변수는 요청의 메타데이터, 권한 부여, URI(Uniform Resource Identifier), 캐싱, 쿠키 등에 대한 중요한 식별자 정보를 포함하고 있기 때문에 RESTful API HTTP 요청의 HTTP 메서드에서도 중요하다는 점을 유의해야 합니다. 요청 헤더와 응답 헤더가 있으며, 각각 고유한 HTTP 연결 정보 및 상태 코드가 있습니다.

API가 RESTful로 간주되려면 다음 기준을 따라야 합니다.

  • 클라이언트, 서버 및 리소스로 구성되었으며 요청이 HTTP를 통해 관리되는 클라이언트-서버 아키텍처
  • 스테이트리스(stateless) 클라이언트-서버 커뮤니케이션: GET 요청 간에 클라이언트 정보가 저장되지 않으며, 각 요청이 분리되어 있고 서로 연결되어 있지 않음
  • 클라이언트-서버 상호 작용을 간소화하는 캐시 가능 데이터
  • 정보가 표준 형식으로 전송되도록 하기 위한 구성 요소 간 통합 인터페이스. 여기에 필요한 것은 다음과 같습니다.
    • 요청된 리소스가 식별 가능하며 클라이언트에 전송된 표현과 분리되어야 합니다.
    • 수신한 표현을 통해 클라이언트가 리소스를 조작할 수 있어야 합니다(이렇게 할 수 있는 충분한 정보가 표현에 포함되어 있기 때문).
    • 클라이언트에 반환되는 자기 기술적(self-descriptive) 메시지에 클라이언트가 정보를 어떻게 처리해야 할지 설명하는 정보가 충분히 포함되어야 합니다.
    • 하이퍼텍스트/하이퍼미디어를 사용할 수 있어야 합니다. 즉, 클라이언트가 리소스에 액세스한 후 하이퍼링크를 사용해 현재 수행 가능한 기타 모든 작업을 찾을 수 있어야 합니다.
  • 요청된 정보를 검색하는 데 관련된 서버(보안, 로드 밸런싱 등을 담당)의 각 유형을 클라이언트가 볼 수 없는 계층 구조로 체계화하는 계층화된 시스템.
  • 코드 온디맨드(선택 사항): 요청을 받으면 서버에서 클라이언트로 실행 가능한 코드를 전송하여 클라이언트 기능을 확장할 수 있는 기능. 

이처럼 REST API는 따라야 할 기준이 있지만, 속도를 저하시키고 더 무겁게 만드는 XML 메시징, 빌트인 보안 및 트랜잭션 컴플라이언스처럼 특정 요구 사항이 있는 SOAP(Simple Object Access Protocol) 등의 규정된 프로토콜보다 사용하기 쉬운 것으로 간주됩니다. 

이와 대조적으로 REST는 필요에 따라 구현할 수 있는 일련의 지침으로, 이를 통해 REST API는 더 빨라지고 경량화되며 확장성이 증대되어 사물인터넷(IoT)모바일 애플리케이션 개발에 가장 적합한 API가 됩니다. 

Red Hat OpenShift API Management를 시작하세요.

Red Hat® Integration은 애플리케이션 연결성 및 데이터 트랜스포메이션, 서비스 구성 및 오케스트레이션, 실시간 메시지 스트리밍, 변경 데이터 캡처, API 관리를 한 곳에서 모두 제공하여 하이브리드 인프라 전반의 애플리케이션 및 데이터를 연결하는 API 중심 솔루션입니다. 이 솔루션은 클라우드 네이티브 플랫폼 및 툴체인과 결합되어 현대적인 애플리케이션 개발을 지원합니다. 

Red Hat 3scale API Management는 Red Hat Integration의 구성 요소로서 성능, 제어, 보안 및 확장을 위해 구축된 인프라 플랫폼에서 API를 공유, 배포, 제어 및 수익화하도록 지원합니다. 3scale 구성 요소를 온프레미스나 클라우드 또는 두 곳 모두에 배치하세요. 

추가 자료

문서

API란?

API는 애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)를 뜻합니다.

문서

API 게이트웨이에서 수행하는 작업

API 게이트웨이는 클라이언트와 백엔드 서비스 컬렉션 사이에 위치하는 애플리케이션 프로그래밍 인터페이스(API) 관리 툴입니다.

문서

왜 API 관리를 위해 Red Hat을 선택해야 할까요?

Red Hat의 API 솔루션은 재사용성, IT 민첩성, 그리고 측정, 모니터링, 확장을 지원하는 관리 인터페이스에 초점을 맞추고 있습니다.