--- id: P-REINFORCE-WIKI-6B819939 category: Unified confidence_score: 0.95 tags: ['static-code-analysis', 'architecture-erosion', 'architecture-recovery', 'software-intelligence', 'automated-architecture-conformance-checks', 'software-engineering'] last_reinforced: 2026-05-02 --- # [[Static Code Analysis]] ## πŸ“Œ Brief Summary 정적 μ½”λ“œ 뢄석(Static Code Analysis)은 μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜μ˜ μ˜λ„μ™€ μ‹€μ œ κ΅¬ν˜„ μ‚¬μ΄μ˜ 격차가 λ²Œμ–΄μ§€λŠ” 'μ•„ν‚€ν…μ²˜ 침식(Architecture Erosion)' ν˜„μƒμ„ 쑰기에 μ‹λ³„ν•˜κ³  μ™„ν™”ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” μ£Όμš” 도ꡬ 및 기법이닀 [1, 2]. λ˜ν•œ, μ‹œμŠ€ν…œ λ¬Έμ„œκ°€ μ˜€λž˜λ˜κ±°λ‚˜ λΆ€μž¬ν•œ μƒν™©μ—μ„œ κ΅¬ν˜„λœ μ½”λ“œλ₯Ό λ°”νƒ•μœΌλ‘œ μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λ₯Ό 볡ꡬ(Recovery)ν•˜κΈ° μœ„ν•œ 정적 ν”„λ‘œκ·Έλž¨ 뢄석(Static program analysis) κ΄€ν–‰μœΌλ‘œλ„ ν™œμš©λœλ‹€ [3]. ## πŸ“– Core Content * **μ•„ν‚€ν…μ²˜ 침식(Architecture Erosion) μ‘°κΈ° 탐지 및 μ™„ν™”** μ‹œκ°„μ΄ 지남에 따라 μ˜λ„λœ μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜μ™€ μ‹€μ œ κ΅¬ν˜„λœ μ•„ν‚€ν…μ²˜ 사이에 점진적인 격차가 λ°œμƒν•˜λŠ” 것을 μ•„ν‚€ν…μ²˜ 침식이라고 ν•œλ‹€ [1]. 정적 μ½”λ“œ 뢄석 λ„κ΅¬λŠ” μžλ™ν™”λœ μ•„ν‚€ν…μ²˜ μ€€μˆ˜ 검사(automated architecture conformance checks) 및 λ¦¬νŒ©ν† λ§ 기술과 ν•¨κ»˜ μ΄λŸ¬ν•œ μ•„ν‚€ν…μ²˜ 침식을 μ΄ˆκΈ°μ— νŒŒμ•…ν•˜κ³  μ™„ν™”ν•˜μ—¬ μ•„ν‚€ν…μ²˜ μœ„λ°˜μ΄λ‚˜ 기술 λΆ€μ±„μ˜ 좕적을 λ°©μ§€ν•˜λŠ” 데 ν•„μˆ˜μ μΈ 역할을 μˆ˜ν–‰ν•œλ‹€ [2]. * **μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 볡ꡬ(Architecture Recovery)** μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 볡ꡬ(λ˜λŠ” 역곡학)λŠ” κ΅¬ν˜„ 및 μœ μ§€λ³΄μˆ˜ 결정이 초기 μ„€κ³„μ—μ„œ λ²—μ–΄λ‚¬κ±°λ‚˜ μ‹œμŠ€ν…œ λ¬Έμ„œκ°€ ꡬ식이 된 경우, 정보에 μž…κ°ν•œ μ˜μ‚¬ 결정을 내리기 μœ„ν•΄ μˆ˜ν–‰λœλ‹€ [3]. 정적 ν”„λ‘œκ·Έλž¨ 뢄석은 μ†Œν”„νŠΈμ›¨μ–΄ μΈν…”λ¦¬μ „μŠ€(Software intelligence) κ΄€ν–‰μ˜ μΌλΆ€λ‘œμ„œ, μ‚¬μš© κ°€λŠ₯ν•œ κ΅¬ν˜„ μ½”λ“œ λ“±μ˜ μ •λ³΄λ‘œλΆ€ν„° μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ˜ μ•„ν‚€ν…μ²˜λ₯Ό μ„±κ³΅μ μœΌλ‘œ 볡ꡬ해 λ‚΄λŠ” 기술적 μˆ˜λ‹¨μœΌλ‘œ ν™œμš©λœλ‹€ [3]. ## βš–οΈ Trade-offs & Caveats μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. ## πŸ”— Knowledge Connections ### Related Concepts #### [μ•„ν‚€ν…μ²˜ μœ μ§€λ³΄μˆ˜ 및 ν’ˆμ§ˆ 관리] - [[Architecture Erosion]] (μ•„ν‚€ν…μ²˜ 침식) - μ—°κ²° 이유: 정적 μ½”λ“œ 뢄석 도ꡬ가 μ•„ν‚€ν…μ²˜ 침식을 쑰기에 λ°œκ²¬ν•˜κ³  μ™„ν™”ν•˜λŠ” 핡심 예방 μˆ˜λ‹¨μœΌλ‘œ ν™œμš©λ˜κΈ° λ•Œλ¬Έμ΄λ‹€ [2]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 정적 뢄석이 μ‹œμŠ€ν…œ μ„±λŠ₯ μ €ν•˜, μœ μ§€λ³΄μˆ˜ λΉ„μš© 증가, ν’ˆμ§ˆ μ €ν•˜λ₯Ό μœ λ°œν•˜λŠ” μ•„ν‚€ν…μ²˜ 섀계와 κ΅¬ν˜„ κ°„μ˜ 뢈일치λ₯Ό μ–΄λ–»κ²Œ λ°©μ§€ν•˜λŠ”μ§€ 이해할 수 μžˆλ‹€ [1, 2]. #### [μ•„ν‚€ν…μ²˜ 역곡학 및 지식 관리] - [[Architecture Recovery]] (μ•„ν‚€ν…μ²˜ 볡ꡬ) - μ—°κ²° 이유: 정적 ν”„λ‘œκ·Έλž¨ 뢄석이 μ‚¬μš©ν•  수 μžˆλŠ” λ¬Έμ„œκ°€ μ—†λŠ” μƒνƒœμ—μ„œ μ‹œμŠ€ν…œμ˜ κ΅¬ν˜„ μ½”λ“œλ§ŒμœΌλ‘œ μ›λž˜μ˜ μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λ₯Ό λ³΅κ΅¬ν•˜κ³  νŒŒμ•…ν•˜λŠ” 데 μ‚¬μš©λ˜κΈ° λ•Œλ¬Έμ΄λ‹€ [3]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 정적 뢄석을 ν†΅ν•œ μ½”λ“œ 레벨의 좔적이 μ–΄λ–»κ²Œ κ±°μ‹œμ μΈ μ‹œμŠ€ν…œ ꡬ쑰 섀계(μ•„ν‚€ν…μ²˜)λ₯Ό μž¬κ΅¬μ„±ν•˜μ—¬ μ˜μ‚¬κ²°μ •μ„ μ§€μ›ν•˜λŠ”μ§€ 이해할 수 μžˆλ‹€ [3]. ### Deeper Research Questions - 정적 μ½”λ“œ 뢄석 λ„κ΅¬λŠ” μ˜λ„λœ μ•„ν‚€ν…μ²˜μ™€ κ΅¬ν˜„λœ μ•„ν‚€ν…μ²˜ κ°„μ˜ 격차(μ•„ν‚€ν…μ²˜ 침식)λ₯Ό ꡬ체적으둜 μ–΄λ–€ μ½”λ“œ μˆ˜μ€€μ˜ μ§€ν‘œλ₯Ό 톡해 μ‹λ³„ν•˜λŠ”κ°€? - μžλ™ν™”λœ μ•„ν‚€ν…μ²˜ μ€€μˆ˜ 검사(Automated architecture conformance checks)λŠ” 정적 μ½”λ“œ 뢄석과 κ²°ν•©ν•˜μ—¬ μ–΄λ–»κ²Œ μ‹€μ‹œκ°„μœΌλ‘œ μ•„ν‚€ν…μ²˜ μœ„λ°˜μ„ λͺ¨λ‹ˆν„°λ§ν•˜λŠ”κ°€? - λ…Έν›„ν™”λœ λ¬Έμ„œλ§Œ μ‘΄μž¬ν•˜λŠ” λ ˆκ±°μ‹œ μ‹œμŠ€ν…œμ—μ„œ 정적 ν”„λ‘œκ·Έλž¨ 뢄석을 ν™œμš©ν•˜μ—¬ μ•„ν‚€ν…μ²˜λ₯Ό 볡ꡬ할 λ•Œ μ§λ©΄ν•˜λŠ” 기술적 ν•œκ³„λ‚˜ λΆ„μ„μ˜ μ‚¬κ°μ§€λŒ€λŠ” 무엇인가? - 정적 μ½”λ“œ 뢄석을 톡해 μ‹λ³„λœ μ•„ν‚€ν…μ²˜ 침식을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ¦¬νŒ©ν† λ§ 기술(Refactoring techniques)은 μ–΄λ–€ 절차둜 μ μš©λ˜λŠ”κ°€? - 정적 ν”„λ‘œκ·Έλž¨ λΆ„μ„μœΌλ‘œ 볡ꡬ된 μ•„ν‚€ν…μ²˜ λͺ¨λΈμ΄ μ‹œμŠ€ν…œμ˜ λŸ°νƒ€μž„ 및 동적(Dynamic) νŠΉμ„±μ„ νŒŒμ•…ν•˜λŠ” λ°μ—λŠ” μ–΄λ–€ ν•œκ³„λ₯Ό κ°€μ§€λŠ”κ°€? ### Practical Application Contexts - **Implementation:** 개발 κ³Όμ •μ—μ„œ 정적 μ½”λ“œ 뢄석 도ꡬλ₯Ό CI/CD νŒŒμ΄ν”„λΌμΈ 등에 ν†΅ν•©ν•˜μ—¬, μ½”λ“œ μž‘μ„± μ‹œμ λΆ€ν„° μ•„ν‚€ν…μ²˜ κ·œμΉ™ μœ„λ°˜ 및 μ•„ν‚€ν…μ²˜ 침식을 쑰기에 λ°©μ§€ν•  수 μžˆλ‹€ [2]. - **System Design:** λ¬Έμ„œκ°€ μ˜€λž˜λ˜κ±°λ‚˜ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” κΈ°μ‘΄ μ‹œμŠ€ν…œμ„ 기반으둜 μƒˆλ‘œμš΄ 섀계λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•  λ•Œ, 정적 ν”„λ‘œκ·Έλž¨ 뢄석을 톡해 κΈ°μ‘΄ μ‹œμŠ€ν…œμ˜ ꡬ쑰λ₯Ό μΆ”μΆœν•˜κ³  μ•„ν‚€ν…μ²˜λ₯Ό 볡ꡬ할 수 μžˆλ‹€ [3]. - **Operation / Maintenance:** μœ μ§€λ³΄μˆ˜ λ‹¨κ³„μ—μ„œ μ½”λ“œκ°€ μ§€μ†μ μœΌλ‘œ 변경됨에 따라 λ°œμƒν•˜λŠ” μ˜λ„μΉ˜ μ•Šμ€ μ•„ν‚€ν…μ²˜ λ³€ν˜•(Erosion)을 정기적인 정적 뢄석을 톡해 λͺ¨λ‹ˆν„°λ§ν•˜κ³  λ¦¬νŒ©ν† λ§μ˜ 근거둜 ν™œμš©ν•œλ‹€ [1, 2]. - **Learning Path:** μ•„ν‚€ν…μ²˜ νŒ¨ν„΄ 지식을 싀무에 μ μš©ν•˜λŠ” 방법을 ν•™μŠ΅ν•  λ•Œ, μ„€κ³„λœ νŒ¨ν„΄μ΄ μ‹€μ œ μ½”λ“œ λ² μ΄μŠ€μ—μ„œ μ–΄λ–»κ²Œ κ°•μ œλ˜κ³  κ²€μ¦λ˜λŠ”μ§€(정적 뢄석 도ꡬ ν™œμš©)λ₯Ό μ΄ν•΄ν•˜λŠ” λ‹¨κ³„λ‘œ μ—°κ²°λœλ‹€. - **My Project Relevance:** μ‹œκ°„μ΄ μ§€λ‚˜λ©΄μ„œ ν”„λ‘œμ νŠΈ μ½”λ“œλ² μ΄μŠ€κ°€ 본래 μ˜λ„ν–ˆλ˜ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄ κ΅¬μ‘°μ—μ„œ λ²—μ–΄λ‚˜λŠ” 것을 막고, 기술 뢀채λ₯Ό ν†΅μ œν•˜λŠ” ꡬ쑰적 ν’ˆμ§ˆ 검증 λ„κ΅¬λ‘œ λ„μž…ν•  수 μžˆλ‹€ [2]. ### Adjacent Topics - [[Software Intelligence]] - ν™•μž₯ λ°©ν–₯: 정적 ν”„λ‘œκ·Έλž¨ 뢄석을 ν™œμš©ν•œ μ•„ν‚€ν…μ²˜ 볡ꡬ가 ν¬ν•¨λ˜λŠ” μƒμœ„ κ΄€ν–‰μœΌλ‘œ, μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ˜ λ‚΄λΆ€ ꡬ쑰λ₯Ό μ΄ν•΄ν•˜κ³  ν‰κ°€ν•˜λŠ” κ΄‘λ²”μœ„ν•œ λΆ„μ•Όλ‘œ ν™•μž₯이 κ°€λŠ₯ν•˜λ‹€ [3]. - [[Automated Architecture Conformance Checks]] - ν™•μž₯ λ°©ν–₯: 정적 μ½”λ“œ 뢄석 도ꡬ와 ν•¨κ»˜ μ‚¬μš©λ˜μ–΄ μ•„ν‚€ν…μ²˜ 침식을 쑰기에 μ™„ν™”ν•˜λŠ” 또 λ‹€λ₯Έ 핡심 예방 쑰치 κΈ°μˆ λ‘œμ„œ, μžλ™ν™”λœ μ•„ν‚€ν…μ²˜ 검증 νŒŒμ΄ν”„λΌμΈ ꡬ좕에 λŒ€ν•΄ 쑰사할 수 μžˆλ‹€ [2]. --- *Last updated: 2026-05-02*