본문 바로가기

정보처리기사 실기/2020 정처기 암기 모음

[2020 정보처리기사 실기 암기] 7-3. 애플리케이션 성능 개선

* 애플리케이션 성능 측정 지표

 - 처리량 : 주어진 시간에 처리할 수 있는 트랜잭션 수, 웹 애플리케이션은 시간당 페이지 수

 - 응답시간 : 사용자 입력 후 애플리케이션 응답 출력 게시될 때까지 시간

 - 경과시간 : 애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션 처리 후 출력 완료까지 걸리는 시간

 - 자원 사용률 : 트랜잭션 처리 중 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량

 

* JMeter : HTTP, FTP, LDAP 등 다양한 프로토콜 지원하는 안전성, 확장성, 부하, 기능 테스트 도구

  LoadUI : UI를 통해 HTTP, JDBC 등 주로 웹서비스 대상으로 서버 모니터링 지원하는 부하테스트 도구

  OpenSTA : HTTP, HTTPS 지원하는 부하 테스트 및 생산품 모니터링 도구

 

* 데이터베이스 관련 성능 저하 원인

  트랜잭션 확정되지 않고 커넥션 풀에 반환될 때 잘못된 코드 작성으로 불필요한 COMMIT 발생

  데이터 베이스 락, 불필요한 데이터베이스 패치, 연결 누수, 부적절한 커넥션 풀 크기

 

* 애플리케이션 성능 테스트 수행 절차

 1) 선정된 성능 테스트 도구 설치 

 2) 테스트 환경 설정

 3) 시나리오 생성 

 4) 성능 테스트 실행 및 모니터링

 

* 나쁜 코드 유형

 - 오염 : 비즈니스 기능 수행 못하는 많은 컴포넌트 존재

 - 문서 부족 : 코드왕 문서가 일치하지 않고, 도메인 지식은 증가하지만 개발자 지식부족 초래

 - 의미 없는 이름 : 함수, 클래스, 컴포넌트 이름이 명확하지 않거나 실제 작동과 불일치

 - 높은 결합도 : 클래스와 컴포넌트 간 데이터와 컨트롤 흐름이 네트워크로 복잡하게 연결

 - 아키텍처 침식 : 아키텍처가 구분되지 ㅇ낳고 여러 솔루션으로 이루어져 아키텍처 상 변형으로 시스템 품질 저하

 

* 클린코드

  가독성 좋고, 단순, 의존성을 줄이고 중복을 최소화하여 깔끔하게 정리된 코드

  유형 : 의미 있는 이름, 간결한 주석, 보기 좋은 배치, 작은 함수, 읽기쉬운 제어 흐름, 오류 처리

 

* 읽기쉬운 제어 흐름

  조건, 루프, 흐름을 통제하는 선언문이 있으면 읽기 어려워서 개선 필요

  IF/ELSE 조건문에서 인수의 순서는 긍정적이고 간단한 내용을 앞쪽에 배치

 

* 정적 분석 도구

  작성된 소스코드는 실행하지 않고 코드 자체만으로 코딩 표준 준수 여부,

  코딩 스타일 적정 여부, 잔존 결함 여부를 확인하는 코드 분석 도구

 

* 애플리케이션 성능 개선 방안

  소스 코드 최적화 기법 적용, 아키텍처 조정을 통한 성능 개선, 프로그램 호출 순서 조정 적용

  메모리 사용 최소화 적용, 입출력 발생 최소화 적용, system.out.println()을 사용 제외, 애플리케이션 성능 현황 관리