반응형
해당 게시글은 정보처리기사-실기 시험 Chapter 10.[애플리케이션 테스트 관리]의 용어 관련 개념정리 요약글(2)이다.
애플리케이션 성능 개선
▶ 애플리케이션 성능 측정 지표
- 처리량(Throughput) : 일정 시간 내에 애플리케이션이 처리할 수 있는 일의 양
- 응답 시간(Response Time) : 사용자 입력이 끝난 후, 애플리케이션의 응답이 시작 될 때까지의 시간
- 경과 시간(Turnaround Time) : 작업의뢰 시점부터 트랜잭션을 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간
- 자원 사용률(Resource Usage) : 사용하는 CPU, 메모리, 네트워크 사용량
▶ 애플리케이션 성능 분석 도구
- 성능 테스트 도구 : 성능 측정 지표 점검 - JMeter, Load UI
- 시스템 모니터링 도구 : 시스템 자원 사용량 확인 - *스카우터
* 스카우터 : 애플리케이션 및 OS 자원에 대한 모니터링 기능을 제공하는 SW
▶ 데이터베이스 성능 저하 원인
- 데이터베이스 락 : 대량의 데이터 조회, 과도한 업데이트 시 발생하는 현상
- 불필요한 데이터베이스 패치 : 대량의 데이터 요청이 들어올 경우 응답시간 저하 현상 발생
- 연결 누수 : DB연결과 관련한 JDBC 객체를 사용 후 종료하지 않을 경우
- 부적절한 커넥션 풀 크기 : 너무 작거나 크게 설정한 경우
▶ 소스 코드 최적화
베드 소스 코드를 배제하고, 클린 코드로 작성하는 것
▷클린 코드 : 잘 작성되어 가독성 높고, 단순하며, 의존성을 줄이고, 중복을 최소화해 잘 정리된 코드클린
- 가독성
- 단순성
- 의존성 배제 : 다른 모듈에 미치는 영향을 최소화
- 중복성 최소화
- 추상화 : 상위클래스에서는 간략한 기능만 정의, 하위 클래스에서 상세한 구현
▷베드 코드 : 다른 개발자가 로직을 이해하기 어렵게 작성된 코드
- 외계인 코드(Alien Code) : 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 코드
- 스파게티 코드 : 스파게티 모양처럼 코드가 복잡하게 얽혀 풀기 어려운 코드
- 알수 없는 변수명, 로직 중복
▷리팩토링(Refactoring)
: 유지보수 생산성 향상을 목적으로 기능을 변경하지 않고, 복잡한 소스 코드를 수정, 보완해 가용성 및 가독성을 높이는 기법
▶ 소스 코드 품질분석 도구
- 정적 분석도구 : 애플리케이션 실행하지 않고 분석
- pmd : Java 및 타언어 소스 코드에 대한 버그, Dead 코드 분석
- cppcheck : C/C++ 코드에 대한 코딩 표준 검사 도구
- checkstyle : Java 코드에 대한 코딩 표준 검사 도구 - 동적 분석도구 : 애플리케이션 실행하여 소스 코드에 존재하는 메모리 누수 현황 파악 및 스레드 결함 분석
- Valgrind : 자동화된 메모리 및 스레드 결함 발견 분석 도구
- Avalanche : Valgrind, STP 기반 소프트웨어 에러 및 취약점 동적 분석 도구
▶ 시간 복잡도
알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화 한 것
일반적으로 시간 복잡도는 점근 표기법(시간이 아닌, 명령어의 실행 횟수를 표기)을 이용하여 나타냄
▷점근 표기법 종류
- 빅 오 표기법(Big-O Notation) : 알고리즘 실행시간이 최악일 때를 표기
- 빅 세타 표기법(Big-Θ Notation) : 알고리즘 실행시간이 평균일 때를 표기
- 빅 오메가 표기법(Big-Ω Notation) : 알고리즘 실행시간이 최상일 때를 표기
▷순환 복잡도 : 논리적인 복잡도를 측정하기 위한 소프트웨어의 척도
* 맥케이브 순환도(McCabe's Cyclomatric) = 맥케이브 복잡도 매트릭(McCabe's Complexity Metrics)
순환 복잡도 = 화살표 수 - 노드 수 + 2
=> V(G) = E - N + 2
728x90
'정보처리기사 실기(개정 후) > 10장. 애플리케이션 테스트 관리' 카테고리의 다른 글
[2023 정보처리기사 실기] 10장. 애플리케이션 테스트 관리 개념정리 요약(2) (0) | 2023.04.14 |
---|---|
[2023 정보처리기사 실기] 10장. 애플리케이션 테스트 관리 개념정리 요약(1) (0) | 2023.04.14 |
댓글