목록 보기
[의존성의 방향을 따라 2/5] 의존 그래프를 읽는 Planner
아키텍처

[의존성의 방향을 따라 2/5] 의존 그래프를 읽는 Planner

flex
flex
2026년 6월 10일

두줄요약

레포 간 의존성을 그래프로 복원해 변경 전파 순서를 자동 계산하는 Planner를 설명했습니다. 또한 Kotlin과 Spring Boot처럼 변경 유형에 따라 upstream-first와 downstream-first를 구분하는 방법을 정리했습니다.

구조와 흐름

  • 레포 간 의존성을 build.gradle.kts 선언에서 파싱해 전체 의존 그래프를 복원하는 Planner 역할
  • DAG 성질과 위상 정렬로 변경 전파 순서를 계산하며, 순환 의존이 없다는 점이 안전한 계획의 전제
  • 변경 성격에 따라 upstream-first, downstream-first, parallel로 전파 방향을 달리 적용

선택 이유

  • Kotlin 버전업은 바이트코드 메타데이터 호환성 때문에 downstream-first가 필요
  • Spring Boot 버전업은 API/BOM 의존성 때문에 upstream-first가 필요
  • 버전 관리 플러그인이 선언 형식을 통일해 파서와 그래프 생성 로직을 단순화

성능/운영 포인트

  • 위상 정렬 결과를 Wave로 나눠 직렬 대기 횟수를 최소화
  • gradle-plugins, backend-commons처럼 폭발 반경이 큰 변경의 영향 범위를 정량화
  • 리뷰 정책과 PR 생성 시 위험도 판단 근거로 활용

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...