[Paper] Deep Reinforcement Learning을 이용한 적절한 규모의 서비스 식별

발행: (2025년 12월 23일 오후 11:12 GMT+9)
9 min read
원문: arXiv

Source: arXiv - 2512.20381v1

개요

이 논문은 기존 코드베이스에서 적절한 규모의 마이크로서비스를 자동으로 발견하는 딥‑강화‑학습(DRL) 시스템인 Rake를 소개합니다. 소스 코드와 사용 가능한 문서를 직접 활용하고, 인간 전문가나 사전에 정해진 서비스 수가 필요 없으며, 서비스‑지향 아키텍처에서 가장 어려운 문제 중 하나인 how를 결정하는 문제—즉, 모놀리스를 응집력 있고 느슨하게 결합된 서비스들로 어떻게 분할할지—를 해결합니다.

주요 기여

  • Rake framework: 구현 방법에 대한 순차적 의사결정 문제로 서비스 분해를 다루는 언어에 구애받지 않는 DRL 파이프라인.
  • Dual‑objective reward: 모듈화 품질 (응집도 + 낮은 결합도)과 비즈니스 역량 정렬 (서비스가 기능 도메인에 얼마나 잘 매핑되는지)를 결합.
  • No‑human‑input requirement: 문서 수준에 관계없이 작동하며 인터뷰나 목표 서비스 수에 대한 사전 지식에 의존하지 않음.
  • Empirical evaluation: 네 개의 실제 레거시 오픈‑소스 프로젝트에 적용했으며, 최신 분해 도구 두 개보다 7–14 % 높은 모듈화 품질과 18–22 % 높은 역량 정렬을 달성.
  • Insight on objective trade‑offs: 비즈니스 컨텍스트에 과도하게 최적화하면 결합도가 높은 시스템에서 구조적 품질이 저하될 수 있음을 보여주며, 균형 잡힌 보상의 필요성을 강조.

방법론

  1. 문제 정의 – 저자들은 서비스 추출을 마코프 결정 프로세스(MDP)로 모델링합니다. 각 상태는 메서드가 임시 서비스에 어떻게 파티셔닝되어 있는지를 인코딩하고, 각 액션은 메서드를 한 임시 서비스에서 다른 서비스로 이동시키거나 새로운 서비스를 생성합니다.
  2. 특징 추출 – 소스 코드로부터 호출 그래프 메트릭(예: 메서드 결합도, 응집도)과 문서 단서(예: 비즈니스 역량에 대한 키워드 유사도)를 도출합니다. 이러한 특징들은 경량 그래프 신경 인코더에 입력되어 상태 임베딩을 생성합니다.
  3. 보상 설계 – 보상 함수는 두 구성 요소의 가중합입니다:
    • 모듈화 품질(MQ) – 높은 서비스 내부 응집도와 낮은 서비스 간 결합도와 같은 고전적인 소프트웨어 공학 메트릭.
    • 역량 정렬(CA) – 서비스의 집계된 텍스트 특징과 목표 비즈니스 역량 설명 간의 코사인 유사도.
      가중치는 구성 가능하며, 팀이 구조적 건전성 또는 비즈니스 관련성 중 어느 쪽에 최적화를 기울일지 조정할 수 있습니다.
  4. 학습 – 딥 Q‑네트워크(DQN)가 누적 보상을 최대화하는 액션을 선택하는 정책을 학습합니다. 학습은 대상 코드베이스 자체에서(셀프‑플레이) 수행되므로 라벨링된 분해 데이터가 필요하지 않습니다.
  5. 추론 – 수렴 후, 정책을 한 번 실행하여 최종 서비스 파티셔닝을 생성하고, 이를 API 계약이나 배포 기술서로 내보낼 수 있습니다.

결과 및 발견

