DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from Flex
  • Related reads#CI/CD
#DevOps

[의존성의 방향을 따라 4/5] PR을 전파하는 Distributer

[의존성의 방향을 따라 4/5] PR을 전파하는 Distributer
01

Summary

50개 레포지토리 PR 머지, 이제 AI가 'Wave' 타고 알아서 다 합니다

의존성 지옥을 탈출하는 법: 위상 정렬과 상태 머신으로 구현한 자동화된 PR 전파 시스템 'Distributer'

본 아티클은 대규모 마이크로서비스 환경에서 의존성 업데이트를 자동화하는 'Distributer'의 동작 원리를 설명합니다. 단순한 코드 변환을 넘어 실질적인 운영 단계인 PR 생성, CI 모니터링, 자동 머지 과정을 Wave 기반 모델로 구조화하여 효율을 극대화한 사례를 다룹니다.

  • 01Wave 기반 전파 모델을 통한 의존성 선후 관계의 명시적 제어
  • 02결정론적 변환(Recipe)과 판단형 변환(AI)을 구분하여 리뷰어의 피로도 감소
  • 03이력 데이터에 기반한 Flaky Test 자동 식별 및 재시도 로직 구현
  • 04비즈니스 맥락이 필요한 지점만 골라내는 스마트 에스컬레이션 시스템
  • 05병렬 머지 전략을 통해 전체 소요 시간을 가장 느린 레포지토리 하나 수준으로 단축

+RECOMMENDATION

다수의 마이크로서비스를 운영하며 라이브러리 버전 관리에 고통받는 팀에게 권장하며, 도입 전 전사적인 CI/CD 컨벤션 통일이 선행되어야 합니다.

The Problem

수십 개의 마이크로서비스 레포지토리에 걸쳐 의존성 업데이트를 수동으로 전파할 때, 복잡한 선후 관계와 CI 상태 및 리뷰 과정을 일일이 추적하며 머지 순서를 관리하는 것은 물리적으로 불가능합니다.

The Solution

의존성 그래프를 기반으로 한 'Wave' 모델을 도입하여, 선행 의존성이 해결된 후 다음 단계의 PR을 자동 생성하고 CI 상태 추적, Flaky Test 재시도, 자동 머지까지 수행하는 Distributer 시스템을 구축했습니다.

The Result

수동으로 2~4주가 소요되던 50개 이상의 레포지토리 업데이트 작업을 하루(약 8.5시간) 만에 완료했으며, 사람이 개입해야 하는 에스컬레이션 비율을 패치 버전 기준 5% 미만으로 억제했습니다.

Trade-off

모든 레포지토리가 일관된 CI/CD 파이프라인과 빌드 구조를 갖춰야만 자동화가 작동하며, 비즈니스 로직 판단이 필요한 특정 에러는 여전히 사람의 수동 개입이 필수적입니다.

03

Key Concepts

Concept · 01

Wave 기반 전파 모델

의존성 그래프를 위상 정렬하여 서로 의존성이 없는 그룹(Wave) 단위로 순차적인 업데이트를 진행하는 방식입니다.

  • 이전 Wave의 모든 PR이 머지되어야 다음 Wave의 PR이 생성되도록 게이트 역할 수행
  • 동일 Wave 내의 레포지토리들은 병렬로 처리하여 전체 공정 시간 단축
Concept · 02

Flaky Test 자동화 처리

코드 변경과 무관하게 간헐적으로 실패하는 테스트를 과거 이력을 바탕으로 판단하여 처리하는 기법입니다.

  • 실패한 테스트의 최근 30일 이력을 조회하여 간헐적 실패 여부 확인
  • Flaky로 판단될 경우 최대 2회까지 자동 재실행하여 불필요한 에스컬레이션 방지
Concept · 03

스마트 에스컬레이션

자동화 도구나 AI가 스스로 해결할 수 없는 복잡한 판단 문제를 사람(엔지니어)에게 위임하는 프로세스입니다.

  • Claude AI가 3회 이상 수정에 실패하거나 비즈니스 로직 판단이 필요할 때 발생
  • 실패 원인 분석과 사람이 판단해야 할 지점을 명시하여 알림 전송
Continue reading · same source

FlexMore from Flex

View all posts from Flex
  • @Scheduled 한 줄로 버티다, 트리거를 밖으로 꺼낸 이야기

    Spring BootScheduledDistributed Lock
    5일 전
  • 사람도 에이전트도, 덜 읽을수록 더 잘 고칩니다

    ModularizationAI AgentLLM Context
    1주 전
  • 헥사고날 아키텍처, Adapter만 바꾸면 될까

    Hexagonal ArchitecturePort and AdapterMulti Cloud
    2주 전
  • 경계를 빌드로 못 박으면, 경계를 옮기는 일도 빌드가 붙잡습니다

    Multi-ModuleGradleClean Architecture
    3주 전
  • 사람은 떠났는데 권한은 남았다

    ReBACOpenFGACDC
    1개월 전

Related reads#CI/CD

Explore #CI/CD
Flex·Platform Engineering

제품을 만드는 시스템을 만드는 사람

#CI/CD1개월 전
Flex·Infrastructure as Code

[인프라를 소프트웨어처럼 1/5] Infrastructure as Code, 그리고 그다음

#CI/CD2개월 전
미리디·Monorepo

모노레포가 미리캔버스 프론트엔드 아키텍처를 뒷받침 하는 방법 [2/2]

#CI/CD2개월 전
SSG·Accessibility

쓱닷컴이 접근성을 대하는 방식

#CI/CD2개월 전
NAVER D2·Android

안드로이드 빌드 대기 시간 없애기

#CI/CD2개월 전

Source

Flex
Flex
Engineering Blog

Published · June 17, 2026

Topics

CI/CDGitHub PRDependency ManagementAutomationDevOps