
상명대학교 / 서광규 교수
온라인 쇼핑 혁명은 계속 진화하고 있으며 기술 배포, 온라인 마케팅 활동 및 확장을 가속화하는 기술 변화 및 개선 사항이 지속적으로 채택되고 있다.
모놀리식 전자상거래 애플리케이션이 야기하는 부담으로 인해 마이크로서비스가 이 디지털 혁신에 포함되고 있는데, 본 고에서는 마이크로서비스에 대한 설명과 현대 전자상거래에서 마이크로서비스의 역할에 대하여 기술하기로 한다.
1. 마이크로서비스 개요
마이크로서비스(microservice)는 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법이다. 마이크로서비스 아키텍처에서 서비스들은 섬세(fine-grained)하고 프로토콜은 가벼운 편이다. 애플리케이션을 더 조그마한 여러 서비스로 분해할 때의 장점은 모듈성을 개선하고 애플리케이션의 이해, 개발, 테스트를 더 쉽게 해주고 애플리케이션 침식에 더 탄력적으로 만들어 준다. 규모가 작은 자율적인 팀들이 팀별 서비스를 독립적으로 개발, 전개, 규모 확장을 할 수 있게 함으로써 병렬로 개발할 수 있게 한다. 또, 지속적인 리팩토링을 통해 개개의 서비스 아키텍처가 하나로 병합될 수 있게 허용한다. 마이크로서비스 기반 아키텍처는 지속적 배포와 전개(deploy)를 가능하게 한다.
2. 전자상거래의 마이크로서비스에 베팅하는 비즈니스 및 기술 추론
모놀리식 아키텍처는 확장하기 어렵다. 모놀리스가 데이터 용량 또는 기타 병목 현상과 같은 성능 제한에 도달하면 실행 가능한 유일한 옵션은 전체 모놀리스 시스템의 또 다른 완전한 반복을 배포하고 로드 밸런서를 사용하여 인스턴스 간의 트래픽을 관리하는 것이다.
레거시 스택의 일일 작업은 리소스를 많이 사용하게 된다. 모놀리스는 10년 전에 지배적인 매체인 데스크톱을 통해 보다 일반적인 상호 작용을 처리하도록 설계되었다.
기업은 이제 이러한 제한 사항을 신속하게 탐색하는 방법과 전자 상거래의 원활한 운영을 미래에 대비하기 위한 변환을 실행하는 방법에 대한 과제에 직면해 있다.

[그림1. 모놀리식 방식에서의 업그레이드를 위한 시간과 비용]
MACH Alliance가 미국, 영국 및 독일의 고위급 기술 의사 결정자(CIO/CTO, VP/SVP, 수석 관리자)를 대상으로 실시한 최근 설문 조사에 따르면 구식 전자 상거래 IT 인프라를 자주 업그레이드하면 IT 팀의 주의가 계속 분산되는 것으로 나타났다.
연결된 선박의 시스템으로서 고객 경험에 초점을 맞춘 전자 상거래 활동은 IT와 마케팅 간의 협력의 하이브리드이다. 모놀리식 시스템의 민첩성 부족으로 인해 개인화된 옴니채널 솔루션을 신속하게 제공하는 것은 불가능하다. 여기에서 마이크로서비스는 가맹점, 마케팅 및 IT 측면에서 운영을 유연하고 자유롭게 할 수 있다.
마이크로서비스아키텍처 구성은 다음으로 구성된다.
- 마이크로서비스 ? 작은 독립 서비스
- 컨테이너 ? 패키지 서비스 및 해당 종속성. 테스트를 포함하여 전체 개발 프로세스에서 단위가 일관성이 있는지 확인
- 서비스 메시 ? 전용 동적 메시징 계층을 통해 마이크로서비스 간의 통신을 용이하게 함
- 서비스 검색 ? 마이크로서비스가 에코시스템에서 서로를 찾을 수 있도록 지원
- API 게이트웨이 ? 마이크로서비스와 외부 클라이언트 간의 열린 경로 상호 통신과 데이터 교환과 함께 완전한 애플리케이션 기능을 형성
각 서비스에는 별도의 IP 주소가 있으며 언어에 구애받지 않는 인터페이스를 노출한다. 가장 인기 있는 것은 REST API(RESTful API라고도 함)이지만 다른 통신 모델(예: GraphQL API)도 있다.
또한 마이크로서비스는 일반적으로 가동할 때 컨테이너(워크로드를 위한 경량의 격리된 운영 환경)로 배포된다.
각 서비스 설계 및 아키텍처는 다음과 같다.
- 고유함 - 서비스 설계 및 구현은 특정 기능을 수행하거나 특정 요구 사항을 충족하는 것을 목표로 함
- 탈중앙화 - 느슨한 결합에는 빈번하고 광범위한 통신이 필요하지만 서비스에는 최적의 종속성이 거의 없음. 그럼에도 불구하고 분산형 마이크로서비스는 함께 연결되어 고성능 시스템을 형성
- 탄력적 - 일반적으로 서비스는 내결함성을 극대화하도록 설계되어야 함. 단일 마이크로서비스 오작동으로 인해 전체 애플리케이션이 중단되어서는 안 됨
- API 지향 - 마이크로서비스의 아키텍처는 API에 의존하며 API 게이트웨이는 인프라 간의 통신을 용이하게 하는 훌륭한 접근 방식
- 데이터로 구분- 각 서비스에는 액세스할 준비가 된 자체 데이터베이스 또는 스토리지 볼륨이 있음

