# [[기술 뢀채 (Technical Debt)]] ## πŸ“Œ Brief Summary **기술 뢀채(Technical Debt)**λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발 κ³Όμ •μ—μ„œ λ‹Ήμž₯의 마감 κΈ°ν•œμ„ λ§žμΆ”κΈ° μœ„ν•΄ λΉ λ₯΄κ³  μž„μ‹œλ°©νŽΈμ μΈ μ½”λ“œ μž‘μ„±μ„ 선택할 λ•Œ λ°œμƒν•˜λŠ” μž₯기적인 μœ μ§€λ³΄μˆ˜ λΉ„μš©μ„ μ˜λ―Έν•©λ‹ˆλ‹€ [1-3]. μ΄λŠ” μ€‘λ³΅λœ 둜직, λͺ…ν™•ν•˜μ§€ μ•Šμ€ λ³€μˆ˜λͺ…, μœ μ—°ν•˜μ§€ μ•Šμ€ μ•„ν‚€ν…μ²˜ λ“±μ˜ 'μ§€μ €λΆ„ν•œ μ½”λ“œ(Dirty Code)' ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚˜λ©° ν–₯ν›„ κΈ°λŠ₯ 좔가와 μˆ˜μ •μ„ μ–΄λ ΅κ²Œ λ§Œλ“­λ‹ˆλ‹€ [4-6]. 기술 뢀채λ₯Ό λ°©μΉ˜ν•˜λ©΄ μ΄μžκ°€ μŒ“μ΄λ“― λΉ„μš©μ΄ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ μ¦κ°€ν•˜λ―€λ‘œ, **λ¦¬νŒ©ν† λ§(Refactoring)**을 톡해 이λ₯Ό μ²΄κ³„μ μœΌλ‘œ μƒν™˜ν•˜κ³  μ•„ν‚€ν…μ²˜μ˜ λΆ€νŒ¨λ₯Ό λ°©μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€ [1, 7]. ## πŸ“– Core Content * **기술 λΆ€μ±„μ˜ 원인과 증상:** * μ†Œν”„νŠΈμ›¨μ–΄ 개발 쀑 **μ‹œκ°„μ  μ••λ°•(Time constraints)**이 μžˆμ„ λ•Œ, κ°œλ°œμžλ“€μ€ μ½”λ“œλ₯Ό κΉ”λ”ν•˜κ³  μ²΄κ³„μ μœΌλ‘œ κ΅¬μ„±ν•˜κΈ°λ³΄λ‹€λŠ” λ‹Ήμž₯ κΈ°λŠ₯이 λ™μž‘ν•˜κ²Œ λ§Œλ“œλŠ” 지름길(Shortcut)을 νƒν•˜κ²Œ 되며 μ΄λ•Œ 기술 뢀채가 λ°œμƒν•©λ‹ˆλ‹€ [2, 8]. * μ΄λŸ¬ν•œ 지름길은 μ½”λ”© ν‘œμ€€μ„ λ¬΄μ‹œν•˜κ±°λ‚˜, λ‘œμ§μ„ 쀑볡 μž‘μ„±ν•˜κ³ , λΆˆλΆ„λͺ…ν•œ λ³€μˆ˜λͺ…을 μ‚¬μš©ν•˜λŠ” λ“±μ˜ ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚©λ‹ˆλ‹€ [5]. * Stack Overflow 섀문쑰사에 λ”°λ₯΄λ©΄, 개발자의 62%κ°€ μ€‘λ³΅λœ 둜직, 경직된 μ•„ν‚€ν…μ²˜, 엉킨 μ˜μ‘΄μ„± λ“±μœΌλ‘œ λ°œν˜„λ˜λŠ” 기술 λΆ€μ±„λ‘œ 인해 큰 μ’Œμ ˆκ°μ„ κ²ͺκ³  μžˆλŠ” κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€ [4]. * 특히 λΆ„μ‚° μ‹œμŠ€ν…œμ—μ„œλŠ” ν•¨μˆ˜ μˆ˜μ€€μ˜ 기술 뢀채가 수천 λ²ˆμ”© μ‹€ν–‰λ˜λ©° μ‹œμŠ€ν…œ 전체에 볡합적인 μ•…μ˜ν–₯을 λ―ΈμΉ  수 μžˆμŠ΅λ‹ˆλ‹€ [9]. * **기술 뢀채 방치의 νŒŒκΈ‰ 효과:** * μ›Œλ“œ 컀닝햄(Ward Cunningham)은 기술 뢀채λ₯Ό '금육 뢀채'에 λΉ„μœ ν•˜λ©°, λΉ λ₯΄κ³  μ§€μ €λΆ„ν•œ κ΅¬ν˜„μ€ κ²°κ΅­ **λŠ˜μ–΄λ‚œ μœ μ§€λ³΄μˆ˜ λΉ„μš©μ΄λΌλŠ” '벌금(이자)'**을 치λ₯΄κ²Œ ν•œλ‹€κ³  μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€ [1, 10]. * μ§€μ €λΆ„ν•œ μ½”λ“œλ₯Ό μ •λ¦¬ν•˜μ§€ μ•Šκ³  λ°©μΉ˜ν•˜λ©΄ 뢀채가 눈덩이처럼 λΆˆμ–΄λ‚˜λ©°, ν–₯ν›„ κ°œλ°œμžλ“€μ΄ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κ³  μΆ”μ ν•˜λŠ” 데 더 λ§Žμ€ μ‹œκ°„μ„ μ†Œλͺ¨ν•˜κ²Œ λ˜μ–΄ **μƒˆλ‘œμš΄ κΈ°λŠ₯ 개발과 κ°œμ„  속도가 ν˜„μ €νžˆ λŠλ €μ§‘λ‹ˆλ‹€** [6]. * μœ μ‚¬ν•œ κ°œλ…μœΌλ‘œ ν…ŒμŠ€νŠΈ μžλ™ν™”λ₯Ό μ†Œν™€νžˆ ν•  λ•Œ λ°œμƒν•˜λŠ” **'ν’ˆμ§ˆ 뢀채(Quality Debt)'**κ°€ 있으며, 이 μ—­μ‹œ μ‹œκ°„μ΄ μ§€λ‚ μˆ˜λ‘ λΉ„μš©μ΄ 볡리둜 μ¦κ°€ν•˜μ—¬ ꢁ극적으둜 νŒ€μ˜ μ†Œν”„νŠΈμ›¨μ–΄ 배포 λŠ₯λ ₯을 μ••λ„ν•˜κ²Œ λ©λ‹ˆλ‹€ [11]. * **기술 뢀채 관리λ₯Ό μœ„ν•œ λ¦¬νŒ©ν† λ§ 및 μ‹€ν–‰ μ „λž΅:** * λ¦¬νŒ©ν† λ§μ€ λ‹¨μˆœνžˆ λ―Έν•™μ μœΌλ‘œ μ½”λ“œλ₯Ό 예쁘게 λ§Œλ“œλŠ” 것이 μ•„λ‹ˆλΌ, **기술 뢀채λ₯Ό μƒν™˜ν•˜μ—¬ 개발 속도λ₯Ό κ°€μ†ν™”ν•˜λŠ” ν•„μˆ˜μ μΈ 경제 ν™œλ™**이자 μ „λž΅μ  λ„κ΅¬μž…λ‹ˆλ‹€ [7, 12]. * κΈ°λŠ₯ μΆ”κ°€ 초기 λ‹¨κ³„μ—μ„œ κΈ°μ‘΄ μ½”λ“œλ₯Ό μ •λ¦¬ν•˜λŠ” '쀀비적 λ¦¬νŒ©ν† λ§'μ΄λ‚˜ 발견 μ¦‰μ‹œ μˆ˜μ •ν•˜λŠ” 'μ“°λ ˆκΈ° 쀍기 λ¦¬νŒ©ν† λ§' 같은 μž‘μ€ λ…Έλ ₯이 λͺ¨μ—¬ 기술 λΆ€μ±„μ˜ κΈ‰κ²©ν•œ 좕적을 λ§‰λŠ” 방어선이 λ©λ‹ˆλ‹€ [13, 14]. * ν˜„λŒ€μ μΈ μ—”μ§€λ‹ˆμ–΄λ§ νŒ€μ€ 기술 뢀채λ₯Ό 효과적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ **μ½”λ“œμ™€ 직접 μ—°κ²°λœ 이슈λ₯Ό 좔적(Track)ν•˜κ³ , 영ν–₯λ ₯이 큰 문제λ₯Ό μš°μ„ μˆœμœ„ν™”(Prioritise)ν•˜λ©°, μ •κΈ°μ μœΌλ‘œ λ¦¬νŒ©ν† λ§**ν•˜λŠ” μ‹œμŠ€ν…œμ„ κ°–μΆ”μ–΄μ•Ό ν•©λ‹ˆλ‹€ [15, 16]. * 기술 뢀채 μƒν™˜μ„ μœ„ν•΄ λ§€ μŠ€ν”„λ¦°νŠΈ μ‹œκ°„μ˜ **15~20%λ₯Ό ν• λ‹Ήν•˜κ±°λ‚˜, λΆ„κΈ°λ‹Ή ν•œ λ²ˆμ”© 2μ£Όκ°„μ˜ λ¦¬νŒ©ν† λ§ μ „μš© μŠ€ν”„λ¦°νŠΈλ₯Ό κ³„νš**ν•˜λŠ” λ“± ꡬ체적인 μ‹œκ°„μ„ λ°°μ •ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€ [17]. ## βš–οΈ Trade-offs & Caveats * **단기적 속도와 μž₯기적 λΉ„μš©μ˜ 상좩 (Short-term Speed vs. Long-term Cost):** 기술 뢀채λ₯Ό κ°μˆ˜ν•˜λ©΄ λ‹¨κΈ°μ μœΌλ‘œλŠ” μ†Œν”„νŠΈμ›¨μ–΄ μΆœμ‹œμ™€ κΈ°λŠ₯ 배포 속도λ₯Ό 높일 수 μžˆμ§€λ§Œ, 이λ₯Ό μ „λž΅μ μœΌλ‘œ κ΄€λ¦¬ν•˜μ§€ μ•Šκ³  계속 λ°©μΉ˜ν•  경우 쀑μž₯κΈ°μ μœΌλ‘œλŠ” 개발 λΉ„μš©μ΄ μƒμŠΉν•˜κ³  속도가 μ‹¬κ°ν•˜κ²Œ μ €ν•˜λ˜λŠ” λ°˜λŒ€ κΈ‰λΆ€κ°€ λ”°λ¦…λ‹ˆλ‹€ [15, 18, 19]. * **μžμ› λ°°λΆ„μ˜ λ”œλ ˆλ§ˆ (Resource Allocation):** 기술 뢀채λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ¦¬νŒ©ν† λ§μ— 인λ ₯을 νˆ¬μž…ν•˜λ©΄, λ‹Ήμž₯ μˆ˜μ΅μ„ μ°½μΆœν•˜λŠ” μƒˆλ‘œμš΄ κΈ°λŠ₯ κ°œλ°œμ—μ„œ κ°œλ°œμžκ°€ μ΄νƒˆν•˜κ²Œ λ©λ‹ˆλ‹€ [20, 21]. 특히 규λͺ¨κ°€ μž‘μ€ νŒ€μ˜ 경우 μ΄λŸ¬ν•œ μžμ› 할당이 ν”„λ‘œμ νŠΈ 마감 κΈ°ν•œκ³Ό μΆ©λŒν•  수 μžˆμœΌλ―€λ‘œ μ‹ μ€‘ν•œ κ³„νšκ³Ό κ· ν˜•μ΄ ν•„μš”ν•©λ‹ˆλ‹€ [20, 21]. * **λΆ€μ±„μ˜ λΆˆκ°€ν”Όμ„±κ³Ό λ¬Έμ„œν™”μ˜ ν•„μš”μ„±:** 기술 λΆ€μ±„λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발 수λͺ… μ£ΌκΈ°μ—μ„œ **λΆˆκ°€ν”Όν•˜κ²Œ λ°œμƒν•˜λŠ” λΆ€λΆ„(Inevitable part)**μž…λ‹ˆλ‹€ [16]. λ”°λΌμ„œ 지름길을 νƒν•΄μ•Όλ§Œ ν•˜λŠ” 상황이라면, ν•΄λ‹Ή 기술 뢀채λ₯Ό 적절히 λ¬Έμ„œν™”ν•˜κ³  μ½”λ“œλ² μ΄μŠ€μ™€ 직접 μ—°κ²°ν•˜μ—¬ μΆ”ν›„ λ°˜λ“œμ‹œ ν•΄κ²°ν•  수 μžˆλ„λ‘ κ΄€λ¦¬ν•˜λŠ” μ œμ•½μ΄ λ”°λ¦…λ‹ˆλ‹€ [16]. * **λ¦¬νŒ©ν† λ§ 자체의 μœ„ν—˜μ„±:** 기술 뢀채λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ¦¬νŒ©ν† λ§μ„ μˆ˜ν–‰ν•˜λŠ” κ³Όμ • μžμ²΄κ°€ μƒˆλ‘œμš΄ 버그λ₯Ό λ„μž…ν•˜κ±°λ‚˜ κΈ°μ‘΄ κΈ°λŠ₯을 λ§κ°€λœ¨λ¦΄ μœ„ν—˜(Risk)을 λ‚΄ν¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ [20]. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ² μ €ν•œ μžλ™ν™” ν…ŒμŠ€νŠΈ(Unit Tests λ“±)κ°€ ν•„μˆ˜μ μœΌλ‘œ μš”κ΅¬λ©λ‹ˆλ‹€ [22-24]. --- *Last updated: 2026-05-03*