자격증/정보처리기사 실기 - 기출문제

[정보처리기사 실기] 2022년 1회 10 - 소스 코드 품질 분석 도구

쏠솔랄라 2025. 7. 19. 12:39

 

 

 

10 소스 코드 품질 분석 도구에 대한 다음 설명에서 괄호(①, ②)에 해당하는 용어를 <보기>에서 찾아 쓰시오.

소스 코드 품질 분석 도구는 소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위해 사용하는 분석 도구이다. ㆍ( ① ) 도구는 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석 도구이다. ㆍ( ② ) 도구는 소스 코드를 직접 실행하여 프로그램의 동작이나 반응을 추적하고 보고하는 분석 도구로, 프로그램 모니터링 기능이나 스냅샷 생성 기능들을 포함하고 있다.

 

<보기>

ㆍStatic Analysis ㆍRunning Analysis ㆍTest Execution ㆍPerformance
ㆍDynamic Analysis ㆍTest Control ㆍTest Harness ㆍTest Monitoring

 

 

 

더보기

① Static Analysis

② Dynamic Analysis

 

 

 

해설

 

<소스 코드 품질 분석 도구>

소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위해 사용하는 분석 도구로, 정적 분석 도구와 동적 분석 도구로 나뉨

Static Analysis(정적 분석 도구) - 작성한 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석 도구
- 종류: pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura 등
Dynamic Analysis(동적 분석 도구) - 작성한 코드를 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석하는 도구
- 종류: Avalanche, Valgrind 등

 

정적 분석 도구
pmd 소스 코드에 대한 미사용 변수, 최적화되지 않은 코드 등 결함을 유발할 수 있는 코드를 검사함 Linux, Window
cppcheck C/C++ 코드에 대한 메모리 누수, 오버플로우 등 분석 Windows
SonarQube 중복 코드, 복잡도, 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼 Cross-Platform
checkstyle - 자바 코드에 대해 소스 코드 표준을 따르고 있는지 검사함
- 다양한 개발 도구에 통합하여 사용 가능함
Cross-Platform
ccm 다양한 언어의 코드 복잡도를 분석함 Cross-Platform
cobertura 자바 언어의 소스 코드 복잡도 분석 및 테스트 커버리지를 측정함 Cross-Platform
동적 분석 도구
Avalanche - Valgrind 프레임워크 및 STP 기반으로 구현됨
- 프로그램에 대한 결함 및 취약점 등을 분석함
Linux, Android
Valgrind 프로그램 내에 존재하는 메모리 및 쓰레드 결함 등을 분석함 Cross-Platform