
상명대학교 / 서광규 교수
마이크로서비스란 소프트웨어를 구축하기 위한 아키텍처이자 하나의 접근 방식으로, 애플리케이션을 상호 독립적인 최소 구성 요소로 분할하는 방식으로 모든 요소를 하나의 애플리케이션에 구축하는 전통적인 모놀리식 접근 방식 대신 마이크로서비스에서는 모든 요소가 독립적이며 연동되어 동일한 태스크를 완수한다.
이러한 각각의 구성 요소 또는 프로세스가 마이크로서비스이다. 소프트웨어 개발에 대한 이러한 접근 방식은 세분화, 경량화되어 있으며 다수의 애플리케이션 간에 유사한 프로세스를 공유하는 기능이 중요한다. 이는 클라우드 네이티브 모델 구현을 위해 애플리케이션 개발을 최적화하는 데 필요한 주요 구성 요소이다.
최근 몇 년간 IT업계에서는 다양한 애플리케이션과 서비스 등이 출시되고 나면, 사용자나 고객의 요구사항이 점차 다양하고 많아지고 있다. 이러한 다양한 고객의 요구사항을 빠르게 반영하려면 관리 및 개선이 쉬워야 하고 효율적이어야 하는데, 이를 위해 오픈소스와 API 등을 활용한 다양한 조합이 시도되고 있고 이러한 시도는 컴포저블 Composable)구조로 나타나고 있다.
IT 서비스, 애플리케이션, 데이터 등을 조합할 수 있게 구성해, 빠르게 변화하는 시대의 흐름과 다양한 고객의 요구사항을 수용할 수 있는 모습이 최근 주목받기 시작했고 이러한 트렌드는 기존 서비스와 애플리케이션의 구조는 물론 기업의 형태와 프로세스까지 바꿀 수 있는 잠재력을 포함하고 있다.
가트너(Gartner)는 매년 전략기술 트렌드를 발표하는데, 가트너가 발표한 12개의 전략기술 트렌드 중 컴포저블 애플리케이션(Composable Application)은 2021년과 2022년 연이어 선정됐다.
컴포저블 애플리케이션은 비즈니스 중심의 모듈식 구성요소가 핵심으로 마치 레고처럼 필요한 블록을 끼웠다 뺐다 하듯이 기업이 제공하는 서비스이다. 애플리케이션을 레고와 같은 형태로 만드는 것이라고 이해할 수 있다. 이러한 구조를 만들 때 코드를 더 쉽게 사용하고 재사용할 수 있도록 만들어 새로운 제품이나 서비스의 출시 기간을 단축하고 기업의 이익이나 효율성을 높일 수 있는 가치를 제공한다.
가트너에 따르면 조합 가능한 컴포저블 애플리케이션은 다음과 같은 4가지 기본 원칙이 있다. 발견을 통한 더 빠른 속도, 모듈화를 통한 더 큰 민첩성 향상, 조율을 통한 더 나은 리더십, 자율성을 통한 탄력성이다.
이러한 원칙은 궁극적으로 기업의 근본적인 변화를 요구하는데, 동시에 효율성을 높여 빠르고 유연한 애플리케이션을 만들 수 있다. 기업의 변화를 주도하는 컴포저빌리티(Composability)는 미래를 위한 도구로 거대한 비즈니스와 개발 구조, 더 나아가 조직 구조와 업무 프로세스를 바꿀 수 있다. 성패는 기업과 서비스 전체를 여러 조각과 부분으로 나누고 어떻게 효율적으로 연결하는가에 달려있다.
가트너는 이러한 컴포저블 애플리케이션을 활용하는 기업이 경쟁기업보다 80%의 구현 속도 경쟁 우위를 점할 수 있다고 전망했으며 앞으로 많은 기업은 컴포저블을 활용하는가 혹은 활용하지 않는가에 따라 새로운 성장 동력과 사용자의 충성도 확보가 가능할 것으로 예측하고 있다.
본 고에서는 2020년 10월 가트너(Gartner)에서 발표한 “Use Gartner’s Reference Model to Deliver Intelligent Composable Business Applications”을 토대로 컴포저블 에플리케이션에 대하여 소개하기로 한다.
1. 컴포저블 애플리케이션(Composable Application)의 개념
가트너에서는 2021년과 2022년 전략 기술 트랜드를 발표했는데, 이중에 하나인 클라우드 네이티브 플랫폼(Cloud Native Platform) 은 과거와는 비교도 안될 만큼 빠른 성장과 성숙도의 향상을 보이고 있다. 과거에 주로 클라우드컴퓨팅은 'IaaS' 서비스 중심에서 점차 'PaaS', 'SaaS'까지 영역을 확대하고 기술의 성숙도 상당히 높아졌다. 애플리케이션의 구조 또한 많은 변화가 있었고 현재 새롭게 진행되는 애플리케이션 구조를 마이크로서비스 형태로 구축하려는 기업이 많아지고 있다.
기술 발전과 결합된 역동적인 비즈니스 및 사용자 요구로 인해 앱 개발 환경 이 성장하고 있다. 더욱 빠르고 예상치 못한 다양한 요구사항 변화에 대한 취약성으로 인해 기업은 조직의 유연성과 적응성을 높이고 어려움 속에서도 계속해서 성장할 수 있도록 지속적으로 자신을 개선할 수 있는 방법을 찾아야만 한다. 컴포저블 애플리케이션은 생산성, 확장성을 개선하고 비즈니스 운영 프로세스를 간소화하여 기업 IT를 혁신하고 기업이 디지털 환경에 적응하도록 도움이 된다. 고객의 기대에 부응하기 위해 신속하게 최적화하고 재배포할 수 있는 품질 기반의 재사용 가능한 애플리케이션을 효율적으로 제공한다.
2028년까지 전 세계 컴포저블 인프라 및 애플리케이션 시장은 143억 5천만 달러에 이를 것으로 예측되는 보고서도 발표되었는데, 구성 가능성 시스템 설계 접근 방식은 민첩성을 높이고 애플리케이션 개발을 가속화하여 조직이 향상된 데이터 수집, 사용 및 분석을 위해 기존 자산을 고유하게 재사용 및 재조립하고 고유한 사용자 요구 사항을 충족하도록 돕는다.
차세대 엔터프라이즈 애플리케이션은 구성 가능하고 확장 가능하며 통합 음성 및 비디오 기능을 갖추고 최신 기술로 구동되는데, 기존 리소스를 극대화하고 끊임없이 변화하는 다양하고 비즈니스 요구 사항을 충족하려면 컴포저블 애플리케이션에 대해 알아야 할 모든 것이 여기에 있다.
컴포저블 애플리케이션이란 독립적이고 상호 교환 가능한 빌딩 블록 또는 모듈을 사용하여 소프트웨어를 개발하기 위한 현대적인 비즈니스 중심 설계 접근 방식이다. API와 마이크로서비스를 기반으로 구축되어 앱 통신을 활성화하고 비즈니스 효율성을 높인다.
컴포저블 앱은 조직이 기존 애플리케이션의 상호 교환 가능한 기능적 코드 조각을 재사용하고 함께 번들링하여 기존 애플리케이션을 빌드 및 수정하거나 더 많은 기능과 유틸리티를 갖춘 더 크고 복잡한 앱을 만드는 데 도움이 된다.
컴포저블 애플리케이션은 모듈식의 혁신적이고 조정 가능한 솔루션을 사용하여 기능적 개별 프로세스 또는 애플리케이션 부분의 용도를 변경한다. 이러한 분리 가능한 부분을 통해 기업은 향상된 기능을 갖춘 더욱 강력한 애플리케이션을 구축할 수 있게 된다.
컴포저블 애플리케이션 채택의 이점은 다음과 같다.
- 더 빠른 기능 출시 : 전체 앱이 아닌 기존 앱 구성 요소를 업데이트함으로써 컴포저블 앱을 사용하면 개발자가 처음부터 빌드를 시작할 때보다 개발 속도를 높일 수 있다 . 개발자는 거대하고 화석화된 애플리케이션이 아닌 더 작고 독립적인 구성 요소를 구축하고 테스트하여 기능과 업데이트를 더 빠르게 시작할 수 있다. 구성 가능성은 조직이 빠르게 진행되는 비즈니스 혁신의 특성에 맞게 리소스를 풀고, 구성 요소를 분해, 교환 및 재조립하는 데 도움이 되는 플러그 앤 플레이 아키텍처를 제공한다.
- 향상된 유연성과 민첩성 : 컴포저블 앱은 기업이 더욱 혁신적이고 탄력적이며 민첩해질 수 있도록 지원하여 경쟁사보다 최대 80% 앞설 수 있다. 컴포저블 앱은 끊임없이 변화하는 고객 요구 사항과 시장 변화에 맞게 쉽게 맞춤설정하고 재구성할 수 있다. 조직은 성능과 안정성에 영향을 주지 않고 필요에 따라 이러한 앱의 크기나 용량을 조정할 수 있다. 기업은 다양한 구성 가능 애플리케이션을 교체하여 앱 요소를 제어하고 소프트웨어 시스템의 기능을 변경할 수 있다.
- 효율성 향상 : 컴포저블 앱에 사전 구축된 구성 요소를 쉽게 결합할 수 있으므로 기업은 맞춤형 애플리케이션을 더욱 쉽게 개발할 수 있다. 앱의 모듈식 설계는 코드를 재사용하므로 앱 개발 및 유지 관리에 소요되는 시간과 노력이 줄어들어 조직 효율성이 향상된다. 모듈식 아키텍처는 기업이 전체 시스템을 중단하지 않고 생성, 업데이트 또는 수정하여 가동 중지 시간을 최소화하고 효율성을 높이는 데 도움이 된다. 독립형 구성 가능 앱 구성요소가 광범위하게 테스트되므로 코드 오류가 줄어든다.
- 비용 절감 : 기존 구성 가능 앱 구성 요소를 재사용함으로써 조직은 비용이 많이 드는 맞춤형 앱 개발 의 필요성 과 외부 타사 공급업체에 대한 과도한 의존을 최소화할 수 있다. 또한 앱을 구축하기 위해 개발자를 고용하거나 기존 코드를 다시 작성하기 위해 대규모 IT 팀을 유지하는 데 드는 비용도 절감된다. 전체 애플리케이션을 이해할 필요가 없기 때문에 숙련도가 낮은 개발자도 구성 가능한 앱 구성 요소를 구성할 수도 있다. 조직은 대규모 애플리케이션을 구성 가능한 퍼즐 조각으로 나누고 다른 조각으로 연결하여 개발 프로세스 및 일정에 소요되는 시간과 비용을 절약할 수 있다.
컴포저블 애플리케이션은 모든 비즈니스 프로세스를 위한 실용적이고 가치 있는 구성 요소이다. 고유하고 개별적인 부분은 기존 개발 프로세스의 기능적 복잡성을 줄이고 조직이 필요에 따라 새롭고 더욱 유능한 애플리케이션을 개발하거나 기존 애플리케이션의 기능을 효율적으로 개선하는 데 도움이 된다.
컴포저블 애플리케이션의 플러그 앤 플레이 아키텍처를 통해 조직은 리소스를 풀링하고 혁신 역량을 향상시켜 더욱 유연하고 복원력을 높일 수 있다. 이러한 애플리케이션을 사용하면 기업은 더 크고 복잡한 구성 요소를 쉽게 분해한 다음 변화하는 비즈니스 요구 사항에 맞게 조정할 수 있다.
컴포저블 앱은 느슨하게 결합되어 있으므로 쉽게 재사용하고 여러 기존 애플리케이션 및 시스템과 원활하게 통합할 수 있다. 구성 가능한 아키텍처에는 독립적인 구성 요소에 대한 연결을 제공하는 잘 정의된 API가 포함되어 있어 구성 가능하고 클라우드를 통해 쉽게 액세스할 수 있다.
컴포저블 애플리케이션(Composable Applications)은 잘 만들어진 여러 개의 마이크로서비스를 필요에 따라 조합해서 새로운 비즈니스 애플리케이션을 만드는 'Composable Applications'에는 비즈니스에서 필요한 모든 기능을 담게 된다.
예를 들면 해외여행을 갈 때 탑승권을 구매하고 탑승 수속을 밟게 되고, 탑승 후에는 비행기에서 면세품을 구매하기도 하고 기내식을 먹기도 한다. 항공사 입장에서는 이 모든 서비스가 승객들이 불만이 없게 제공해야 하는데, 시스템 관점에서 서비스로 생각해보면 '탑승권 판매/발권 서비스', '면세품 판매 서비스', '기내식 서비스', '항공 결제 서비스' 등의 개별 서비스로 분리할 수 있고 이들을 합쳐서 '항공 여객 서비스'로 제공할 수도 있다.
즉 '탑승권 판매/발권 서비스' 같은 독립적으로 동작이 가능한 작은 서비스를 조합해서 '항공 여객 서비스'라는 조합된 하나의 서비스로 만들 수 있다는 것이다. 여기서 '탑승권 판매/발권 서비스' 같은 독립적으로 동작이 가능한 작은 서비스가 '마이크로서비스'이고 이를 결합하여 만든 '항공 여객 서비스'가 컴퍼저블 애플리케이션(Composable Applications)이 된다.
당연히 설명한 대로만 설계하고 구현한다면 정말 이상적인 애플리케이션이 탄생할 것이라는 것은 의심의 여지가 없다. 이러한 구조의 애플리케이션은 생각하는 것처럼 쉽게 설계하고 구현하기는 어려울 것이다. 다만 이러한 컨셉을 목표로 하여 기획하고 설계하다 보면 보다 ‘Business Agility’ 실현을 위한 좋은 설계와 사례를 만들 수 있을 것이다.
1-1. 엔터프라이즈 컴포저블 준비 상태를 평가하기 위한 4가지 원칙
효과적인 기업 구성 가능성에는 특정 요구 사항을 충족하기 위해 기업의 앱, 프로세스 및 인프라의 일부를 구성하고 조정하는 것이 포함된다. 복잡한 디지털 비즈니스 요구 사항을 충족하는 조직의 능력을 확인하려면 다음 네 가지 주요 원칙을 사용한다.
1) 모듈성
조직은 모듈성을 핵심 원칙으로 채택하여 엔터프라이즈 구성성을 달성할 수 있다. 모듈화는 복잡한 IT 인프라를 더 작고 관리하기 쉽고 재사용이 가능한 빌딩 블록으로 분해하여 새로운 애플리케이션을 생성하기 위해 쉽게 구축, 해체 및 재조립할 수 있다 .
마이크로서비스 및 API를 통해 모듈성은 특정 서비스를 특정 목적에 이상적인 PCB(Packaged Business Capabilities; 패키지 비즈니스 기능)로 패키징하여 애플리케이션 민첩성을 향상시킨다.
2) 발견 가능성
컴포저블 준비성을 통해 조직의 기술 스택에 관계없이 다양한 비즈니스 구성 요소가 원활하게 작동할 수 있다. 구성 가능한 비즈니스 시스템에서는 모든 팀 구성원이 기존 구성 요소를 찾아 재사용하여 새로운 솔루션을 만들 수 있어야 한다.
애플리케이션의 목적과 제한 사항을 설명하는 충분한 설명과 메타데이터가 포함된 중앙 기록은 개발 속도를 크게 향상시킨다.
3) 자율성
자율적인 개별 구성 요소는 엔터프라이즈 컴포저블 준비 상태를 크게 지원한다. 다른 시스템 부품과 독립적인 완전 자급자족 구성 요소는 개발자가 레거시 인프라의 복잡성에서 벗어나 애플리케이션 구축에 더 빠르게 집중할 수 있도록 도와준다.
이렇게 하면 조직 전체의 팀이 다른 팀을 방해하지 않고 시스템의 일부를 업데이트할 수 있으므로 앱이 변경에 훨씬 더 탄력적으로 대처할 수 있다.
4) 오케스트레이션
고차원 자동화는 비즈니스 프로세스를 디지털화하고 비즈니스 목표와 리소스에 맞게 워크플로를 조정한다. 자동화는 소프트웨어 구성 요소의 생성, 테스트 및 배포를 단순화하고 간소화하여 오류 위험을 최소화하고 앱 제공 속도와 안정성을 높인다.
오케스트레이션은 수동적이고 시간 소모적이며 반복적인 작업을 제거하고 비용을 절감하며 생산성을 높이고 기업이 안정적인 서비스를 제공하도록 돕는다.
1-2. 컴포저블 앱의 구성 요소
컴포저블 앱의 구성 요소는 다음과 같다.
1) 구성적 사고
무엇이든 구성 가능하다는 생각이 뒷받침되어야 한다. 이는 조직이 무엇을 구성해야 하는지, 급변하는 고객 요구 사항을 언제 충족해야 하는지 안내하는 원칙을 설계하는 즉각적이고 보다 유연한 방법을 제공한다. 구성적 사고는 창의성을 장려하고 내부 및 외부적으로 정보를 찾고 공유하는 것을 포함한다.
2) 컴포저블 비즈니스 아키텍처
역량, 참여, 기술이 포함된다. 각 구성 요소에는 고유한 비즈니스 설계 메커니즘을 통해 조직의 유연성과 탄력성을 높이기 위한 표준화된 API 또는 인터페이스가 있다. 컴포저블 비즈니스 아키텍처는 기업이 디지털 혁신 이점을 활용하는 변화를 식별하고 구현하는 디지털 가속화 모델을 개발하는 데 도움이 된다.
3) 컴포저블 기술
조직 전체의 연결성, 재사용성, 투명성을 향상시킨다. 강력한 기술 기반을 채택하면 구성 가능성이 지원되어 비즈니스 민첩성과 유연성이 향상된다. 컴포저블 준비 상태의 4가지 원칙은 기술을 추진하고 컴포저블, 실행 일관성 및 더 빠른 응답 시간을 촉진하기 위한 제품 설계 목표로 작용한다.
1-3. 로우 코드 플랫폼을 활용하여 구성 가능한 비즈니스 앱을 더 효과적으로 구축하는 방법
증가하는 앱 수요를 충족하고 개발을 가속화하기 위해 고도로 맞춤화된 자동화를 위해 조직은 점점 더 로우 코드로 전환하고 있다. 로우 코드 앱 개발 플랫폼은 비즈니스 민첩성을 높여 기업이 컴포저블 앱을 변경하고 진화하는 비즈니스 요구에 더 효과적으로 대응할 수 있도록 해준다.
로우 코드 플랫폼은 기업이 컴포저블 앱을 구축할 수 있는 완벽한 개발 플랫폼이다. 여기에는 사용자가 강력한 API 라이브러리를 통해 연결하여 앱을 디자인할 수 있는 사전 구축된 기능적 구성 요소가 있다. 또한 기업은 로우 코드를 사용하여 기성 커넥터와 재사용 가능한 템플릿을 갖춘 사용하기 쉬운 드래그 앤 드롭 기능을 통해 강력하고 통합하기 쉬운 애플리케이션을 구축할 수 있다.
또한 로우 코드 플랫폼은 IT 팀과 비즈니스 팀이 커뮤니케이션을 향상하고 오류를 줄이며 효과적인 앱을 보장하는 구성 가능한 앱을 구축할 수 있는 협업 생태계를 만든다. 앱 개발을 간소화하여 기업이 더 나은 구성 가능한 앱을 만들고 배포할 수 있도록 한다.
코드가 최소한으로 필요하므로 컴포저블 앱을 사용하면 비즈니스 팀이 IT에 지나치게 의존하지 않고도 요구 사항을 충족하는 앱을 구축할 수 있다. 로우 코드 또는 노 코드 기술은 조정과 유연성을 높이고 IT 작업 부하를 완화한다.
1-4. 디지털 혁신에서 컴포저블 애플리케이션의 역할
컴포저블 애플리케이션은 기업이 모듈성을 활용하고 증가하는 변경 관련 위험을 완화할 수 있는 기회를 창출하는 데 도움이 된다. 이는 조직이 시장 가능성을 활용하고 디지털 혁신을 장려할 수 있을 만큼 신속하게 방향을 전환하는 데 도움이 된다. 단일 시스템에 대한 의존도를 없애고 시스템 위협이 적어 보안을 강화하고 비즈니스 중단을 방지한다.
고급 데이터 통합 ??기능을 갖춘 컴포저블 아키텍처는 개발 복잡성을 줄여 직원이 보다 효율적으로 작업할 수 있도록 돕는다. 기술 민주화는 조직이 비즈니스-IT 팀 간에 책임을 정확하게 분배하고 애플리케이션 모듈성을 비즈니스 역량으로 전환하여 회사 경쟁력을 높이는 데 도움이 된다.
디지털 혁신은 조직이 핵심 기능을 개선하고, 맞춤형 접근 방식을 사용하여 앱을 개발하고, 이를 특정 비즈니스 요구 사항에 맞게 조정하는 데 도움이 된다. 컴포저블 앱은 전례 없는 개발자 생산성과 기업 효율성을 제공하므로 사용자는 기존 코드나 앱에서 새 앱을 빌드하고 기존 기술 스택에 쉽게 통합할 수 있다.
컴포저블 앱을 사용하면 기업은 고객 요구에 즉각적으로 반응하는 동적 환경을 채택할 수 있다. 앱의 자율적이고 자치적인 시스템은 하나의 시스템에 장애가 발생하더라도 나머지 시스템에 영향을 주지 않고 신속하게 수정할 수 있기 때문에 비즈니스를 계속 운영한다.
참 고 문 헌
- Gartner, Gartner’s Reference Model to Deliver Intelligent Composable Business Applications, 2020.10.
- https://www.lgcns.com/blog/it-trend/26877/
- https://kissflow.com/application-development/composable-applications/
저작권 정책
K-ICT 클라우드혁신센터의 저작물인 『마이크로서비스를 넘어 컴포저블 애플리케이션(Composable Application)으로 전환』은 K-ICT 클라우드혁신센터에서 상명대학교 서광규 교수에게 집필 자문을 받아 발행한 전문정보 브리프로, K-ICT 클라우드혁신센터의 저작권정책에 따라 이용할 수 있습니다.
다만 사진, 이미지, 인용자료 등 제3자에게 저작권이 있는 경우 원저작권자가 정한 바에 따릅니다.