Api 입문서: Api 전략과 아키텍처의 핵심 개념
원문: Tim GoodWill, "API Primer: Core Concepts in API Strategy and Architecture"
API 개념 이해도 맞추기
API 전략, 아키텍처 및 관리 개념에 대해 IT 및 비즈니스 리더들과 논의할 때 모두가 동일한 이해를 바탕으로 시작하는 것이 좋습니다. 다음은 API 전략 및 로드맵에 대한 논의에서 다룰 수 있는 여러 중요한 API 개념에 대한 간단한 입문서입니다. 본문에서 간략히 살펴볼 개념들은 다음과 같습니다.
API
REST
API-First와 API-as-a-Product
Design-First 및 오픈 API
API 게이트웨이
API 관리
API 관리 프레임워크
API 포털 및 API 카탈로그
API 생태계
API 거버넌스
무엇보다 먼저, API란 무엇인가요?
애플리케이션 프로그래밍 인터페이스(API, Application Programming Interface)는 소프트웨어 애플리케이션이 서로 통신할 수 있도록 하는 일련의 루틴, 프로토콜 및 도구입니다. 애플리케이션 프로그래밍 인터페이스(API)는 다른 애플리케이션이 사용할 수 있도록 소프트웨어의 서비스나 데이터를 제공합니다.
API 명세란 API를 기술하는 것입니다. 이를 통해 클라이언트 애플리케이션 개발자는 제공하는 서비스에 보다 편리하게 해당 API를 통합할 수 있습니다.
'API'는 여러 통합 기술들을 포괄하는 광범위한 용어입니다. 오늘날 엔터프라이즈 API 전략과 관련하여 'API'라는 용어와 일반적으로 연관되는 기본 개념은 다음과 같습니다.
네이티브 HTTP 메서드 및 프로토콜
REST(Representational State Transfer) — HTTP 기반의 자원 지향 API 패러다임
JSON(JavaScript Object Notation) — 선호되는 (배타적이지 않은) 데이터 교환 형식
그러나 API 전략은 보완적인 API 기술과 아키텍처를 수용하도록 발전할 수 있습니다.
REST 아키텍처 스타일과 마이크로서비스
REST("REpresentational State Transfer"의 약어)는 자원 지향 아키텍처 스타일로
"전체적으로 적용할 경우 구성 요소 상호 작용의 확장성, 인터페이스의 범용성, 구성 요소의 독립적인 배치를 강조하는 일련의 설계적 제약 조건을 제공합니다." — Fielding, R.T. 2000, Representational State Transfer (REST).
마찬가지로 마이크로서비스 아키텍처는 비즈니스 기능과 자원을 중심으로 구성된 서비스들의 느슨한 결합과 독립적 배포를 강조하는 아키텍처 스타일입니다.
"마이크로서비스로 구축된 애플리케이션들은 가능한 한 분리되고 응집력을 갖추는 것을 목표로 합니다. 각 애플리케이션은 자체 도메인 로직을 가지고… 이러한 애플리케이션들은 간단한 RESTish 프로토콜을 사용하여 조정됩니다." — Fowler, M and Lewis, J 2014, Microservices.
API-First와 API-as-a-Product
API-first는 서비스와 데이터의 상호작용 수단으로의 API를 중심으로 하는 소프트웨어 설계 접근 방식입니다. 이 접근 방식은 API를 일급 시민처럼 취급하여 API의 재사용성과 적응성을 높이고 조직이 더 기민하게 움직이고 혁신할 수 있도록 합니다.
API-as-a-Product는 오픈 비즈니스 모델 사고방식에 기반하여 API가 단순한 전송 수단일 뿐만 아니라 가치를 제공하는 하나의 주요 제품이라는 패러다임을 제시합니다.
API 제품은 API 명세나 백엔드 서비스가 아닙니다. 코드, 보안이나 규제 정책, 액세스 모델, API 문서, SLA[1], 수익 창출 및/또는 소비자 참여 모델을 포함하는 배포 가능한 패키지입니다.
Design-First 및 오픈 API
Design-first는 API-first 제품의 설계와 명세를 우선시하는 접근 방식으로 코드 생성기를 활용하여 개발을 가속화합니다. Design-first는 API-first 전략의 보완적인 측면인 경우가 많지만 항상 그런 것은 아닙니다.
모델 주도형 개발(MDD, Model Driven Development)은 공동 설계 워크숍과 모델링 툴을 포함하는 Design-first 접근 방식입니다. 이를 통해 다양한 이해관계자 집단은 API나 Event 명세가 생성되는, 구성이 용이하고 발전 가능하며 안전한 REST 모델에 대해 협력할 수 있습니다.
오픈 API 명세는 HTTP API를 폭넓게 지원하는 사실상의 표준 사양 언어입니다. 서버 스캐폴딩, 클라이언트 코드 또는 SDK, 모킹 서비스 및 API 테스트 스위트를 위한 건강한 설계 도구 및 "원클릭" 생성기 생태계를 특징으로 합니다.
API 게이트웨이
API 게이트웨이는 API 공급자 앞에 위치하여 클라이언트 애플리케이션을 위한 단일 진입점 역할을 하는 플랫폼 또는 서비스입니다. API 게이트웨이는 API 호출을 라우팅하고 SLA를 따르도록 관리하며 캐시 관리를 제공합니다. 또한 페이로드 유효성 검사, 인가, 속도 제한 및 기타 정책 설정을 통해 API 백엔드를 보호합니다.
API 게이트웨이는 ID 및 액세스 관리, 보안 사고 및 이벤트 관리 서비스와 긴밀히 통합되어 액세스 제어 지점 및 네트워크 에지(edge) 서비스로 종종 배포됩니다. 이를 통해 인그레스(ingress)[2]를 제어하고 감사할 수 있습니다.
API 게이트웨이는 사용량, 패턴 및 추세에 대한 가시성을 제공하는 사용량 메트릭의 원천입니다.
API 관리
API 관리는 하나 이상의 API 게이트웨이를 운영하는 것 이상의 의미가 있습니다. API 관리는 API를 게시·보호·관리·관찰하는 수단을 제공하는 플랫폼 또는 서비스 프레임워크에 의해 용이하게 이루어집니다. 또한 자체 서비스 API 카탈로그나 포털을 통해 API를 발견하고 접근할 수 있습니다. 이러한 방식으로 API를 손쉽게 관리할 수 있는 것입니다.
API 관리 플랫폼은 자체 서비스 발견 및 API 액세스를 용이하게 함으로써 플랫폼 및 공급 팀과의 계약을 원활히 하여 API 소비자에게 가치를 제공합니다. 또한 API 사용 및 추세에 대한 가시성을 제공하고 분리된 CI/CD 배포 자동화를 위한 관리 API를 노출하여 고객 참여와 SLA 관리를 촉진함으로써 API 공급자와 비즈니스 이해관계자에게 가치를 제공합니다.
API 관리 프레임워크
상용 API 관리 플랫폼 단독으로는 완전한 솔루션이 아닙니다.
중앙 집중식 엔터프라이즈 서비스 프레임워크와 상호 운용되는 API 관리 플랫폼을 통해서 분리되고 잘 관리되는 자체 서비스 통합이 가능합니다.
풀 스택 API 관리 프레임워크 구성 요소는 API 보안, 클라이언트 및 공급자 온보딩, 생명주기 및 릴리스 관리, 고객 참여, 지원, 모니터링 및 관찰 가능성의 모든 측면을 아우릅니다.
API 포털 및 API 카탈로그
API 포털은 API 카탈로그와 API 문서에 대한 액세스를 호스팅하고 인가합니다. 클라이언트 등록, IAM 자격증명 및/또는 인증서 관리와 API 액세스 요청 워크플로를 용이하게 합니다.
API 포털은 API 메트릭을 위한 대시보드를 제공하고 소비자와 공급자 간 통신을 관리합니다. 클라이언트 코드나 SDK는 일반적으로 API 포털에서 생성되고 다운로드될 수 있습니다.
API 카탈로그는 애플리케이션 개발자가 API를 발견하고 학습하며 API에 대한 액세스를 요청하는 수단을 제공합니다.
API 카탈로그는 잠재 고객이 필요한 제품을 찾아보고 액세스를 요청할 수 있다는 점에서 온라인 식료품 소매업자의 카탈로그와 다르지 않습니다.
온라인 식료품 소매업은 핵심적이고 광범위하게 관련되는 기본 제품군을 포함하는 카탈로그를 제공할 수 있을 때까지는 성공을 기대하기 어렵습니다. 마찬가지로 생동적인 API 생태계는 풍부한 API 카탈로그가 필요합니다. 여기서 풍부한 API 카탈로그란 핵심 비즈니스 역량의 임계질량을 다루는 재사용 가능하고 일관성 있으며 구성 가능한(composable) API를 의미합니다. 이를 위해서는 API 품질 거버넌스가 필수적입니다.
API 생태계
API 생태계는 API 소비자 및 API 생산자 커뮤니티의 네트워크는 물론이고, API 카탈로그를 접하는 커뮤니티에서 제공되는 API까지 포함하는 개념입니다.
조직은 내부, 파트너 및 공공 API 커뮤니티를 포괄하는 여러 API 생태계를 관리할 수 있습니다.
커뮤니티 및 카탈로그 관리는 API 생태계의 핵심입니다. 커뮤니티들은 적극적으로 참여해야 하며 높은 품질의 구성 가능한 API 카탈로그를 반복적으로 구축해 나가야 합니다.
API 거버넌스
API 거버넌스는 거버넌스 조직, API 전략, API 표준 및 패턴, API 생명주기 관리, 거버넌스 전술과 생태계 관리 전반에 걸쳐 있는 주제입니다.
API 생명주기 거버넌스는 분리되고 자율적인 비즈니스 도메인에 의해 안전하고 표준적인 API 생명주기 관리를 용이하게 하는 데 그 목표가 있습니다. API 생명주기 관리는 설계, 빌드와 릴리스, 런타임 거버넌스 단계를 다룹니다.
최소 실행 가능 거버넌스(MVG, Minimum-viable-governance)는 차단 터치포인트(blocking touchpoint)를 최소화하기 위해 협업 도구, 자동화 및 코드형 정책(policy-as-code)을 사용하여 안내되고 시행되는 거버넌스를 설명하는 데 때때로 사용되는 용어입니다.
결론
여기까지 API 전략, 아키텍처 및 관리의 몇 가지 핵심 개념을 간략히 살펴보았습니다. 각각의 주제는 이밖에도 더 많은 내용을 다루고 있으며 용어를 정의하는 방식에도 상당한 차이가 있습니다. 이러한 개념이 당신의 API 전략에 중요하다면 정의를 합의하여 문서화하는 것이 좋습니다.
더 자세한 내용을 읽고 싶은 분들을 위해 API 전략, 아키텍처 및 관리에 대한 몇 가지 추가 자료를 소개합니다.
Service-Level Agreement(서비스 수준 계약). 서비스 제공 업체가 고객에 제공해야 할 서비스 수준을 명시한 것으로 서비스 수준 관리의 중요한 지표 중 하나로 사용됩니다. - 옮긴이
네트워크 보안 및 관리에서 사용되는 용어로 외부에서 내부로의 데이터 또는 요청의 허용된 진입점을 말합니다. - 옮긴이
Subscribe to my newsletter
Read articles from Ahra Yi directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by