Figure 8. 최신 Open API 플랫폼 구성도
Figure 8에서 보여주고 있는 Open API 플랫폼을 구성하고 있는 각 컴포넌트에 대해서 자세히 살펴보면, 다음과 같다.
- API Gateway
모든 API활용 서비스의 API 요청에 대해 인증 및 라우팅을 기본으로 수행하며, 오픈API에 대한 end-point를 통합하는 중개자.
이와 함께, 인증 및 권한, Rate Limit, 모니터링, 로깅 등 추가적인 기능을 제공함.
- 통합 Portal 및 권한관리
통합 포털은 관리자 포털, 개발자 포털, 서비스 포털 등으로 세분화 되는데, 관리자 포털에서는 API Gateway 및 API Engine 관리, Open API 관리, 사용자•이용기관•API활용 앱 관리, API 정책 관리 및 체이닝거래 설정 등의 기능을 제공하고, 개발자 포털에서는 API활용 서비스를 개발하는 개발자가 API에 대해 교육 및 테스트 등의 기능을 제공하며,
서비스 포털은 API실행 현황에 대한 실시간 모니터링 및 통계, 거래추적, 이용기관별 API사용량 통계 및 과금 등의 기능을 제공함.
- API Engine
API Engine은 Open API 플랫폼을 구축하는 금융사의 다양한 레거시 서비스에 대해 API/인터페이스 생성만으로 오픈API로 공개할 수 있도록 해주는 솔루션으로서,
공개된 API호출에 대해 JSON 형태의 입력 전문을 변환하여, 해당 레거시 서비스를 MCI/EAI 연계하거나 또는 직접 호출하고,
레거시 서비스의 응답을 JSON 형태로 변환하여 Open API 호출자에게 전달해 줌.
API Engine은 기존의 AP 서버의 역할을 하며, API Gateway, MCI•EAI/ESB 등 인터페이스 시스템, 레거시 시스템 등의 부하를 줄여줌.
- API사용자 : 해당 금융사에서 제공하는 API활용하여 전용 서비스를 개발하는 이용기관임.
- 기존 처리계 : 해당 금융사에서 기 구축하여 운영중인 레거시 시스템으로서, 여기에는 MCI 및 EAI 등 연계 인터페이스도 존재함.
- 신규 시스템 : Open API 전용 서비스를 제공할 수 있도록 개발하려고 계획중인 시스템.
이러한 Open API 플랫폼에서 API가 생성되고, 인터넷을 통해 외부에서 호출하여 활용할 수 있도록 Open API로 공개하고, API 활용 서비스를 개발•배포하여
실제 API활용 서비스를 운영하는 전 과정에 걸쳐 API의 라이프사이클을 살펴보면, 다음과 같다
1회를 마무리하며…
필자는 2016년 중반부터 신한금융그룹, KB금융그룹 등의 Open API플랫폼 구축 사업에 참여하였다.
신한금융그룹 Open API 플랫폼 구축 프로젝트에서는 셰어드플랫폼(써니뱅크 앱 개발) 구축 사업의 일환으로 수행된 신한카드의 Open API 플랫폼 구축 및 API Engine을 개발하였다.
KB금융그룹에서는 각 그룹사에서 Open API를 개발하기 위한 가이드를 개발하여 제공하였고,
또한 KB국민은행, KB손보, KB카드 등에서 레거시 서비스를 연계하여 Open API를 개발하기 위한 주요 모듈을 개발하여 제공하였다.
국내 금융그룹의 굵직한 Open API 플랫폼 구축 사업에 참여하면서 느낀 점은 다음과 같다.
국내 금융권 시스템은 메인프레임•TP•WAS 등으로 구축된 레거시 시스템과 단위 시스템을 중심으로, MCI•EAI•FEP 등 연계시스템 등 시스템 체계가 매우 잘 되어 있다.
또한, MCI•EAI•FEP 등에서 사용되는 전문에 대한 통합전문관리 시스템이 이미 구축되어 있고, 기업 내 애플리케이션의 개발•테스트•운영 간 형상관리를 위해 잘 활용되고 있다.
또한, APIM 솔루션을 도입하여 Open API플랫폼을 구축함으로써, 개인정보보호법과 같은 Compliance 이슈를 해결하여
“Digital Transformation 및 Open Banking” 을 위한 기반 준비를 충실히 하고 있다.
물론, 다음과 같은 현실적인 문제 또한 존재한다.
APIM의 초기 도입 단가가 높고, 또한 향후 마이크로 서비스 아키텍처로 전환하기 위한 API 게이트웨이를 확장하기 위해 드는 비용이 큼.
APIM에서 제공하는 API Gateway에서 인증•통제•라우팅을 수행한 후, 레거시 시스템의 기능을 호출하기 위한 API를 개발•테스트•운영 하기 위한 방안이 전혀 부재함.
이렇게 API 개발•테스트•운영 방안이 부재함으로써, Open API를 활용하여 고객에게 직접 또는 파트너를 통해 제공하는 API 활용 서비스를 개발하는데 집중할 수 없음.
따라서, 고객이 가지고 있는 MCI•EAI•FEP 등의 통합전문관리 시스템에서부터 API를 쉽고 빠르게 개발•테스트•운영 하기 위한 방안이 필요함.
이렇게 고객의 레거시 시스템의 기능을 쉽고 빠르게 Open API로 공개(publish)할 수 있다면, 고객은 API 판매 및 API 활용 서비스의 개발에 좀 더 집중할 수 있음.
API는 무상태(stateless)이며, 단일 호출 단위로 수행되다 보니, 세션 및 체이닝거래 통제와 같은 기능이 절대적으로 필요함. 따라서,
Open API 플랫폼을 구축할 때 클라우드 네이티브 애플리케이션(Cloud Native Application)을 개발하기 위해 필수적인 기능 요소들에 대해 선행적으로 방안을 마련해야 함.
또한, API활용 앱을 개발하기 위해서는 기존의 모바일 앱에서도 필수적인 키보드 암호화, E2E 암호화 등의 컴플라이언스를 지켜야 함.
따라서, 이를 위해서는 반드시 API활용 앱을 위한 API활용 전용 모바일SDK를 제공해야 함.