본문으로 건너뛰기

Concepts

APIM 시스템은 전체 라이프사이클 API 관리를 지원하기 위해 함께 작동하는 주요 엔터티와 구성 요소로 구성됩니다. 이 섹션에서는 각 개념, 시스템 내에서의 역할 및 API 개발, 게시 및 소비에 기여하는 방법을 정의합니다.

API 관리자

Definition: API 관리자는 API의 전체 라이프사이클 동안 정의, 구성 및 유지 관리하는 책임이 있는 시스템 사용자입니다.

System Location: 모든 구성 및 관리 작업에 APIM 콘솔을 사용합니다.

Key Responsibilities:

  • 백엔드 서비스 개발 및 등록
  • API 엔드포인트 및 사양 정의
  • API 문서 작성 및 관리
  • 라우팅 및 정책 집행 구성
  • 지정된 게이트웨이에 API 게시

API 사용자

Definition: API 사용자는 플랫폼에 게시된 API를 소비하는 개발자 또는 애플리케이션 팀입니다.

System Location: 시스템과 개발자 포털 및 프론트엔드 애플리케이션을 통해 상호작용합니다.

Key Responsibilities:

  • API 문서에 접근하고 검토
  • API 접근 및 인증 자격 요청
  • 프론트엔드 애플리케이션(Web/Mobile)에 API 통합
  • 사용량 모니터링 및 API 토큰 관리

백엔드 서비스

Definition: 백엔드 서비스는 API가 노출하는 핵심 비즈니스 로직 또는 데이터 처리 단위입니다.

System Location: APIM 시스템 외부에 위치하지만 등록되고 이를 통해 접근됩니다.

Function:

  • API 요청을 수신하고 처리
  • 게이트웨이를 통해 클라이언트에 구조화된 데이터 또는 서비스 결과 반환

프론트엔드 애플리케이션

Definition: 소비자 지향의 웹 또는 모바일 애플리케이션으로, API를 활용하여 최종 사용자에게 비즈니스 기능을 제공합니다.

System Location: API 사용자에 의해 외부에서 구축 및 운영됩니다.

Function:

  • API 게이트웨이에 구조화된 요청 전송
  • 최종 사용자에게 API 응답 수신 및 표시
  • API 기반 상호작용을 위한 클라이언트 인터페이스 역할

API 게이트웨이

Definition: API 게이트웨이는 정책 집행, 트래픽 라우팅 및 API 호출 처리를 담당하는 핵심 런타임 구성 요소입니다.

System Location: 프론트엔드 애플리케이션과 백엔드 서비스 사이에 위치합니다.

Key Functions:

  • 들어오는 API 요청을 검증하고 인증
  • 요청 및 응답 정책 적용(예: 속도 제한, 변환)
  • 요청을 적절한 백엔드 서비스로 라우팅
  • 여러 프로젝트 간 복제, 확장성 및 격리 지원

APIM 콘솔 (API 관리 콘솔)

Definition: APIM 콘솔은 API, 정책, 게이트웨이 및 프로젝트 관리를 위한 주요 관리 인터페이스입니다.

Target Users: API 관리자, 플랫폼 관리자

Key Functions:

  • API 정의, 등록 및 게시
  • 정책 및 접근 규칙 구성
  • API 게이트웨이 생성 및 관리
  • API 사용량, 성능 및 시스템 로그 모니터링

개발자 포털

Definition: 개발자 포털은 API 사용자가 게시된 API를 발견하고 탐색하며 접근할 수 있는 셀프 서비스 플랫폼입니다.

Target Users: 내부 팀, 파트너 개발자, 외부 소비자

Key Functions:

  • 사용 가능한 API 및 문서 탐색
  • API 접근 요청 및 자격 관리
  • 개인 사용량 및 승인 상태 추적
  • Open API 협업을 위한 인터페이스 역할

API 테스트 포털

Definition: 요청/응답 시뮬레이션을 사용하여 API를 실시간으로 테스트하기 위한 전용 도구입니다.

Target Users: API 관리자와 API 사용자 모두

Key Functions:

  • 매개변수 및 헤더가 포함된 샘플 요청 전송
  • API의 기능적 정확성 검증
  • API 키 또는 토큰과 같은 인증 방법 사용
  • 프로덕션 사용 전에 API 동작 디버깅

테넌트 관리 콘솔 (사용자 관리)

