결함 fault
- 설계와 다른 동작
결함 관리 프로세스
1. 결함 관리 계획
2. 결함 기록 : 결함 DB에 등록
3. 결함 검토 : 개발자에 전달
4. 결함 수정
5. 결함 재확인
6. 결함 상태 추적 및 모니터링
7. 최종 결함 분석 및 보고
결함 추적 순서
1. 결함 등록
2. 결함 검토 : 담당자 검토
3. 결함 할당
4. 결함 수정
5. 결함 보류
6. 결함 종료
7. 결함 해제
결함 분류
- 시스템 결함 : 어플리케이션이나 DB 처리 중 발생 결함
- 기능 결함 : 요구사항 불일치, 프로세스 중 오류
- GUI 결함
- 문서 결함
결함 관리 도구
- mantis : 결함 및 이슈 관리 도구
- trac : 결함 추적
- redmine : 프로젝트 관리 및 결함 추적
어플리케이션 성능 지표
- 처리량
- 응답 시간
- 경과 시간
- 자원 사용률
- 분석을 위해 성능 테스트 도구와 시스템 모니터링 도구 이용
성능 테스트 도구
- JMeter : 다양한 프로토콜 지원하는 부하 테스트 도구
- LoadUI : 편리한 부하 테스트 도구
성능 분석 절차
1. 성능 테스트, 시스템 모니터링 도구 특징 파악
2. 성능 점검 계획서 작성
3. 테스트 케이스 작성
4. 테스트 수행
5. 테스트 결과 분석
6. 저하 요인 분석
소스코드 최적화
- 클린 코드 : 이해하기 좋은 코드
- 나쁜 코드 : 로직이 복잡하고 이해하기 힘든 코드
- 클린 코드 작성원칙 : 가독성, 단순성, 의존 성 배제, 중복성 최소화, 추상화
소스 코드 최적화 유형
- 클래스 분할 배치 : 하나의 클래스는 하나의 역활. 응집도 높이고 크기 작게
- 느슨한 결합 : 인터페이스로 추상화 된 자료구조와 메소드 구현으로 의존성 최소화
- 코딩 형식 준수 : 줄바꿈, 지역변수 맨앞 선언, 호출 함수 앞 호출 되는 함수 뒤
- 적절한 이름과 주석
소스코드 품질 분석
- 정적 분석 : 실행 x. 코딩 표준, 스타일, 결함, 의존성, 복잡성 등 분석
- pmd : 미사용 변수 최적화안된 코드 검사
- cppcheck :: 메모리 누수, 오버플로 분석
- com : 코드 복잡도 분석
- 동적 분석 도구 : 실행 o. 메모리 누수, 스레드 결함 분석
- valgrint : 메모리, 스레드 결함 분석
성능 개선
- 소스 코드 최적화 : 인터페이스로 의존성 최소화 코드 작성
- 아키텍처 조정 : 팩토리 메소드 패턴으로 객체 생성과 사용 분리
- 호출 순서 조정 : 유사 코드는 가까이, 함수 호출은 앞에, 함수 정의 및 구현은 뒤에