자격증/2020 정보처리기사 필기

2020 정보처리기사 필기 - 2.4 애플리케이션 테스트 관리(3)

지식냠냠 2020. 4. 17. 15:07
반응형



▶ 058 애플리케이션 성능 분석



애플리케이션 성능

- 애플리케이션 성능 측정 지표 : 처리량, 응답시간, 경과 시간, 자원 사용률

- 애플리케이션의 성능 분석 도구 분류 : 성능 테스트 도구, 시스템 모니터링 도구 



성능 테스트 도구

애플리케이션에 부하나 스트레스를 가하면서 성능 측정 지표를 점검하는 도구

- JMeter : HTTP, FTP 등 다양한 프로토콜을 지원하는 부하 테스트 도구

- LoadUI : 서버 모니터링, Drag&Drog 등 사용자의 편리성이 강화된 부하 테스트 도구

- OpenSTA : HTTP, HTTPS 프로토콜에 대한 부하 테스트 및 생산품 모니터링



시스템 모니터링 도구

애플리케이션이 실행되었을 때 시스템 자원의 사용량을 확인 및 분석하는 도구

- Scouter : 단일 뷰 통합/실시간 모니터링, 튜닝에 최적화된 인프라 통합 모니터링 도구

- Zabbix : 웹기반 서버, 서비스, 애플리케이션 등의 모니터링 도구



애플리케이션 성능 저하 원인 분석

- DB에 필요 이상의 많은 데이터를 요청한 경우

- DB의 락이 해제되기를 기다리면서 애플리케이션이 대기하거나 타임아웃된 경우

- 커넥션 풀(Connection Pool)의 크기를 너무 작거나 크게 설정한 경우

- 연결 누수(Connection Leak)가 발생한 경우

- 불필요한 Commit이 자주 발생하는 경우

- 대량의 파일을 업로드, 다운로드하는 경우

- 트랜잭션 처리 중 외부 호출이 장시간 수행 또는 타임아웃된 경우

- 데이터 손실이 발생한 경우



▶ 059 애플리케이션 성능 개선



소스 코드 최적화

나쁜 코드 배제, 클린 코드로 작성

- 클린 코드 작성 원칙 : 가독성, 단순성, 의존성 배제, 중복성 최소화, 추상화



소스 코드 최적화 유형

- 클래스 분할 배치 : 하나의 클래스는 하나의 역할만 수행하도록 응집도 높임, 크기를 작게 작성

- 느슨한 결합 : 클래스 간의 의존성 최소화

- 코딩 형식 준수 : 

줄 바꿈 사용, 

개념적 유사성이 높은 종속 함수 사용, 

호출 함수 선배치/호출 되는 함수 후배치, 

지역 변수는 각 함수의 맨처음에 선언

- 좋은 이름 사용

- 적절한 주석문 사용



소스 코드 품질 분석 도구

정적 분석 도구

작성한 소스 코드를 실행하지 않고 코딩 표준이나, 코딩 스타일, 결함 등을 확인하는 코드 분석 도구

- 동적 분석 도구로는 발견현하기 어려운 결함 찾아냄

- 코딩의 복잡도, 모델의 의존성, 불일치성 등 분석

- 종류 : pmd, cppcheck, SonarQube 등

동적 분석 도구

작성한 소스 코드를 실행해 코드에 존재하는 메모리 누수, 스레드 결함 등 분석

- 종류 : Avalanche, Valgrind 등


반응형