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 기본서 / 저자 : 길벗알앤디(김정준, 강윤석, 김용갑, 김우경) / 출판사 : 길벗
'정보처리기사 실기 > 애플리케이션 테스트 관리' 카테고리의 다른 글
복잡도 (0) | 2024.04.23 |
---|---|
애플리케이션 성능 분석 (0) | 2024.04.23 |
결함 관리 (0) | 2024.04.23 |
테스트 자동화 도구 (0) | 2024.04.23 |
테스트 케이스/ 테스트 시나리오/ 테스트 오라클 (1) | 2024.04.23 |