※본 내용은 스스로 공부하며 중요하다고 생각하는 부분만 정리한 내용입니다.
공부 서적(시나공 정보처리기사 필기책)
출처: 시나공 정보처리기사 실기
저자: 김정준,강윤석,김용갑,김우경
출판사 : 길벗
애플리케이션 성능 개선
소스 코드 최적화
- 나쁜 코드를 배제하고 클론코드로 작성하는 것
- 클린 코드 : 누구나 쉽게 이해/수정/추가 할 수 있는 단순하고 명료한 코드, 잘 작성된 코드
- 나쁜 코드 : 로직이 복잡하고 이해하기 어려운 코드, 스파게티 코드(로직이 얽힘)/외계인 코드(유지보수 어려움)
- 나쁜 코드 작성된 것을 클린 코드로 변경시 애플리케이션 성능 개선
클린 코드 작성 원칙
- 가독성 : 누구든지 코드를 쉽게 읽을 수 있도록, 쉬운 용어/들여쓰기
- 단순성 : 코드를 간단하게 작성, 클래스/메소드/함수 등 최소 단위로 분리
- 의존성 배제 : 다른 모듈에 미치는 영향 최소화, 코드 변경시 다른 부분 영향 X
- 중복성 최소화 : 코드의 중복 최소화, 공통된 코드 사용
- 추상화 : 상위 클래스/메소드/함수에는 간략하게 특성만, 상세 내용은 하위 클래스/메소드/함수에서 구현
소스코드 최적화 유형
- 클래스 분할 배치 : 하나의 클래스는 하나의 역할만 수행, 응집도 높이고 크기를 작게
- 느슨한 결합 : 인터페이스 클래스 이용하여 추상화된 자료 구조와 메소드를 구현으로 의존성 최소화
소스 코드 품질 분석 도구
- 정적 분석 도구 : 소스 코드 실행하지 않고 코딩 표준/스타일/결함 등을 확인
- pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura 등
- 동적 분석 도구 : 소스 코드 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등 분석
- Avalanche, Valgrind 등
소스 코드 품질 분석 도구의 종류
- 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
'정보처리기사' 카테고리의 다른 글
정보처리기사 실기(SQL 응용) SQL - DCL (0) | 2022.03.30 |
---|---|
정보처리기사 실기(SQL 응용) SQL - DDL (0) | 2022.03.30 |
정보처리기사 실기(애플리케이션 테스트 관리) 복잡도 (0) | 2022.03.27 |
정보처리기사 실기(애플리케이션 테스트 관리) 애플리케이션 성능 분석 (0) | 2022.03.27 |
정보처리기사 실기(애플리케이션 테스트 관리) 결함 관리 (0) | 2022.03.27 |
댓글