feat: Wiki 지식 자산 업데이트 - UX Scenarios, Frontend, Game Design, Topics 추가 [2026-05-08]

This commit is contained in:
2026-05-08 19:52:07 +09:00
parent 9dd3d40662
commit 5ba5a55c78
3984 changed files with 334557 additions and 28839 deletions
@@ -1,16 +1,29 @@
---
category: Unified
id: wiki-2026-0508-static-and-dynamic-analysis
title: Static and Dynamic Analysis
category: 10_Wiki/Topics
status: needs_review
canonical_id: self
aliases: []
duplicate_of: none
source_trust_level: A
confidence_score: 0.92
tags: [auto-consolidated, technical-documentation]
title: [[정적 및 동적 분석 방법론 (Static and Dynamic Analysis)]]
last_updated: 2026-05-02
raw_sources: []
last_reinforced: 2026-05-08
github_commit: pending
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
tech_stack:
language: unspecified
framework: unspecified
---
# [[정적 및 동적 분석 방법론 (Static and Dynamic Analysis)]]
## 📌 Brief Summary
## 📌 한 줄 통찰 (The Karpathy Summary)
정적 분석과 동적 분석은 복잡한 소프트웨어 시스템의 코드베이스를 해독하고 결함을 식별하기 위한 두 가지 핵심 방법론입니다. 정적 분석은 코드를 실행하지 않은 상태에서 소스 코드의 구조, 구문, 보안 취약점 등을 검사하여 문제를 조기에 발견합니다 [1, 2]. 동적 분석은 코드를 실제로 실행하면서 런타임 오류, 메모리 누수, 호출 스택 및 실시간 변수 변화 등 정적 독해만으로는 파악하기 힘든 시스템의 동적인 특성을 추적하고 파악하는 데 사용됩니다 [2, 3].
## 📖 Core Content
## 📖 구조화된 지식 (Synthesized Content)
* **정적 분석 (Static Analysis):**
* 애플리케이션을 실행하지 않고 휴지(Rest) 상태의 소스 코드를 스캔하여 정의되지 않은 변수, 코딩 비효율성, 보안 취약점(SAST) 등을 식별합니다 [1, 2].
* 개발 주기의 초기 단계에서 버그와 위험을 발견함으로써, 개발자가 더 깨끗한 코드를 작성하고 배포 후의 높은 수정 비용과 보안 침해 위험을 줄이는 데 기여합니다 [1, 4].
@@ -24,12 +37,12 @@ last_updated: 2026-05-02
* **코드베이스 이해를 위한 하이브리드 활용:**
* 새로운 코드베이스나 복잡한 레거시 코드를 읽을 때, 정적인 코드 분석과 문서 읽기를 바탕으로 시스템의 전반적인 구조를 파악하고, 의도적으로 시스템에 잘못된 입력을 주입해 스택 트레이스(Stack Trace)를 관찰하거나 테스트 코드를 수정해가며 시스템의 반응을 살펴보는 동적, 실험적 접근을 결합하는 것이 효과적입니다 [12, 13]. 최신 DevSecOps 워크플로우에서는 두 방식을 결합한 하이브리드 접근법을 채택하기도 합니다 [1].
## Trade-offs & Caveats
## 모순 및 업데이트 (Contradictions & Updates)
* **오탐지(False Positives)와 개발자 피로도:** 정적 분석 도구는 코드 실행 없이 패턴을 검사하므로 실제로는 안전하거나 의도된 코드도 취약점이나 오류로 잘못 식별(False Positive)할 수 있습니다 [14]. 규칙의 질과 설정에 따라 오탐률이 높아지면 개발자의 피로도를 높이고 신뢰를 떨어뜨리며 튜닝 작업에 많은 시간을 소모하게 됩니다 [8, 14].
* **동적 분석의 환경 구성 제약:** 동적 분석은 애플리케이션을 실제로 실행할 수 있는 상태여야 하므로, 복잡한 분산 시스템이나 특정 데이터베이스 종속성이 얽힌 대규모 레거시 환경에서는 코드를 실행하고 테스트할 수 있는 로컬 환경이나 디버깅 환경을 설정하는 것 자체가 큰 진입 장벽이 될 수 있습니다 [3, 15].
* **성능에 미치는 영향:** 파이프라인에 지나치게 무거운 분석 툴을 통합하면 빌드와 배포 시간이 느려져 개발 속도(Velocity)를 저하시킬 위험이 있습니다. 분석 도구가 가볍지 않다면 실시간 검사보다는 예약된 스캔 형태로 타협점을 찾아야 합니다 [16].
## 🔗 Knowledge Connections
## 🔗 지식 연결 (Graph)
- [[Codebase_Onboarding_Guide]]: 분석 기술을 활용해 시스템을 빠르게 파악하는 절차.
- [[SAST_vs_DAST]]: 보안 관점에서의 정적/동적 분석 비교.
- [[Behavioral_Code_Analysis]]: 코드 변경 이력과 분석 데이터를 결합한 고도화된 기법.
@@ -103,4 +116,47 @@ last_updated: 2026-05-02
## 🧪 검증 상태 (Validation)
- **정보 상태**: 검증 완료 (Verified)
- **출처 신뢰도**: A
- **검토 이유**: 코드 품질 확보와 아키텍처 이해를 위한 엔지니어링 분석 표준 정립.
- **검토 이유**: 코드 품질 확보와 아키텍처 이해를 위한 엔지니어링 분석 표준 정립.
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
**언제 이 지식을 쓰는가:**
- *(TODO)*
**언제 쓰면 안 되는가:**
- *(TODO)*
## 🧬 중복 검사 (Duplicate Check)
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
- **처리 방식:** UPDATE (자동 정규화)
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
## 🕓 변경 이력 (Changelog)
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|------|-----------|-----------|--------|
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
## 💻 코드 패턴 (Code Patterns)
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
```text
# TODO
```
## 🤔 의사결정 기준 (Decision Criteria)
**선택 A를 써야 할 때:**
- *(TODO)*
**선택 B를 써야 할 때:**
- *(TODO)*
**기본값:**
> *(TODO)*
## ❌ 안티패턴 (Anti-Patterns)
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*