큰 ‘덩어리’가 아닌, ‘마이크로’한 규모로 애플리케이션 해체, 배포
민첩성, 신속․효율적 업데이트, 빠른 배포 등으로 대부분 기업들 도입
“궁극적으론 디지털 거버넌스와 혁신의 핵심적 기술로 주목”
[애플경제 이보영 기자] 마이크로 서비스는 민첩성과 장애요인의 최소화, 빠른 배포, 신속하고 효율적인 업데이트, 그리고 테스트가 용이하다는 점 등에서 가장 앞선 소프트웨어 설계 기술로 평가된다. 특히 정확하면서도 ‘민첩성’이 가장 중시되는 디지털 플랫폼의 경우 마이크로 서비스 아키텍처는 그에 부합한 소프트웨어 기술로 각광받고 있다.
마이크로 서비스는 말 그대로 ‘마이크로’한 규모로 애플리케이션을 해체, 서비스하는 방식이다. 최근 디지털 혁신의 엔진으로 이에 주목하는 연구 결과를 공개한 한국지능정보사회진흥원의 김영욱 시니어 프로그램 매니저는 이에 대해 “마이크로서비스 기반 애플리케이션은 새로운 애플리케이션과 서비스를 더 빠르게 시작하고 실행하기 위해 함께 구성할 수 있는 컴포넌트형의 여러 빌딩 블록으로 구성된다”면서 “이러한 유형의 아키텍처는 수천 개의 개별 구성 요소를 포함할 수 있는 확장성을 가진다”고 그 장점을 설파했다.
그에 따르면 이는 데이터 분석이나 데이터베이스 이용, 고객관계관리 솔루션인 CRM에서 특히 그 효용성이 입증되고 있다. 그렇다면 마이크로서비스의 대표적인 이점은 어떤게 있을까. 이에 대한 전문가들의 의견도 대체로 비슷하지만, 특히 앞서 김 매니저는 이를 대략 6가지 정도의 특장점으로 구분, 주목할 만하다.
우선은 ‘민첩성 (Agility)’이다. 이는 이른바 ‘디지털 혁신’의 가장 핵심적인 동력이기도 하다. 즉, 마이크로서비스 아키텍처는 “모든 변화에 대한 높은 보안성과 유연성을 요구하는 복잡한 시스템을 민첩하게 지원하고, 여러 시스템을 쉽게 통합할 수 있다”는 얘기다.
다음은 ‘장애 허용치(Fault Tolerance) 개선’, 즉 장애 요인을 최소화할 수 있다는 사실이다. 즉, 마이크로 서비스로 배포된 앱은 컨테이너화된 시스템을 통해 오류로부터 스스로를 더 잘 보호할 수 있다. 기존이 단일 아키텍처(매크로) 기반 애플리케이션에 비해 훨씬 쉽게 업무를 수행할 수 있고, 마이크로서비스 환경이 자율적으로 실행되기 때문에 장애를 최소화하고, 속도가 느려지거나 고장이 날 가능성을 최소한으로 줄여준다.
이는 또 애플리케이션을 매우 빠르게 배포할 수 있다. 당연히 작게 쪼갠 앱을 조금씩 구축하고 배포하기 때문에 더욱 빠르게 개발하고 업그레이드할 수 있다. 이를 통해 시스템의 다른 부분에도 부정적인 영향을 미치지 않는다는 얘기다.
비용을 효율적으로 집행할 수 있다. 마이크로서비스 아키텍처는 사용자의 필요에 따라 비용을 조절할 수 있기 때문이다. 그래서 서비스에 필요한 공간과 성능이나, 특정 기능, 요구사항 등에 맞출 수 있다. 즉, 앱의 구동에 얼마나 많은 비용을 지출할 것인지를 사용자 스스로 판단하고 통제할 수 있기 때문이다.
업데이트를 정기적이고 편리하게 할 수 있다는 점도 마이크로 서비스의 장점이다. 즉, “개발자가 앱의 한 부분에서 작업할 때 마이크로서비스 앱을 쉽게 업데이트할 수 있다. 개발자는 하나의 마이크로서비스에서 작업하고, 관련 업데이트를 한 다음 릴리스하기 때문에 전체 시스템을 다시 만들거나 재설계할 필요가 없다”는 설명이다.
특히 마이크로서비스의 가장 큰 이점은 매우 용이하게 테스트를 할 수 있다는 점이 꼽힌다. 개발자는 앱을 배포하기 전에 시스템의 작은 부분을 쉽게 테스트할 수 있다. 아키텍처 자체가 잘게 분할되어 있기 때문에 가능한 일이다.
김 매니저는 “이같은 특장점으로 인해 마이크로 서비스 아키텍처는 이제 국내 기업들도 앞다퉈 이를 도입하고 있다”면서 “글로벌 마이크로서비스 트렌드 조사에 의하면 애플리케이션을 업무에 적용하고 있는 기업이 91%가 이미 마이크로서비스를 기업 내 업무 프로세스에서 사용한다고 응답하고 있다”고 밝혔다.
