Challenges/정보처리기사

[정보처리기사]2.소프트웨어 개발/인터페이스 구현/애플리케이션 성능 분석, 개선

뚱요 2021. 9. 2. 00:00
반응형

애플리케이션 성능

 

애플리케이션 성능 분석

1) 애플리케이션 성능  20년 1, 2회  #처응경자

  • 처리량(Throughput)         일정 시간 내 애플리케이션이 처리하는 일의 양
  • 응답 시간(Response Time) 애플레이케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간
  • 경과 시간(Turn Around Time) 애플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
  • 자원 사용(Resource Usage) 애플리케이션이 의뢰한 작업을 처리 중 CPU, 메모리, 네트워크 사용량

 

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

- DB에 필요 이상의 많은 데이터를 요청한 경우(과도한 조회, 갱신,데이터베이스 락, 데이터 요성, 데이터베이스 페치)

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

- 연결 Leak : JDBC나 ODBC 같은 미들웨어를 사용한 후 종료하지 않아 연결 누수가 발생한 경우

- 대량의 파일을 업로드하거나 다운로드해 처리 시간이 길어진 경우

3) 성능 테스트 도구

애플리케이션 성능을 테스트하기 위해 부하(Load), 스트레스(Stress)를 가하면서 애플리케이션 성능 측정 지표 점검하는 도구

eg. JMeter, LoadUI, OpensTA

4)시스템 모니터링 도구

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

eg. Scouter, Zabbix

애플리케이션 성능 개선

5.1) 소스 코드 최적화

- 나쁜 코드(Bad Code) 배제, 클린 코드(Clean Code) 작성 원칙

클린코드 : 누구나 쉽게 이해하고 수정, 추가할 수 있는 단순, 명료한 코드

클린코드 작성 원칙 5  :  독성, 순성(최소 단위 분리), 존성 배제(영향 최소화), 복성 최소화, 상화(상위 추상화, 하위 구체화)   

나쁜 코드
1) 외계인코드(Alien Code)
  20년 1, 2회 기출
 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 코드
2) 스파게티 코드
코드 로직이 서로 복잡하게 얽혀있는 코드

 

6) 소스 코드 품질분석 도구의 종류  20년 1, 2회 기출

소스 코드의 코딩 스타일, 설정된 코딩 표준, 복잡도, 메모리 누수 현상, 스레드 결합 등을 발견하기 위해 사용

(1) 정적 분석 도구: pmd, cppcheck, checkstyle, SonarQube, ccm, cobertuna

(2) 동적 분석 도구: Avalanche, Valgrind

 

7) 소스코드 최적화 유형

(1) 클래스 분할 배치

하나의 클래스는 하나의 역할만 수행하도록 응집도를 높이고, 크기를 작게 작성

(2)느슨한 결합(Loosely Coupled )

추상화된 자료구조와 메소드를 구현함으로써 클래스간 의존성 최소화

 

반응형