[2과목-4장-059] 애플리케이션 성능 개선
* 소스 코드 최적화
: 나쁜 코드 배제, 클린 코드로 작성하는 것
- 클린 코드 (Clean Code): 단순, 명료한 코드. 잘 작성된 코드
- 나쁜 코드 (Bad Code): 로직이 복잡, 이해하기 어려운 코드. 스파게티 코드, 처리 로직 중복 작성된 코드가 해당됨
- 나쁜 코드 > 수정 > 애플리케이션 성능 개선된다.
- 클린 코드 작성 원칙
1) 가독성
- 쉽게 읽을 수 있도록 작성
2) 단순성
- 간단히 작성
- 한 번에 한 가지 처리하도록 최소 단위로 분리
3) 의존성 배제
- 다른 모듈에 미치는 영향 최소화
- 코드 변경 시 다른 부분에 영향 없도록 작성
4) 중복성 최소화
- 중복 최소화
- 공통된 코드 사용
5) 추상화
- 상위 함수 > 애플리케이션 특성 / 하위 함수 > 상세 내용 구현
- 유형
1) 클래스 분할 배치
: 하나의 클래스는 하나의 역할만 수행하도록 응집도 높이고 크기 작게 작성
2) 느슨한 결합(Loosely Coupled)
: 인터페이스 클래스 이용하여 추상화된 자료구조와 메소드 구현 > 의존성 최소화
3) 코딩 형식 준수
(1) 줄 바꿈 사용
(2) 개념적 유사성 높은 종속 함수 사용
(3) 호출 함수 - 선배치 / 호출되는 함수 - 후배치
(4) 지역 변수는 각 함수 맨 처음에 선언
4) 좋은 이름 사용
: 명명 규칙 정의
5) 적절한 주석문 사용
** 소스코드 품질 분석 도구
: 소스코드 코딩 스타일, 코딩 표준, 복잡도, 메모리 누수 현상, 스레드 결함 등을 발견하기 위해 사용하는 분석 도구
1) 정적 분석 도구
- 개발 초기 결함 찾는 데 사용.
- 개발 완료 시점 > 개발된 소스코드의 품질 검증 차원
- 동적 분석 도구로 발견하기 어려운 결함 찾아냄.
- 복잡도, 모델 의존성, 불일치성 분석 가능
*** 종류
(1) pmd: 결함 유발 가능 코드 검사
(2) cppcheck: C/C++ 에 대한 메모리 누수, 오버플로우 분석
(3) SonarQube: 중복 코드, 복잡도, 코딩 설계 등 분석
(4) checkstyle: 자바에 대해 소스코드 표준 따르는지 검사
(5) ccm: 다양한 언어 복잡도 분석
(6) cobertura: 자바 복잡도 분석 및 테스트 커버리지 측정
2) 동적 분석 도구
- 메모리 누수, 스레드 결함 등 분석 가능
*** 종류
(1) Avalanche
- Valgrind 프레임워크 및 STP 기반 구현
- 결함 및 취약점 분석
(2) Valgrind: 메모리 및 쓰레드 결함 등 분석
'정보처리기사 > 필기' 카테고리의 다른 글
[2과목-5장-061] 모듈 연계를 위한 인터페이스 기능 식별 (0) | 2020.04.26 |
---|---|
[2과목-5장-060] 모듈 간 공통 기능 및 데이터 인터페이스 확인 (0) | 2020.04.26 |
[2과목-4장-058] 애플리케이션 성능 분석 (0) | 2020.04.26 |
[2과목-4장-057] 결함 관리 (0) | 2020.04.25 |
[2과목-4장-056] 테스트 자동화 도구 (0) | 2020.04.25 |
댓글