nickmorohe 2024. 4. 23. 18:51

1. 소스 코드 최적화

나쁜 코드를 배제, 클린 코드로 작성

 

* 클린 코드 : 누구나 쉽게 이해하고 수정 및 추가할 수 있는 단순, 명료한 코드

 

* 나쁜 코드 : 로직 이 복잡하고 이해하기 어려운 코드, 스파게티 코드, 외계인 코드

 

* 스파게티 코드 : 코드 로직이 서로 복잡하게 얽혀 있는 코드

* 외계인 코드 : 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 코드

 

2. 클린 코드 작성 원칙

가독성, 단순성, 의존성 배제, 중복성 최소화, 추상화

 

3. 소스 코드 최적화 유형

(1) 클래스 분할 배치 : 하나의 클래스는 하나의 역할만 수행하도록 응집도를 높이고, 크기를 작게 작성함

(2) 느슨한 결함(Loosely Coupled): 인터페이스 클래스를 이용하여 추상화된 자료 구조와 메소드를 구현함으로써 클래스 간의 의존성을 최소화 함

 

4. 소스 코드 품질 분석 도구

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

 

* 정적 분석 도구(Static Analysis)

- 작성한 소스 코드를 실행하지 않고 코딩 표준, 코딩 스타일, 결함 등을 확인하는 코드 분석 도구

- 종류 : pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura 등

 

* 동적 분석 도구(Dynamic Analysis)

- 작성한 소스 코드를 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석하는 도구

- 종류 : Avalanche, Valgrind 등

 

5. 소스 코드 품질 분석 도구의 종류

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

 

 

출처 :  정보처리기사 실기 2024 기본서 / 저자 : 길벗알앤디(김정준, 강윤석, 김용갑, 김우경)  / 출판사 : 길벗