AI Briefing

유일한 멀티모듈 헥사고날 아키텍처: 메시지 허브 적용기

·2023.11.30 17:59

카카오뱅크 메시지 허브 시스템에 코드 중복을 최소화하고 확장성을 높이는 멀티모듈 헥사고날 아키텍처를 적용한 사례를 소개한다.

카카오뱅크의 메시지 허브 시스템은 다양한 서비스로부터 고객 정보를 추출해 UMS로 메시지를 전달하는 미들웨어 역할을 수행한다. 이 시스템은 목적에 따라 api, data-api, loader, consumer라는 4개의 마이크로 서비스를 하나의 도메인으로 구성하고 있다.

기존의 개별적인 헥사고날 아키텍처 구성은 서비스별로 비즈니스 로직과 세컨더리 어댑터가 중복되는 문제를 야기했다. 또한, 제한된 데이터베이스 커넥션 풀 환경에서 무작정 스케일 아웃을 하기 어렵다는 기술적 난관에 직면했다.

이를 해결하기 위해 하나의 프로젝트와 소스 내에서 멀티모듈 헥사고날 구조로 리팩토링을 진행했다. 패키지 단위의 구성을 모듈 단위로 분리하여 다음과 같이 구성했다.

  • 프라이머리 어댑터 모듈: 각 서비스를 구성하며 외부 요청을 처리한다.
  • 코어 모듈: 포트 인터페이스와 실제 비즈니스 로직을 포함한다.
  • 세컨더리 어댑터 모듈: 데이터베이스나 외부 인프라와의 상호작용 구현체를 담당한다.

이 구조를 통해 1개의 프라이머리 어댑터 + 1개의 코어 모듈 + 1개 이상의 세컨더리 어댑터 조합으로 하나의 헥사고날을 완성한다. 이를 통해 코드 중복을 방지하면서도 클린 아키텍처의 원칙을 준수하며 유연한 의존성 관리가 가능해졌다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.