# [[Scaled Agile Framework (SAFe)]] ## πŸ“Œ Brief Summary Scaled Agile Framework(SAFe) ν™˜κ²½μ—μ„œμ˜ μžλ™ν™” ν…ŒμŠ€νŠΈλŠ” λ‹¨μˆœν•œ μˆ˜λ™ ν…ŒμŠ€νŠΈμ˜ λŒ€μ²΄λ₯Ό λ„˜μ–΄, μ—¬λŸ¬ νŒ€μ— 걸쳐 κ°€μΉ˜λ₯Ό μ§€μ†μ μœΌλ‘œ μ „λ‹¬ν•˜κΈ° μœ„ν•œ ν•„μˆ˜μ μΈ λ‚΄μž₯ ν’ˆμ§ˆ(Built-in Quality) κ΄€ν–‰μž…λ‹ˆλ‹€ [1]. 단일 슀크럼 νŒ€μ˜ 규λͺ¨λ₯Ό λ›°μ–΄λ„˜μ–΄ 5~12개의 μ• μžμΌ νŒ€μœΌλ‘œ κ΅¬μ„±λœ μ• μžμΌ 릴리슀 트레인(ART, Agile Release Train) μ „μ²΄μ˜ μž‘μ—…μ„ μ‘°μ •ν•΄μ•Ό ν•˜λ―€λ‘œ, λͺ¨λ“  톡합 μ§€μ μ—μ„œμ˜ 였λ₯˜ κ°€λŠ₯성에 λŒ€λΉ„ν•˜λŠ” μ „λž΅μ΄ ν•„μš”ν•©λ‹ˆλ‹€ [2]. SAFeλŠ” μžλ™ν™” ν…ŒμŠ€νŠΈλ₯Ό ν…ŒμŠ€νŠΈ 주도 개발(TDD), λ™λ£Œ 리뷰(Peer Review), μ½”λ“œ 곡동 μ†Œμœ κΆŒ λ“±κ³Ό ν•¨κ»˜ ν’ˆμ§ˆμ„ 보μž₯ν•˜κΈ° μœ„ν•œ 핡심 κΈ°λ‘₯으둜 κ°„μ£Όν•©λ‹ˆλ‹€ [2]. ## πŸ“– Core Content * **μ±…μž„μ˜ λΆ„μ‚° 및 μ‹œμŠ€ν…œ νŒ€μ˜ μ—­ν• ** SAFe ν™˜κ²½μ—μ„œ μžλ™ν™” ν…ŒμŠ€νŠΈμ— λŒ€ν•œ μ±…μž„μ€ 쑰직 μ „λ°˜μ— λΆ„μ‚°λ©λ‹ˆλ‹€. κ°œλ°œμžλŠ” μ™„λ£Œ 쑰건(DoD)의 μΌλΆ€λ‘œ λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„± 및 μœ μ§€ κ΄€λ¦¬ν•˜κ³ , ν…ŒμŠ€ν„°λŠ” 톡합 및 인수 ν…ŒμŠ€νŠΈ μžλ™ν™”μ— μ§‘μ€‘ν•©λ‹ˆλ‹€ [3]. μ‹œμŠ€ν…œ νŒ€μ€ ν…ŒμŠ€νŠΈ ν™˜κ²½, CI νŒŒμ΄ν”„λΌμΈ, ν…ŒμŠ€νŠΈ 데이터 관리 λ“± 인프라λ₯Ό μ§€μ›ν•˜μ—¬ ν…ŒμŠ€νŠΈ μžλ™ν™”κ°€ μ›ν™œν•˜κ²Œ 이루어지도둝 λ•μŠ΅λ‹ˆλ‹€ [3]. 특히 μ‹œμŠ€ν…œ νŒ€μ€ ν”„λ‘œλ•μ…˜ ꡬ성과 μΌμΉ˜ν•˜λŠ” μ•ˆμ •μ μΈ 톡합 ν…ŒμŠ€νŠΈ ν™˜κ²½μ„ μ œκ³΅ν•¨μœΌλ‘œμ¨ μ—­ ν…ŒμŠ€νŠΈ ν”ΌλΌλ―Έλ“œ(Inverted Test Pyramid) μ•ˆν‹° νŒ¨ν„΄μ„ λ°©μ§€ν•©λ‹ˆλ‹€ [4]. * **ART(Agile Release Train) 규λͺ¨μ˜ CI νŒŒμ΄ν”„λΌμΈ** μˆ˜μ‹­ λͺ…μ˜ κ°œλ°œμžκ°€ λ™μΌν•œ μ½”λ“œλ² μ΄μŠ€μ— 맀일 μ½”λ“œλ₯Ό ν‘Έμ‹œν•˜λŠ” μƒν™©μ—μ„œ 지속적 톡합(CI)κ³Ό 지속적 제곡(CD)을 μ‹€ν˜„ν•˜κ²Œ ν•΄μ£ΌλŠ” κΈ°λ³Έ λ©”μ»€λ‹ˆμ¦˜μ΄ λ°”λ‘œ μžλ™ν™” ν…ŒμŠ€νŠΈμž…λ‹ˆλ‹€ [5]. κ°œλ³„ νŒ€μ΄ 자체 CI ν”„λ‘œμ„ΈμŠ€λ₯Ό μœ μ§€ν•˜λŠ” ν•œνŽΈ, μ‹œμŠ€ν…œ νŒ€μ€ 전체 ARTλ₯Ό κ΄€ν†΅ν•˜λŠ” 톡합 인프라λ₯Ό μ‘°μ •ν•˜μ—¬ νŒ€ λ‹¨μœ„μ˜ λΉŒλ“œλ“€μ΄ 일관성 μžˆλŠ” μ „μ²΄λ‘œ μ—°κ²°λ˜λ„λ‘ ν•©λ‹ˆλ‹€ [6]. * **ν…ŒμŠ€νŠΈ μ½”λ“œμ˜ 1κΈ‰ μ‹œλ―Ό λŒ€μš° (First-Class Code)** μžλ™ν™”λœ ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” ν”„λ‘œλ•μ…˜ μ½”λ“œμ™€ λ™μΌν•œ ν’ˆμ§ˆ μžμ‚°μœΌλ‘œ μ·¨κΈ‰λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€ [7]. λ™λ£Œ 리뷰λ₯Ό 거치고, μ½”λ”© ν‘œμ€€μ„ λ”°λ₯΄λ©°, μ·¨μ•½ν•΄μ§ˆ 경우 λ¦¬νŒ©ν† λ§μ˜ λŒ€μƒμ΄ λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€ [7]. μ™„λ£Œ 쑰건(DoD)에 μžλ™ν™” ν…ŒμŠ€νŠΈ κ΄€λ ¨ μš”κ΅¬μ‚¬ν•­μ„ κ³΅μ‹ν™”ν•˜κ³ , λ‚΄μž₯ ν’ˆμ§ˆ(Built-in Quality) 체크리슀트λ₯Ό ν™œμš©ν•΄ ART λ‚΄ λͺ¨λ“  νŒ€μ˜ ν…ŒμŠ€νŠΈ κΈ°λŒ€μΉ˜λ₯Ό ν‘œμ€€ν™”ν•©λ‹ˆλ‹€ [8]. * **Shift-Left ν…ŒμŠ€νŠΈμ™€ 지속적인 ν”Όλ“œλ°± 루프** ν…ŒμŠ€νŠΈ 생성과 싀행을 개발 μ£ΌκΈ° ν›„λ°˜μœΌλ‘œ 미루지 μ•Šκ³  초기 λ‹¨κ³„λ‘œ 당겨야 ν•©λ‹ˆλ‹€ [9]. 개발 μ€‘μ—λŠ” TDDλ₯Ό ν™œμš©ν•˜κ³ , 곡유 λΈŒλžœμΉ˜μ— μ½”λ“œκ°€ 병합될 λ•Œλ§ˆλ‹€ 톡합 ν…ŒμŠ€νŠΈλ₯Ό 거치며, 정기적인 νšŒκ·€ ν…ŒμŠ€νŠΈλ₯Ό 톡해 λΆ€μž‘μš©μ„ ν¬μ°©ν•©λ‹ˆλ‹€ [9]. SAFe의 '검사 및 적응(Inspect and Adapt)' μ΄λ²€νŠΈλŠ” μ΄λŸ¬ν•œ ν…ŒμŠ€νŠΈ μ§€ν‘œλ₯Ό μ •κΈ°μ μœΌλ‘œ κ²€ν† ν•˜κ³  κ°œμ„  μ˜μ—­μ„ μ‹λ³„ν•˜λŠ” ν›Œλ₯­ν•œ 계기λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€ [10]. ## βš–οΈ Trade-offs & Caveats * **μ—­ ν…ŒμŠ€νŠΈ ν”ΌλΌλ―Έλ“œ μ•ˆν‹° νŒ¨ν„΄ (Inverted Test Pyramid)** λ‹¨μœ„ ν…ŒμŠ€νŠΈλ‚˜ 톡합 ν…ŒμŠ€νŠΈ λŒ€μ‹  GUI 및 E2E(End-to-End) ν…ŒμŠ€νŠΈμ— μ§€λ‚˜μΉ˜κ²Œ μ˜μ‘΄ν•˜λ©΄, ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈκ°€ λŠλ €μ§€κ³  μž‘μ€ 변화에도 μ‰½κ²Œ κΉ¨μ Έ(brittle) μœ μ§€ 보수 λΉ„μš©μ΄ λ†’μ•„μ§‘λ‹ˆλ‹€ [11]. 이 경우 ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜λŠ” μ‹œκ°„λ³΄λ‹€ κ³ μΉ˜λŠ” 데 더 λ§Žμ€ μžμ›μ΄ μ†Œλͺ¨λ˜λŠ” μ—­νš¨κ³Όκ°€ λ°œμƒν•©λ‹ˆλ‹€ [11]. * **곡유 ν…ŒμŠ€νŠΈ ν™˜κ²½μ˜ 병λͺ© ν˜„μƒ** μ—¬λŸ¬ νŒ€μ΄ λ™μΌν•œ ν…ŒμŠ€νŠΈ ν™˜κ²½μ„ λ™μ‹œμ— μ‚¬μš©ν•˜μ—¬ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜λ©΄ μ‹€νŒ¨κ°€ μ—°μ‡„μ μœΌλ‘œ 일어날 수 있으며, μ–΄λ–€ μ½”λ“œ 변경이 문제λ₯Ό μΌμœΌμΌ°λŠ”μ§€ νŒλ³„ν•˜κΈ° 맀우 μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€(κ±°μ§“ μ‹€νŒ¨ λ°œμƒ) [11]. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ½”λ“œν™”λœ 인프라(Infrastructure as Code) 등을 톡해 ν™˜κ²½μ„ λ…λ¦½μ μœΌλ‘œ ν”„λ‘œλΉ„μ €λ‹ν•΄μ•Ό ν•©λ‹ˆλ‹€ [6]. * **μœ μ§€λ³΄μˆ˜ μ˜ˆμ‚°μ˜ λΆ€μž¬ 및 μ·¨μ•½ν•œ ν…ŒμŠ€νŠΈ(Flaky Tests)** μžλ™ν™” ν…ŒμŠ€νŠΈλ₯Ό 지속적인 관행이 μ•„λ‹Œ μΌνšŒμ„± ν”„λ‘œμ νŠΈλ‘œ μ·¨κΈ‰ν•˜λ©΄, μœ μ§€λ³΄μˆ˜λ˜μ§€ μ•Šμ€ ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ κ³§ λΆ€μ±„λ‘œ μ „λ½ν•©λ‹ˆλ‹€ [11]. κ°„ν—μ μœΌλ‘œ 톡과와 μ‹€νŒ¨λ₯Ό λ°˜λ³΅ν•˜λŠ” 'μ·¨μ•½ν•œ ν…ŒμŠ€νŠΈ'λ₯Ό λ°©μΉ˜ν•˜λ©΄ κ°œλ°œμžλ“€μ€ ν…ŒμŠ€νŠΈ κ²°κ³Όλ₯Ό μ‹ λ’°ν•˜μ§€ μ•Šκ²Œ 되며, κ²°κ΅­ μžλ™ν™” μ΄λ‹ˆμ…”ν‹°λΈŒ μ „μ²΄μ˜ μ‹€νŒ¨λ‘œ μ΄μ–΄μ§‘λ‹ˆλ‹€ [11, 12]. * **λΉ„ν˜„μ‹€μ μΈ κΈ°λŒ€μ™€ 기술 격차** μ΄ˆκΈ°λΆ€ν„° μˆ˜λ™ ν…ŒμŠ€νŠΈ λ…Έλ ₯이 '0'으둜 μˆ˜λ ΄ν•  것이라고 κΈ°λŒ€ν•˜λŠ” 것은 ν™˜μƒμ΄λ©°, μžλ™ν™”λŠ” μˆ˜λ™ ν…ŒμŠ€νŠΈλ₯Ό λŒ€μ²΄ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μ‚¬λžŒμ˜ λ…Έλ ₯을 λ³΄μ™„ν•˜λŠ” κ²ƒμž„μ„ λͺ…심해야 ν•©λ‹ˆλ‹€ [11]. λ˜ν•œ, μΆ©λΆ„ν•œ μžλ™ν™” μ „λ¬Έ 지식이 μ—†λŠ” νŒ€μ΄ λ³΅μž‘ν•œ ν”„λ ˆμž„μ›Œν¬λ₯Ό λ„μž…ν•˜λ €κ³  ν•˜λ©΄ 개발이 였히렀 정체될 수 μžˆμŠ΅λ‹ˆλ‹€ [11]. --- *Last updated: 2026-05-03*