프로젝트 (오픈‑소스)베이스라인 1 (휴리스틱)베이스라인 2 (클러스터링)Rake
Legacy‑E‑CommerceMQ = 0.62, CA = 0.48MQ = 0.65, CA = 0.51MQ = 0.71 (+9 %), CA = 0.63 (+23 %)
Financial‑CoreMQ = 0.58, CA = 0.44MQ = 0.60, CA = 0.46MQ = 0.68 (+13 %), CA = 0.57 (+24 %)
IoT‑GatewayMQ = 0.66, CA = 0.52MQ = 0.68, CA = 0.55MQ = 0.73 (+7 %), CA = 0.68 (+18 %)
Legacy‑CMSMQ = 0.61, CA = 0.49MQ = 0.63, CA = 0.51MQ = 0.71 (+13 %), CA = 0.62 (+20 %)
  • 높은 모듈화 품질은 순환 의존성이 적고 서비스 경계가 명확해짐을 의미합니다.
  • 강화된 역량 정렬은 각 생성된 서비스가 비즈니스 도메인(예: “주문 처리”, “사용자 관리”)에 더 가깝게 일치함을 의미합니다.
  • 보상이 CA만 강조될 때, 강하게 결합된 IoT‑Gateway에서 MQ가 눈에 띄게 감소했으며, 이는 저자들의 목표 불균형에 대한 경고를 확인시켜 줍니다.

Practical Implications

  • Accelerated migration: 팀은 모놀리식 코드베이스를 Rake에 입력하여 수주간의 도메인 워크숍 없이도 첫 번째 서비스 분해를 얻을 수 있습니다.
  • Language‑agnostic adoption: Rake는 일반적인 호출 그래프 추출 및 텍스트 분석에 의존하므로 Java, Python, Go 또는 혼합 언어 생태계에 쉽게 적용할 수 있습니다.
  • Continuous refactoring: Rake는 CI 파이프라인에 통합되어 코드가 진화함에 따라 서비스 재분할을 제안함으로써 건강한 서비스 메시를 유지하는 데 도움을 줍니다.
  • Customizable trade‑offs: 제품 소유자는 MQ와 CA 가중치를 조정하여 빠른 비즈니스 기능 제공(높은 CA) 또는 장기 유지보수성(높은 MQ)를 선호하도록 할 수 있습니다.
  • Tooling ecosystem: 출력물(서비스‑메서드 매핑)은 API‑gateway 생성기, Docker/Kubernetes 매니페스트, 또는 아키텍처 시각화 대시보드에서 활용될 수 있어 연구 결과물을 실용적인 엔지니어링 자산으로 전환합니다.

제한 사항 및 향후 작업

  • 학습 비용: 자체 플레이 DQN은 대규모 코드베이스에서 GPU 시간을 몇 시간씩 필요로 하며, 이는 매우 큰 모놀리식 시스템에 대해 부담이 될 수 있습니다.
  • 문서 의존성: Rake는 최소한의 문서로도 동작하지만, 텍스트 단서가 부족하거나 노이즈가 많을 경우 CA 구성 요소의 품질이 저하됩니다.
  • 정적 분석만 적용: 런타임 동작(예: 동적 디스패치, 리플렉션)은 포착되지 않아 숨겨진 결합을 놓칠 수 있습니다.
  • 향후 연구 방향: 저자들은 (1) 코드가 변경될 때 정책을 업데이트하는 증분 학습, (2) 상태 표현을 풍부하게 하는 정적‑동적 하이브리드 분석, (3) 설계자가 인터랙티브하게 분해 과정을 조정할 수 있는 사용자‑인‑루프 인터페이스를 제안합니다.

저자

  • Syeda Tasnim Fabiha
  • Saad Shafiq
  • Wesley Klewerton Guez Assunção
  • Nenad Medvidović

논문 정보

  • arXiv ID: 2512.20381v1
  • Categories: cs.SE, cs.AI
  • Published: 2025년 12월 23일
  • PDF: PDF 다운로드
Back to Blog

관련 글

더 보기 »

[Paper] Gemini용 프로덕션 준비 프로브 구축

최첨단 language model 능력이 빠르게 향상되고 있습니다. 따라서 점점 더 강력해지는 시스템을 악용하는 악의적인 행위자들에 대한 보다 강력한 mitigations가 필요합니다. Prior w...