사내 표준 공통 모듈 분리 및 자동화 배포 파이프라인 구축

🏢 Project under 주식회사 바이브컴퍼니 (VAIV): B2C 소셜 데이터 분석 플랫폼(Sometrend) 개발/운영

MSA 환경에서 파편화되기 쉬운 인증/인가(OAuth2·RBAC) 및 전역 예외 처리 인프라를 사내 표준 라이브러리로 통합하고, Nexus 기반의 배포 자동화를 통해 전사적인 아키텍처 거버넌스를 확립한 프로젝트입니다.

By 유민호

💡 사내 표준 공통 모듈(sometrend-library) 분리 및 자동화 배포 파이프라인 구축

[한 줄 요약] MSA 환경에서 파편화되기 쉬운 OAuth2/RBAC 보안 체계와 전역 예외 처리 인프라를 표준 라이브러리화하여, 의존성 주입만으로 사내 표준 아키텍처가 전사 서비스에 일관되게 적용되도록 생태계를 구축한 프로젝트입니다.

📌 배경 및 문제 상황 (Problem)
서비스가 독립적인 마이크로서비스(MSA) 구조로 확장되면서, 각 서비스마다 OAuth2 자원 서버 보안 설정, JWT 토큰 파싱 및 컨텍스트 관리, 데이터 이력 추적을 위한 Audit 정보 추출 등의 인프라 코드가 중복 구현되는 문제가 발생했습니다. 특히 분산된 도메인 환경에서 RBAC(역할 기반 권한 제어) 정책을 검증하는 롤 파싱 로직권한 담당 서비스 간의 통신 인터페이스, 그리고 서비스 전반의 에러를 일관되게 제어하는 예외 처리(Exception Handling) 메커니즘이 각 팀마다 제각각 구현되어 시스템 전체의 거버넌스가 파편화되는 결과를 초래했습니다. 이는 공통 보안 정책이나 공통 에러 응답 규격이 변경될 때마다 다수의 마이크로서비스를 전수 수정하고 개별 배포해야 하는 가용성 저하와 운영 비용 부담으로 이어졌습니다.

🛠️ 해결 과정 및 역할 (Action)

1. OAuth2, 분산 RBAC 및 전역 예외 처리 인프라 전사 표준화

  • Spring Boot Custom Starter 형태의 멀티 모듈 아키텍처를 설계하여, 개별 서비스들이 복잡한 설정 없이 의존성(Dependency) 선언 한 줄만으로 사내 표준 인프라 환경을 즉시 주입(Injection)받을 수 있는 구조를 확립했습니다.
  • 통합 Exception Handling 인프라 정립: 분산 환경에서 발생하는 예외를 표준 규격으로 일관되게 제어하기 위해 공통 @RestControllerAdvice@ControllerAdvice 기반의 에러 핸들링 레이어를 구축했습니다. 이를 통해 사내 응답 규격 프로토콜에 맞춘 에러 메시지 포맷팅을 자동화하고 시스템 전반의 예외 처리 아키텍처를 단일화했습니다.
  • 분산 RBAC 통제 체계 구축: 유저 권한 검증 및 세부 롤 기반 접근 제어를 처리하는 공통 JWT 롤 파서(Role Parser)를 구현하여, 분산 도메인 환경 전체의 RBAC 검증 프로세스를 통일하고 데이터 정합성을 보장했습니다.
  • 권한 동기화 인터페이스 추상화: 인가 정보 조회를 담당하는 내부 서비스와의 통신을 위해 공통 OpenFeign 통신 인터페이스를 설계했습니다. 이를 라이브러리 내부에 내장하여 개별 개발자가 통신 로직을 중복 구현할 필요 없이 안정적으로 권한 컨텍스트를 동기화할 수 있도록 지원했습니다.
  • 공통 Audit 자동 추출 시스템: 데이터 영속성 레이어와 연동되는 시스템을 구현하여, 토큰 컨텍스트 내의 요청자 식별 정보가 비즈니스 로직과 격리되어 인프라 레벨에서 실시간으로 안전하게 바인딩되도록 표준화했습니다.

2. 사내 전용 Nexus 저장소 구축 및 CI/CD 배포 파이프라인 연동

  • 비즈니스 보안 및 소스코드 유출 방지를 위해 사내 사설 Maven 저장소인 Nexus Repository를 직접 구축하고 인프라를 운영했습니다.
  • 라이브러리 코드 변경 시 Jenkins CI 파이프라인을 트리거하여 정적 분석 및 통합 빌드를 자동으로 수행하고, 검증이 완료된 JAR 아티팩트가 Nexus 저장소에 자동 배포·릴리즈되도록 파이프라인을 구축했습니다.

3. 지속 가능한 유의적 버전(Semantic Versioning) 관리 정책 수립

  • 라이브러리를 참조하는 사내 마이크로서비스들이 갑작스러운 빌드 에러나 하위 호환성 깨짐 없이 안정적으로 런타임을 유지할 수 있도록 MAJOR.MINOR.PATCH 기준의 버전 관리 규칙을 수립하고 전사 배포 생태계를 안정화했습니다.

📈 업무 성과 (Result)
  • OAuth2/RBAC 인증 인프라, 전역 Exception Advisor, 공통 통신 인터페이스(Feign)의 자산화를 통해 신규 서비스 구축 시 매번 반복되던 보일러플레이트 코드 작성을 줄였습니다.
  • 분산된 환경 전반에 동일한 예외 처리 규칙 및 보안 가이드라인을 적용함으로써, 시스템 전체의 보안 및 예외 처리 일관성을 확보했습니다.
  • 통일된 인터페이스와 공통 컴포넌트 활용을 통해 전사 개발팀의 코드 파편화를 개선하고, 조직 전체의 개발 생산성과 유지보수 효율을 높였습니다.