Definition: 테넌트 관리자 콘솔은 플랫폼 수준 관리자를 위한 사용자 및 프로젝트 관리 기능을 제공합니다.

Target Users: 시스템 수준 관리자

Key Functions:

  • 사용자 및 프로젝트 생성 및 관리
  • 사용자에게 역할 및 권한 할당
  • 사용자를 프로젝트에 할당

API

Definition: API(응용 프로그램 프로그래밍 인터페이스)는 APIM 플랫폼을 통해 소비자에게 노출되는 주요 서비스 단위입니다.

System Location: APIM 콘솔에 등록 및 게시되며, 게이트웨이를 통해 접근됩니다.

Attributes:

  • Swagger/OpenAPI를 사용하여 정의됨
  • 백엔드 서비스에 연결됨
  • 라이프사이클 관리 및 정책의 적용을 받음
  • 프론트엔드 앱 또는 외부 시스템에 의해 소비됨

API 문서

Definition: API 소비 방법을 설명하는 구조화된 기술 문서입니다.

System Location: APIM 콘솔에서 생성되고 개발자 포털에 게시됩니다.

Contents Include:

  • 엔드포인트 설명 및 메서드
  • 입력 매개변수 및 출력 구조
  • 인증 요구 사항 및 사용 예

API 정책

Definition: API 정책은 API 요청 및 응답이 API 게이트웨이에 의해 처리되는 방식을 규율하는 규칙 집합입니다. 이러한 정책은 접근, 보안, 데이터 변환 및 트래픽 동작을 제어합니다.

Policy Placement: 정책은 API 흐름의 두 가지 뚜렷한 단계에서 적용됩니다:

  • Inbound Policies (Request Policies): 백엔드 서비스에 요청이 도달하기 전에 적용됩니다. 목적:
    • 호출자 인증(예: API 키, 토큰, OAuth)
    • 요청을 변환하거나 사전 처리, 예를 들어 헤더, 페이로드 또는 매개변수 형식 검증
    • 속도 제한 및 할당량 집행 적용
    • 라우팅 결정 또는 헤더 보강 수행
  • Outbound Policies (Response Policies): 백엔드에서 응답이 반환된 후 API 사용자에게 도달하기 전에 적용됩니다. 목적:
    • 응답 본문에서 민감한 데이터 마스킹
    • 응답 형식 변환(예: XML에서 JSON으로)
    • 응답 헤더 추가 또는 수정
    • 응답 내용 또는 상태 코드 기록
System Location:
  • APIM 콘솔에서 구성됨
  • API 게이트웨이에 의해 동적으로 집행됨
Usage Scenario:

API 사용자가 요청을 전송하면 게이트웨이는 먼저 인증 및 유효성을 확인하기 위해 인바운드 정책을 적용합니다. 요청이 백엔드로 라우팅되고 응답이 생성되면 아웃바운드 정책이 적용되어 응답이 보안, 형식 또는 로깅 요구 사항을 준수하는지 확인한 후 프론트엔드 애플리케이션에 반환됩니다.

다중 게이트웨이 관리

Definition: 각 프로젝트가 단일 게이트웨리에 제한되는 여러 게이트웨이를 정의하고 운영할 수 있는 기능입니다.

Purpose and Benefits:

  • 프로젝트 간 트래픽 격리
  • 리소스별 배포를 통한 확장성
  • 롤링 업데이트 및 복제 제어 지원
  • 팀, 부서 또는 테넌트별 유연한 배포

API 라이프사이클

Definition: API 생성, 배포 및 운영의 종단 간 프로세스입니다.

Lifecycle Stages:

  1. 백엔드 서비스 개발
  2. API 정의 및 문서화
  3. 게이트웨이 생성 및 정책 설정
  4. API 게시
  5. 테스트 및 프론트엔드 통합
  6. 런타임 요청/응답 실행
  7. 모니터링 및 버전 관리

API 요청 및 응답 흐름

Definition: 소비자에서 제공자로, 다시 소비자로 돌아가는 API 호출의 실제 런타임 시퀀스입니다.

Flow Steps:

  1. 프론트엔드 애플리케이션이 API 게이트웨이에 요청을 전송
  2. 게이트웨이가 요청 정책을 적용
  3. 요청이 백엔드 서비스로 라우팅
  4. 응답이 생성되어 반환
  5. 게이트웨이가 응답 정책을 적용
  6. 최종 응답이 프론트엔드 앱으로 전송