Files
2nd/10_Wiki/Topics_Blog/Directed-Acyclic-Graph-Build-Systems.md
T

30 lines
1.8 KiB
Markdown

---
id: P-REINFORCE-AI-DAG-BUILD
category: "10_Wiki/💡 Topics/AI"
confidence_score: 0.97
tags: [SoftwareEngineering, BuildSystems, DAG, Efficiency]
last_reinforced: 2026-04-20
---
# [[Directed-Acyclic-Graph-Build-Systems]] (DAG 기반 빌드 시스템)
## 📌 한 줄 통찰 (The Karpathy Summary)
> "순환 없는 흐름이 만드는 초고속 병렬 빌드." 작업 간의 의존성을 방향이 있고 순환이 없는 그래프(DAG)로 관리하여, 순서가 보장된 상태에서 최대한의 병렬 처리를 가능하게 하는 시스템이다.
## 📖 구조화된 지식 (Synthesized Content)
- **Why DAG?**:
- **Deterministic**: 실행 순서가 명확하여 예측 가능하다.
- **Acyclic**: 작업 A가 B를 기다리고 B가 A를 기다리는 교착 상태(Deadlock)가 발생하지 않음을 보장한다.
- **Key Features**:
- **Incremental Build**: 변경된 파일과 그에 영향을 받는 하위 그래프만 다시 빌드하여 시간 절약.
- **Parallel Execution**: 의존 관계가 없는 노드들은 동시에 실행하여 CPU 자원 극대화.
- **Caching**: 이전 빌드 결과물을 해시값으로 저장하여 동일 작업 반복 방지.
- **Examples**: Bazel, Buck, Gradle, Turborepo.
## ⚠️ 모순 및 업데이트 (RL Update)
- DAG는 강력하지만, 그래프가 너무 거대해지면 '그래프 해석(Graph Solving)' 자체가 오버헤드가 될 수 있다. 최신 빌드 시스템들은 로컬이 아닌 클라우드 원격 캐시(Remote Caching)와 실행 엔진을 결합하여 수백만 개의 노드를 가진 그래프도 초 단위로 처리하는 방향으로 진화하고 있다.
## 🔗 지식 연결 (Graph)
- Related: [[Dependency-Graph-Analysis]] , [[Directed-Acyclic-Graph-Dependency-Management]]
- Concept: Topological-Sort