DEV ZZAME logoDEV ZZAME
Back To Projects

Project Archive

모놀리식 서비스의 MSA 전환

초기 서비스 구축 단계에서 홈택스 인증·증명서 스크래핑, 전자계약서(SignOK) 연동 등 외부 API 서비스들이 메인 애플리케이션 내에 함께 포함된 모놀리식 구조로 개발되었음.

JavaSpring BootMariaDBAWSDocker

Why

  • 초기 서비스 구축 단계에서 홈택스 인증·증명서 스크래핑, 전자계약서(SignOK) 연동 등 외부 API 서비스들이 메인 애플리케이션 내에 함께 포함된 모놀리식 구조로 개발되었음.
  • 서비스 규모가 확장되면서 외부 API 장애나 변경이 메인 서비스 전체에 영향을 미치는 문제가 발생했고, 외부 연동 로직만 독립적으로 배포·관리할 수 없는 구조적 한계가 명확해졌음.

Challenge

  • 서비스 경계 설계: 메인 애플리케이션에 혼재된 외부 API 연동 로직을 어느 단위로 분리할지 서비스 경계를 정의하고, 기존 코드와의 의존성을 끊는 과정이 필요했음.
  • 데이터 흐름 재설계: 분리 이전에는 메인 서비스가 직접 외부 API를 호출하던 방식이었으나, 분리 이후 메인 서비스와 외부 API 서비스 간의 통신 방식과 데이터 흐름을 새롭게 설계해야 했음.
  • 운영 무중단 전환: 이미 운영 중인 서비스를 중단 없이 분리해야 했기 때문에, 전환 과정에서 기존 기능의 정상 동작을 보장하는 검증 절차가 필요했음.

To Be

  • 독립 서비스(factoring-external) 분리 및 구축: 홈택스 인증·증명서 발급, SignOK 전자계약서 연동 등 외부 API 로직을 별도의 마이크로서비스(factoring-external)로 분리함. 메인 서비스와는 RestTemplate 기반 내부 API 통신으로 연동하여 외부 API 장애가 메인 서비스에 전파되지 않는 구조를 확보함.
  • 서비스 간 결합도 감소: 외부 API별 인증 방식, 세션 관리, 오류 처리 로직을 외부 서비스 내에서 독립적으로 관리하도록 재설계하여, 외부 API 스펙 변경 시 메인 서비스 코드에 영향 없이 해당 서비스만 수정·배포할 수 있도록 함.
  • 인프라 독립 운영: 분리된 서비스를 AWS ECS 기반으로 독립 배포하고, Redis Connection Pool 설정 최적화 및 서버 마이그레이션을 통해 외부 API 서비스의 안정적인 독립 운영 환경을 구축함.