자격증/정보처리기사

[정보처리기사] 어플리케이션 성능 개선

IT록흐 2021. 10. 10. 11:48
반응형

애플리케이션 성능

최소한의 자원을 사용하여 최대한 많은 기능을 신속히 처리하는 정도

 

처리량(Throughput)

응답시간(Response Time)

경과시간(Turn Around Time)

자원사용률(Resource Usage)

 

성능테스트 도구

애플리케이션에 부하나 스트레스를 가하여 측정

 

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

LoadUI 사용자 편리성이 강화된 부하테스트 도구, HTTP JDBC 등 다양한 프로토콜 지원

OpenSTA HTTP, HTTPS 프로토콜에 대한 부하테스트

 

시스템 모니터링 도구

Scouter 애플리케이션의 성능을 모니터링 통제하는 도구

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

 

 

시간 복잡도

알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화

 

빅오 표기법 : 알고리즘 실행 시간이 최악일 때를 표기

세타 표기법 : 알고리즘의 실행시간이 평균일 때를 표기

오베가 표기법 : 알고리즘 실행시간이 최상일 떄를 표기

 

순환복잡도

논리적인 복잡도를 측정하기 위한 소프트웨어의 척도

 

 

소스코드 최적화

 

나쁜 코드를 배제하고 클린코드로 작성하는 것

 

- 스파게티 코드 : 로직이 복잡하게 얽혀있는 코드

- 외계인 코드 : 오래되거나 참고문서 또는 개발자가 없어 유지보수가 힘든 코드

 

 

클린코드 작성원칙

 

가독성 : 누구든 지 쉽게 잏고 이해하기 쉬운 용어와 들여쓰기 사용

단순성 : 코드를 간단하게 작성, 한번에 한가지를 처리하는 메소드, 클래스, 함수를 작성

의존성 배제 : 코드가 다른 모듈에 미치는 영향을 최소화

중복성 최소화 : 코드의 중복을 최소화함

추상화 : 상위 클래스/메소드/함수에서는 간략하게 애플리케이션의 특성을 나타내고 상세내용은 하위에서 구현

 

소스코드 최적화 유형

 

클새스 분할 배치 : 하나의 클래스는 하나의 역할만 수행하도록 응집도를 높이고 크기를 작게 구성

 

느슨한 결합(Loosely Coupled) : 인터페이스 클래스를 이용하여 추상화된 자료구조와 메소드를 구현, 클래스 간의 의존성 최소화 

 

소스코드 품질 분석 도구

 

정적분석 도구 : 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함들을 확인하는 코드 분석 도구

 

- pmd : 미사용 변수, 최적화되지 않은 코드 검사 

- cppcheck : C/C++ 코드에 대한 메모리 누수, 오버플로우 분석

- SonarQube : 중복코드, 복잡도 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼

- checkStyle : 자바 코드에 대해 소스 코드 표준을 따르고 있는지 검사

- ccm : 다양한 언어의 코드 복잡도를 분석

- covertura : 자바 언어의 소스 코드 복잡도 분석 및 테스트 커버리지를 측정 

 

 

동적 분석 도구 : 소스 코드를 실행하여 코드에 존재하는 메모리 누수, 스레드 결함등을 분석하는 도구

 

- Avalanche : Valgrind 프레임워크 및 STP 기반으로 구현됨, 프로그램에 대한 결함 및 취약점 분석

- Valgrind : 프로그램 내에 존재하는 메모리 및 쓰레드 결함 분석

 

 


 

참고자료

 

2021 시나공 정보처리기사 실기

수험생들의 궁금증을 100% 반영시험에 나올만한 내용만 구성시나공 정보처리기사 실기는 NCS 학습 모듈을 가이드 삼아 자세한 설명과 충분한 예제를 더한 후 교재에 수록된 문제나 이론은 하나도

book.naver.com

 

반응형