유일한 멀티모듈 헥사고날 아키텍처: 메시지 허브 적용기
·2023.11.30 17:59
핵심 내용
카카오뱅크 메시지 허브 시스템에 코드 중복을 최소화하고 확장성을 높이는 멀티모듈 헥사고날 아키텍처를 적용한 사례를 소개한다.
자세히 보기
카카오뱅크의 메시지 허브 시스템은 다양한 서비스로부터 고객 정보를 추출해 UMS로 메시지를 전달하는 미들웨어 역할을 수행한다. 이 시스템은 목적에 따라 api, data-api, loader, consumer라는 4개의 마이크로 서비스를 하나의 도메인으로 구성하고 있다.
기존의 개별적인 헥사고날 아키텍처 구성은 서비스별로 비즈니스 로직과 세컨더리 어댑터가 중복되는 문제를 야기했다. 또한, 제한된 데이터베이스 커넥션 풀 환경에서 무작정 스케일 아웃을 하기 어렵다는 기술적 난관에 직면했다.
이를 해결하기 위해 하나의 프로젝트와 소스 내에서 멀티모듈 헥사고날 구조로 리팩토링을 진행했다. 패키지 단위의 구성을 모듈 단위로 분리하여 다음과 같이 구성했다.
- 프라이머리 어댑터 모듈: 각 서비스를 구성하며 외부 요청을 처리한다.
- 코어 모듈: 포트 인터페이스와 실제 비즈니스 로직을 포함한다.
- 세컨더리 어댑터 모듈: 데이터베이스나 외부 인프라와의 상호작용 구현체를 담당한다.
이 구조를 통해 1개의 프라이머리 어댑터 + 1개의 코어 모듈 + 1개 이상의 세컨더리 어댑터 조합으로 하나의 헥사고날을 완성한다. 이를 통해 코드 중복을 방지하면서도 클린 아키텍처의 원칙을 준수하며 유연한 의존성 관리가 가능해졌다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.