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