펀드 시스템의 기반, Spring Boot Starter 라이브러리 'barcelona' 소개
카카오뱅크가 펀드 시스템 공통 기능을 묶은 사내 Spring Boot Starter 'barcelona'를 공개했다.
카카오뱅크 투자/외환기술팀은 펀드 원장을 기존 코어뱅킹에 붙이지 않고, 클라우드 네이티브 환경의 Spring Boot 독립 시스템으로 구축했다.
그 과정에서 반복되는 초기 설정과 공통 기능을 줄이기 위해 사내 **Starter 라이브러리 'barcelona'**를 만들었다. 의존성 한 줄만 추가하면 프로젝트마다 필요한 기반 기능을 바로 쓸 수 있도록 한 것이 핵심이다.
barcelona는 일반적인 Spring Boot Starter 구조를 따르며, starter, autoconfigure, context의 3개 모듈로 나뉜다.
- starter: 의존성만 묶어 제공
- autoconfigure: 조건에 따라 Bean 자동 등록
- context: 핵심 구현 로직 담당
이 구조를 통해 펀드 시스템에 필요한 은행 도메인 공통 기능을 표준화했다. 프로젝트마다 따로 구현하던 설정과 로직을 공통 라이브러리로 흡수해 개발 생산성과 유지보수성을 높였다.
대표 기능 중 하나는 FixedLength 전문 처리다. JSON처럼 객체를 직접 주고받는 방식이 아니라, 위치와 길이로 필드를 해석하는 전통적인 금융 메시지 형식을 대상으로 @FixedLengthCharacter 같은 어노테이션만 붙이면 직렬화·역직렬화를 자동화하도록 만들었다. 이는 Jackson Module 확장을 이용해 JsonSerializer, JsonDeserializer, Module로 구현했다.
또 다른 축은 HTTP Client 추상화다. 사내 API 호출에서 반복되는 설정을 줄이기 위해 공통 Client를 제공하고, 필요한 부가 처리는 Chain of Responsibility 패턴의 ClientHandler 체계로 분리했다. 부서 검증, 직원 권한 검증, 거래 증적 기록, 실제 API 호출을 각 Handler로 나누어 관리하도록 설계했다.
마지막으로 분산 트레이싱과 Baggage를 활용해, 채널계와 계정계, 코어뱅킹까지 이어지는 요청 흐름을 추적할 수 있게 했다. 시스템이 분리될수록 로그만으로 원인을 찾기 어려워지기 때문에, 서비스 간 인과관계를 놓치지 않는 관측 체계가 중요하다는 문제의식이 담겨 있다.
결국 barcelona는 펀드 시스템 개발에서 반복 작업을 줄이고, 은행 도메인 특유의 통신·추적·검증 요구사항을 Spring 생태계 안에서 자연스럽게 추상화한 사내 기반 라이브러리로 자리 잡았다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.