[그림2. 전자상거래를 위한 마이크로서비스 기반 아키텍처]
연결된 마이크로서비스는 느슨하게 연결된 소프트웨어 에코시스템을 형성한다. 위의 그림은 전자상거래를 위한 일반적인 마이크로서비스 기반 아키텍처를 나타낸다.
사용자 인터페이스 계층은 백엔드에서 동일한 마이크로서비스를 활용하여 여러 디지털 고객 접점을 생성하는 데 사용된다
라우팅 레이어는 HTTPS 쿼리를 해당 마이크로서비스에 연결한다.
- API 게이트웨이는 모든 API 호출을 수락하고, 쿼리를 이행하는 데 필요한 다양한 서비스를 집계하고, 적절한 결과를 반환한다.
- Service Discovery는 동적으로 할당된 마이크로서비스 인스턴스의 네트워크 사이트를 찾는다.
- Load Balancer는 마이크로서비스 간에 API 호출을 분산한다.
- 캐싱은 정적 데이터(예: 텍스트 파일)를 저장하고 반환하여 웹 페이지를 빠르게 로드한다.
컨테이너 에코시스템은 마이크로서비스 단위를 저장한다. 각각은 데이터 유형, 책임 또는 기능과 같은 특정 비즈니스 컨텍스트를 중심으로 구축된다.
마이크로서비스는 모든 서비스를 통합하는 아키텍처 구조로 함께 형성되며, 이로 인해 전체 생태계는 다음과 같은 특징을 갖는다.
- 높은 유지 보수 및 테스트 가능
- 느슨한 결합
- 독립적으로 배포 가능
- 비즈니스 역량 중심으로 구성
- 소규모 팀 소유
소프트웨어 아키텍처에 대한 이러한 접근 방식을 통해 더 크고 복잡한 소프트웨어를 빠르고 안정적으로 제공할 수 있다. API를 통한 데이터 분리, 구조화 및 통신에 중점을 두어 전자 상거래가 기술 스택을 빠르게 발전시킬 수 있다.
참 고 문 헌
- Vue Storefront, Microservices: Their role in the revolutionary approach in eCommerce, 2022.
- https://ko.wikipedia.org/wiki/마이크로서비스
- Chen, Lianping, Microservices: Architecting for Continuous Delivery and DevOps, The IEEE International Conference on Software Architecture (ICSA 2018). IEEE, (2018).
- Richardson, Chris. “Microservice architecture pattern”. microservices.io, 2017
- Chen, Lianping; Ali Babar, Muhammad, Towards an Evidence-Based Understanding of Emergence of Architecture through Continuous Refactoring in Agile Software Development, The 11th Working IEEE/IFIP Conference on Software Architecture(WICSA 2014). IEEE, 2014.
저작권 정책
K-ICT 클라우드혁신센터의 저작물인 『전자상거래(eCommerce)의 혁신적인 접근 방법으로의 마이크로서비스』은 K-ICT 클라우드혁신센터에서 상명대학교 서광규 교수에게 집필 자문을 받아 발행한 전문정보 브리프로, K-ICT 클라우드혁신센터의 저작권정책에 따라 이용할 수 있습니다.
다만 사진, 이미지, 인용자료 등 제3자에게 저작권이 있는 경우 원저작권자가 정한 바에 따릅니다.