카카오뱅크, 멀티모듈 헥사고날 아키텍처로 확장성 잡았다!

by DD
2년 전
조회수 7

헥사고날 아키텍처멀티모듈 구조로 변경하여 유연성을 확보함

메시지 허브 시스템멀티모듈 헥사고날을 적용하여 스케일 아웃 전략을 개선함

API, Data-API, Loader, Consumer 각 서비스별 독립적인 스케일 아웃 및 유지보수성 향상

멀티모듈 헥사고날의 구조

멀티모듈 헥사고날은 프라이머리 어댑터, 코어 모듈, 세컨더리 어댑터로 구성된다. 구체적으로 각 서비스(API, Data-API, Loader, Consumer)를 프라이머리 어댑터로, 비즈니스 로직을 코어 모듈로, DB/Kafka 연동을 세컨더리 어댑터로 구현했다. 따라서 모듈 간 의존성 관리가 핵심이다.

스케일 아웃 전략 개선

기존에는 모든 서비스가 DB에 접근하여 스케일 아웃에 제약이 있었다. 멀티모듈 아키텍처를 통해 API 모듈만 DB에 접근하도록 변경했다. 선택적 빌드를 통해 Loader에서만 메시지를 처리하도록 하여 병목 현상을 해결하고, 확장성을 확보했다.

멀티모듈 헥사고날의 장점

멀티모듈 헥사고날은 코드 재사용성유지보수성을 향상시킨다. 따라서 신규 서비스 추가 시 기존 코어 로직세컨더리 어댑터를 활용하여 개발 리소스를 절감한다. 클린 아키텍처 원칙을 준수하면서 확장성유연성을 동시에 확보했다.

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