--- id: P-REINFORCE-WIKI-C6A105D6 category: "10_Wiki/πŸ’‘ Topics/02_Architecture_Principles" confidence_score: 0.95 tags: ['μ†Œν”„νŠΈμ›¨μ–΄-μ•„ν‚€ν…μ²˜-침식-(software-architecture-erosion)', '기술-뢀채-(technical-debt)', '지식-증발-(knowledge-vaporization)', 'μ†Œν”„νŠΈμ›¨μ–΄-μ•„ν‚€ν…μ²˜-볡ꡬ-(software-architecture-recovery)', 'μ• μžμΌ-μ†Œν”„νŠΈμ›¨μ–΄-개발과-μ•„ν‚€ν…μ²˜-(agile-software-development-and-architecture)', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 침식 (Software Architecture Erosion)]] ## πŸ“Œ Brief Summary μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 침식(Software Architecture Erosion)은 μ‹œκ°„μ΄ 지남에 따라 μ˜λ„λœ μ•„ν‚€ν…μ²˜ 섀계와 μ‹€μ œ κ΅¬ν˜„λœ μ‹œμŠ€ν…œμ˜ μ•„ν‚€ν…μ²˜ 사이에 점진적인 격차가 λ°œμƒν•˜λŠ” ν˜„μƒμ„ μ˜λ―Έν•©λ‹ˆλ‹€[1]. 이 ν˜„μƒμ€ 1992λ…„ Perry와 Wolf에 μ˜ν•΄ 처음 μ •μ˜λ˜μ—ˆμœΌλ©°, μ•„ν‚€ν…μ²˜ μœ„λ°˜, 기술 λΆ€μ±„μ˜ 좕적, 지식 증발(Knowledge Vaporization) λ“±μ˜ 이유둜 λ°œμƒν•©λ‹ˆλ‹€[1]. μ•„ν‚€ν…μ²˜ 침식을 λ°©μΉ˜ν•˜λ©΄ μ†Œν”„νŠΈμ›¨μ–΄ μ„±λŠ₯이 μ €ν•˜λ˜κ³  μ§„ν™” 및 μœ μ§€λ³΄μˆ˜ λΉ„μš©μ΄ λŒ€ν­ μ¦κ°€ν•˜λ©°, μ „λ°˜μ μΈ μ†Œν”„νŠΈμ›¨μ–΄ ν’ˆμ§ˆμ΄ ν•˜λ½ν•˜κ²Œ λ˜λ―€λ‘œ 적극적인 예방과 볡ꡬ μ‘°μΉ˜κ°€ ν•„μˆ˜μ μž…λ‹ˆλ‹€[2, 3]. ## πŸ“– Core Content * **λ°œμƒ 원인**: μ•„ν‚€ν…μ²˜ 침식은 μ†Œν”„νŠΈμ›¨μ–΄ 개발 수λͺ… μ£ΌκΈ°(SDLC)의 λͺ¨λ“  λ‹¨κ³„μ—μ„œ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 주된 μ›μΈμœΌλ‘œλŠ” μ•„ν‚€ν…μ²˜ κ·œμΉ™ μœ„λ°˜, 기술 뢀채(Technical Debt)의 지속적인 좕적, 그리고 μ‹œμŠ€ν…œ ꡬ쑰에 λŒ€ν•œ 이해가 μ‚¬λΌμ§€λŠ” 지식 증발 ν˜„μƒμ΄ μžˆμŠ΅λ‹ˆλ‹€[1]. * **μΉ¨μ‹μ˜ 뢀정적 영ν–₯ 및 사둀**: μ•„ν‚€ν…μ²˜ 침식은 μ†Œν”„νŠΈμ›¨μ–΄μ˜ μ„±λŠ₯을 κ°μ†Œμ‹œν‚€κ³ , 진화에 ν•„μš”ν•œ λΉ„μš©μ„ λŒ€ν­ μ¦κ°€μ‹œν‚€λ©°, ν’ˆμ§ˆμ„ μ €ν•˜μ‹œν‚΅λ‹ˆλ‹€[2]. λŒ€ν‘œμ μΈ μ‹€νŒ¨ μ‚¬λ‘€λ‘œ 초기 λͺ¨μ§€λΌ(Mozilla) μ›Ή λΈŒλΌμš°μ €λ₯Ό λ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. λ„·μŠ€μΌ€μ΄ν”„(Netscape)κ°€ λ§Œλ“  이 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 지속적인 λ³€κ²½μœΌλ‘œ 인해 μ½”λ“œλ² μ΄μŠ€κ°€ μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ–΄λ €μšΈ μ •λ„λ‘œ λ³΅μž‘ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. 초기 μ„€κ³„μ˜ 결함과 μ‹¬ν™”λœ μ•„ν‚€ν…μ²˜ μΉ¨μ‹μœΌλ‘œ 인해 κ²°κ΅­ λ„·μŠ€μΌ€μ΄ν”„λŠ” 2λ…„μ΄λΌλŠ” λ§‰λŒ€ν•œ μ‹œκ°„κ³Ό λΉ„μš©μ„ λ“€μ—¬ λΈŒλΌμš°μ €λ₯Ό μ „λ©΄ 재개발(Redevelop)ν•΄μ•Όλ§Œ ν–ˆμŠ΅λ‹ˆλ‹€[1]. * **탐지 및 뢄석 접근법**: μ•„ν‚€ν…μ²˜ 침식을 νƒμ§€ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ 접근법과 도ꡬ가 μ œμ•ˆλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이듀은 주둜 일관성 기반(Consistency-based), μ§„ν™” 기반(Evolution-based), 결함 기반(Defect-based), κ²°μ • 기반(Decision-based) λ“± 4κ°€μ§€ λ²”μ£Όλ‘œ λΆ„λ₯˜λ©λ‹ˆλ‹€[2]. μžλ™ν™”λœ μ•„ν‚€ν…μ²˜ 적합성 검사(Conformance checks), 정적 μ½”λ“œ 뢄석 도ꡬ, λ¦¬νŒ©ν† λ§ 기술 등이 침식을 쑰기에 μ‹λ³„ν•˜κ³  μ™„ν™”ν•˜λŠ” 데 도움을 μ€λ‹ˆλ‹€[2]. * **λŒ€μ‘ 쑰치 (예방 및 볡ꡬ)**: * **예방적(Preventative) 쑰치**: μ•„ν‚€ν…μ²˜ κ·œμΉ™ κ°•μ œ, 정기적인 μ½”λ“œ 리뷰, μžλ™ν™”λœ ν…ŒμŠ€νŠΈ 등을 톡해 침식이 λ°œμƒν•˜λŠ” 것을 사전에 μ°¨λ‹¨ν•©λ‹ˆλ‹€[3]. * **볡ꡬ적(Remedial) 쑰치**: 이미 λ°œμƒν•œ 침식을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ¦¬νŒ©ν† λ§(Refactoring), μž¬μ„€κ³„(Redesign), λ¬Έμ„œ μ—…λ°μ΄νŠΈ 등을 μˆ˜ν–‰ν•©λ‹ˆλ‹€[3]. ## βš–οΈ Trade-offs & Caveats μ•„ν‚€ν…μ²˜ 침식을 λ°©μ§€ν•˜κ±°λ‚˜ λ³΅κ΅¬ν•˜κΈ° μœ„ν•œ 기술적 μ‘°μΉ˜μ™€ μ΅œμ ν™” 방법은 μž₯기적인 μ‹œμŠ€ν…œ μ•ˆμ •μ„±μ„ 보μž₯ν•˜μ§€λ§Œ 단기적인 μžμ› μ†Œλͺ¨λΌλŠ” λ°˜λŒ€ κΈ‰λΆ€(Trade-off)λ₯Ό κ°€μ§‘λ‹ˆλ‹€. 예방적 쑰치인 μ•„ν‚€ν…μ²˜ κ·œμΉ™ κ°•μ œ, 정기적인 μ½”λ“œ 리뷰, μžλ™ν™”λœ 적합성 검사 및 정적 μ½”λ“œ 뢄석 λ„κ΅¬μ˜ λ„μž…μ€ μ‹œμŠ€ν…œ 개발 초기의 속도λ₯Ό μ§€μ—°μ‹œν‚€κ³  좔가적인 λ¦¬μ†ŒμŠ€μ™€ ν•™μŠ΅μ„ μš”κ΅¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€[2, 3]. 반면, 이미 침식이 λ°œμƒν•œ μƒνƒœμ—μ„œ 볡ꡬ적 쑰치(λ¦¬νŒ©ν† λ§, μž¬μ„€κ³„, λ¬Έμ„œ μ—…λ°μ΄νŠΈ)λ₯Ό μˆ˜ν–‰ν•˜λŠ” 것은 λ‹Ήμž₯의 μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆœμ‹œλ₯Ό μ§€μ—°μ‹œν‚΅λ‹ˆλ‹€[3]. κ·ΈλŸ¬λ‚˜ μ΄λŸ¬ν•œ 쑰치λ₯Ό κ°„κ³Όν•  경우, λͺ¨μ§€λΌ μ›Ή λΈŒλΌμš°μ €μ˜ μ‹€νŒ¨ μ‚¬λ‘€μ²˜λŸΌ μ•„ν‚€ν…μ²˜κ°€ λΆ•κ΄΄ν•˜μ—¬ ν–₯ν›„ 전체 μ‹œμŠ€ν…œμ„ μ „λ©΄ μž¬κ°œλ°œν•΄μ•Ό ν•˜λŠ” λ§‰λŒ€ν•œ μ‹œκ°„(2λ…„)κ³Ό λΉ„μš©μ˜ 손싀이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€[1]. λ˜ν•œ λ‚‘κ±°λ‚˜ μœ μ‹€λœ λ¬Έμ„œλ₯Ό λ°”νƒ•μœΌλ‘œ κ΅¬ν˜„μ²΄μ—μ„œ ꡬ쑰λ₯Ό λ‹€μ‹œ λ½‘μ•„λ‚΄λŠ” 'μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 볡ꡬ(Recovery)' 과정은 정적 ν”„λ‘œκ·Έλž¨ 뢄석 λ“± 역곡학 κΈ°μˆ μ„ λ„μž…ν•΄μ•Ό ν•˜λ―€λ‘œ 좔가적인 뢄석 λΉ„μš©μ΄ λ°œμƒν•©λ‹ˆλ‹€[3]. ## πŸ”— Knowledge Connections ### Related Concepts #### [ν˜„μƒ 및 원인 (Phenomena & Causes)] - [[기술 뢀채 (Technical Debt)]] - μ—°κ²° 이유: μ†ŒμŠ€μ— λͺ…μ‹œλœ μ•„ν‚€ν…μ²˜ 침식을 μΌμœΌν‚€λŠ” 핡심 원인 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€[1]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 단기적 개발 속도λ₯Ό μœ„ν•΄ νƒ€ν˜‘ν•œ νŽΈλ²•μ΄λ‚˜ λΆˆμ™„μ „ν•œ μ½”λ“œκ°€ μž₯기적으둜 μ•„ν‚€ν…μ²˜μ˜ 일관성을 μ–΄λ–»κ²Œ νŒŒκ΄΄ν•˜κ³  침식을 κ°€μ†ν•˜λŠ”μ§€ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€. - [[지식 증발 (Knowledge Vaporization)]] - μ—°κ²° 이유: μ•„ν‚€ν…μ²˜ μΉ¨μ‹μ˜ 또 λ‹€λ₯Έ μ£Όμš” μ›μΈμœΌλ‘œ μ–ΈκΈ‰λœ ν˜„μƒμž…λ‹ˆλ‹€[1]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: λ‹΄λ‹Ήμž κ΅μ²΄λ‚˜ λ¬Έμ„œν™”μ˜ λΆ€μž¬λ‘œ 인해 μ‹œμŠ€ν…œ ꡬ쑰에 λŒ€ν•œ νŒ€μ˜ 이해도가 μ‚¬λΌμ§ˆ λ•Œ μ•„ν‚€ν…μ²˜κ°€ μ–΄λ–»κ²Œ ν›Όμ†λ˜λŠ”μ§€ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. #### [ν•΄κ²° 및 뢄석 접근법 (Mitigation & Analysis)] - [[μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 볡ꡬ (Software Architecture Recovery)]] - μ—°κ²° 이유: μ•„ν‚€ν…μ²˜ 침식과 ꡬ식 λ¬Έμ„œν™” λ¬Έμ œμ— μ§λ©΄ν–ˆμ„ λ•Œ, μ‹€μ œ μ†ŒμŠ€ μ½”λ“œ λ“± κ°€μš© μ •λ³΄λ‘œλΆ€ν„° μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜λ₯Ό μ—­μœΌλ‘œ μΆ”μΆœ(Reverse Engineering)ν•΄λ‚΄λŠ” κ³Όμ •μž…λ‹ˆλ‹€[3]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: μ›λž˜ μ˜λ„ν–ˆλ˜ 섀계(Intended architecture)와 μ‹€μ œ κ΅¬ν˜„(Implemented architecture) μ‚¬μ΄μ˜ 간극을 쒁히고 μ‹œμŠ€ν…œμ„ μž¬νŒŒμ•…ν•˜κΈ° μœ„ν•œ 정적 ν”„λ‘œκ·Έλž¨ 뢄석 및 μ†Œν”„νŠΈμ›¨μ–΄ μΈν…”λ¦¬μ „μŠ€ 기법을 이해할 수 μžˆμŠ΅λ‹ˆλ‹€. ### Deeper Research Questions - 정적 μ½”λ“œ 뢄석 도ꡬ와 μžλ™ν™”λœ μ•„ν‚€ν…μ²˜ 적합성 검사(Conformance checks)λŠ” μ•„ν‚€ν…μ²˜ 침식을 ꡬ체적으둜 μ–΄λ–»κ²Œ 식별해 λ‚΄λ©°, μ΄λŸ¬ν•œ 도ꡬ듀이 μž‘μ•„λ‚΄μ§€ λͺ»ν•˜λŠ” ν•œκ³„λŠ” 무엇인가? - λͺ¨μ§€λΌ(Mozilla) μ›Ή λΈŒλΌμš°μ € 사둀와 같이 μ•„ν‚€ν…μ²˜ 침식이 μž„κ³„μ μ— λ„λ‹¬ν–ˆμ„ λ•Œ, μ „λ©΄ μž¬μ„€κ³„(Redesign)와 점진적 λ¦¬νŒ©ν† λ§ 쀑 μ–΄λ–€ 볡ꡬ적 쑰치λ₯Ό μ·¨ν• μ§€ νŒλ‹¨ν•˜λŠ” μ•„ν‚€ν…μ²˜μ  기쀀은 무엇인가? - '지식 증발(Knowledge vaporization)'을 λ°©μ§€ν•˜κΈ° μœ„ν•œ 예방적 λ¬Έμ„œν™” μ‘°μΉ˜λ‘œμ„œ μ•„ν‚€ν…μ²˜ κ²°μ • 기둝(ADR)μ΄λ‚˜ 기타 지식 관리 기법은 μ‹€λ¬΄μ—μ„œ μ–΄λ–»κ²Œ ν”„λ‘œμ„ΈμŠ€ν™”λ  수 μžˆλŠ”κ°€? - μ•„ν‚€ν…μ²˜ 침식을 νƒμ§€ν•˜λŠ” 4κ°€μ§€ 방식(일관성 기반, μ§„ν™” 기반, 결함 기반, κ²°μ • 기반)의 핡심 μ›λ¦¬λŠ” 각각 무엇이며, μ–΄λ–€ ν”„λ‘œμ νŠΈ ν™˜κ²½μ—μ„œ 각 방식이 κ°€μž₯ νš¨κ³Όμ μΈκ°€? - λΉ λ₯Έ κΈ°λŠ₯ μΆœμ‹œκ°€ μ΅œμš°μ„ μΈ μ• μžμΌ(Agile) 방법둠 ν•˜μ—μ„œ, μ•„ν‚€ν…μ²˜ 침식을 μ˜ˆλ°©ν•˜κΈ° μœ„ν•œ μ½”λ“œ 리뷰와 μžλ™ν™” ν…ŒμŠ€νŠΈλ₯Ό μ–΄λŠ μˆ˜μ€€μœΌλ‘œ νƒ€ν˜‘(Trade-off)ν•˜λŠ” 것이 κ°€μž₯ 이상적인가? ### Practical Application Contexts - **Implementation:** κ°œλ°œμžλŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ 정적 μ½”λ“œ 뢄석 도ꡬλ₯Ό CI/CD νŒŒμ΄ν”„λΌμΈμ— ν†΅ν•©ν•˜μ—¬, μžμ‹ μ˜ μ½”λ“œκ°€ μ•„ν‚€ν…μ²˜ κ·œμΉ™μ„ μœ„λ°˜ν•˜κ³  침식을 μœ λ°œν•˜λŠ”μ§€ μžλ™μœΌλ‘œ 검증받아야 ν•©λ‹ˆλ‹€. - **System Design:** μ•„ν‚€ν…μ²˜ 섀계 λ‹¨κ³„μ—μ„œλŠ” μ»΄ν¬λ„ŒνŠΈ κ°„μ˜ μ˜μ‘΄μ„±μ„ λͺ…ν™•νžˆ μ •μ˜ν•˜κ³ , κ΅¬ν˜„μ΄ 섀계 μ˜λ„μ—μ„œ λ²—μ–΄λ‚˜μ§€ μ•Šλ„λ‘ 'μ•„ν‚€ν…μ²˜ 적합성 검사(Conformance checks)' κ·œμΉ™μ„ μ„ μ œμ μœΌλ‘œ λ””μžμΈν•΄μ•Ό ν•©λ‹ˆλ‹€. - **Operation / Maintenance:** μ‹œμŠ€ν…œ 운영 μ€‘μ—λŠ” λ³€κ²½ 사항이 λˆ„μ λ¨μ— 따라 기술 뢀채가 λ°œμƒν•˜λ―€λ‘œ, 주기적인 λ¦¬νŒ©ν† λ§ 및 λ¬Έμ„œ μ—…λ°μ΄νŠΈλ₯Ό μˆ˜ν–‰ν•˜λŠ” '볡ꡬ적 쑰치(Remedial measures)'λ₯Ό μŠ€ν”„λ¦°νŠΈμ— ν¬ν•¨μ‹œμΌœμ•Ό ν•©λ‹ˆλ‹€. λ…Έν›„ν™”λœ μ‹œμŠ€ν…œμ€ 'μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 볡ꡬ' κΈ°μˆ μ„ ν™œμš©ν•΄ λΆ„μ„ν•©λ‹ˆλ‹€. - **Learning Path:** μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜μ˜ κΈ°λ³Έ νŒ¨ν„΄μ„ 읡힌 ν›„, μ‹œμŠ€ν…œ μ§„ν™” κ³Όμ •μ—μ„œ ν•„μ—°μ μœΌλ‘œ κ²ͺ게 λ˜λŠ” μ•„ν‚€ν…μ²˜ μ•ˆν‹°νŒ¨ν„΄(Anti-patterns) 및 μœ μ§€λ³΄μˆ˜μ˜ ν•œκ³„ ν˜„μƒμœΌλ‘œμ„œ 'μ•„ν‚€ν…μ²˜ 침식'의 생λͺ…μ£ΌκΈ° 관리 κΈ°μˆ μ„ ν•™μŠ΅ν•˜κ²Œ λ©λ‹ˆλ‹€. - **My Project Relevance:** ν˜„μž¬ μœ μ§€λ³΄μˆ˜ 쀑인 ν”„λ‘œμ νŠΈμ˜ μ½”λ“œκ°€ λ³΅μž‘ν•΄μ Έ κ°„λ‹¨ν•œ μˆ˜μ •μ—λ„ 버그가 μž¦μ•„μ§„λ‹€λ©΄, μ΄λŠ” μ•„ν‚€ν…μ²˜ 침식이 μƒλ‹Ήνžˆ μ§„ν–‰λ˜μ—ˆλ‹€λŠ” μ‹ ν˜Έμ΄λ―€λ‘œ 즉각적인 원인 뢄석(결함 기반, μ§„ν™” 기반)κ³Ό λ¦¬νŒ©ν† λ§ κ³„νšμ„ μˆ˜λ¦½ν•˜λŠ” κΈ°μ€€μœΌλ‘œ 삼을 수 μžˆμŠ΅λ‹ˆλ‹€. ### Adjacent Topics - [[μ• μžμΌ μ†Œν”„νŠΈμ›¨μ–΄ 개발과 μ•„ν‚€ν…μ²˜ (Agile Software Development and Architecture)]] - ν™•μž₯ λ°©ν–₯: μ• μžμΌ 개발의 νŠΉμ„±μΈ 반볡적이고 λΉ λ₯Έ 변경이 μ•„ν‚€ν…μ²˜ 침식을 μœ λ°œν•  수 μžˆλ‹€λŠ” μš°λ €κ°€ μ‘΄μž¬ν•˜λ―€λ‘œ, 초기 섀계(Up-front design)와 민첩성 μ‚¬μ΄μ˜ νŠΈλ ˆμ΄λ“œμ˜€ν”„ κ· ν˜•μ„ λ§žμΆ”λŠ” ꡬ체적인 방법둠(예: DSDM)을 μΆ”κ°€λ‘œ 쑰사할 수 μžˆμŠ΅λ‹ˆλ‹€[4]. - [[μ•„ν‚€ν…μ²˜ κ²°μ • 기둝 (Architecture Decision Records, ADR)]] - ν™•μž₯ λ°©ν–₯: μΉ¨μ‹μ˜ 원인인 '지식 증발' ν˜„μƒμ„ 근본적으둜 ν•΄κ²°ν•˜κΈ° μœ„ν•΄, μ•„ν‚€ν…μ²˜μ˜ 초기 μ˜λ„μ™€ νƒ€ν˜‘μ μ„ 좔적 κ°€λŠ₯ν•˜κ²Œ κ΄€λ¦¬ν•˜λŠ” λ¬Έμ„œν™” ν”„λ ˆμž„μ›Œν¬μΈ ADR의 λ„μž… λ°©μ•ˆμ„ 심도 있게 탐ꡬ할 수 μžˆμŠ΅λ‹ˆλ‹€. --- *Last updated: 2026-05-02*