50 lines
3.1 KiB
Markdown
50 lines
3.1 KiB
Markdown
---
|
|
id: P-REINFORCE-WIKI-DEV-ANALYSIS-HYBRID
|
|
title: "정적 및 동적 분석 방법론 (Static and Dynamic Analysis)"
|
|
category: Unified
|
|
status: verified
|
|
canonical_id: ""
|
|
aliases: ["정적 분석", "동적 분석", "SAST", "런타임 분석", "코드 분석"]
|
|
duplicate_of: ""
|
|
source_trust_level: A
|
|
confidence_score: 1.0
|
|
tags: ["Code_Analysis", "Static_Analysis", "Dynamic_Analysis", "Debugging", "Code_Quality"]
|
|
raw_sources: ["Datacollector_Export_2026-05-02"]
|
|
last_reinforced: 2026-05-02
|
|
github_commit: ""
|
|
---
|
|
|
|
# [[정적 및 동적 분석 방법론 (Static and Dynamic Analysis)]]
|
|
|
|
## 1. 개요
|
|
소프트웨어 시스템을 해독하고 품질을 확보하기 위해서는 코드를 실행하지 않고 분석하는 **정적 분석**과 실제로 실행하며 관찰하는 **동적 분석**의 상호보완적 활용이 필수적이다. 정적 분석은 구조와 잠재적 결함을 조기에 식별하며, 동적 분석은 실제 런타임 동작과 복잡한 제어 흐름을 명확히 한다.
|
|
|
|
## 2. 정적 분석 (Static Analysis)
|
|
- **정의**: 코드를 실행하지 않은 상태(Rest)에서 소스 코드의 구문, 구조, 보안 취약점 등을 스캔.
|
|
- **핵심 가치**: 개발 초기 단계에서 버그 발견, 코딩 표준 준수 강제, 보안 취약점(SAST) 조기 차단.
|
|
- **주요 도구**: SonarQube, ESLint, Checkmarx, 정적 의존성 분석 도구.
|
|
|
|
## 3. 동적 분석 (Dynamic Analysis)
|
|
- **정의**: 애플리케이션을 실제로 실행하면서 발생하는 런타임 행위와 데이터 흐름을 추적.
|
|
- **핵심 가치**: 메모리 누수 탐지, 호출 스택(Call Stack) 분석, 실제 변수 상태 관찰, 성능 병목 구간(Profiling) 식별.
|
|
- **주요 기법**: 디버깅(중단점 활용), 로그 분석, 런타임 프로파일링, 분산 트레이싱.
|
|
|
|
## 4. 실전 활용: 하이브리드 접근 (Hybrid Approach)
|
|
1. **정적 파악**: 아키텍처 다이어그램과 소스 코드 구조를 통해 시스템의 전체 지형 파악.
|
|
2. **동적 검증**: 주요 진입점(Entry Point)에 중단점을 설정하고 실제 데이터를 흘려보내며 코드의 반응과 흐름을 역추적.
|
|
3. **실험적 수정**: 테스트 코드를 수정하거나 의도적으로 예외를 발생시켜 시스템의 예외 처리 로직과 복구 메커니즘 검증.
|
|
|
|
## 5. 트레이드오프
|
|
- **정적 분석**: 오탐지(False Positives)로 인한 개발자 피로도 발생 가능. 실행 환경이 불필요하여 도입이 쉬움.
|
|
- **동적 분석**: 실행 가능한 환경 구축(로컬 셋업 등)에 비용 소요. 실제 동작을 보장하므로 신뢰도가 높음.
|
|
|
|
## 6. 지식 연결 (Related)
|
|
- [[Codebase_Onboarding_Guide]]: 분석 기술을 활용해 시스템을 빠르게 파악하는 절차.
|
|
- [[SAST_vs_DAST]]: 보안 관점에서의 정적/동적 분석 비교.
|
|
- [[Behavioral_Code_Analysis]]: 코드 변경 이력과 분석 데이터를 결합한 고도화된 기법.
|
|
|
|
## 🧪 검증 상태 (Validation)
|
|
- **정보 상태**: 검증 완료 (Verified)
|
|
- **출처 신뢰도**: A
|
|
- **검토 이유**: 코드 품질 확보와 아키텍처 이해를 위한 엔지니어링 분석 표준 정립.
|