IT Memory Note

[정보처리기사] 애플리케이션 테스트 관리 : 성능 개선 본문

자격증/정보처리기사

[정보처리기사] 애플리케이션 테스트 관리 : 성능 개선

h00ddu 2024. 9. 1. 19:43

 

1️⃣ 애플리케이션 성능 분석

 


(1) 애플리케이션 성능 점검 개요

 

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

 

지표 설명
처리량
(Throughput)
 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션 수
웹 애플리케이션의 경우 시간당 페이지 수로 표현
응답 시간
(Response Time)
 사용자 입력이 끝난 후, 애플리케이션의 응답 출력이 개시될 때까지의 시간
애플리케이션의 경우 메뉴 클릭 시 해당 메뉴가 나타나기까지 걸리는 시간
경과 시간
(Turnaround Time)
애플리케이션에 사용자가 요구를 입력한 시점부터 트랜잭션을 처리 후 그 결과의 출력이 완료할 때까지 걸리는 시간
자원 사용률
(Resource Usage)
애플리케이션이 트랜잭션을 처리하는 동안 사용하는 CPU 사용량, 메모리 사용량, 네트워크 사용량

 


2. 유형별 성능 분석 도구

 

구분 설명
성능/부하/스트레스(Performance/
Load/Stress) 점검 도구
애플리케이션의 성능 점검을 위해 가상의 사용자를 점검 도구상에서 인위적으로 생성한 뒤, 시스템 부하나 스트레스를 통해 성능 측정 지표인 처리량, 응답 시간, 경과 시간 등을 점검하기 위한 도구
모니터링(Monitoring) 도구 애플리케이션 실행 시 자원 사용량을 확인하고 분석 가능한 도구
성능 모니터링, 성능 저하 원인 분석, 시스템 부하량 분석, 장애 진단, 사용자 분석, 용량 산정 등의 기능을 제공하여, 시스템의 안정적 운영을 지원하는 도구

 


 

2️⃣ 애플리케이션 성능 개선

☆☆

 


(1) 소스 코드 최적화

 

  • 읽기 쉽고 변경 및 추가가 쉬운 클린 코드를 작성하는 것으로, 소스 코드 품질을 위해 기본적으로 준수해야 할 원칙과 기준을 정의하고 있음
1. 배드 코드(Bad Code)

 

⓵ 배드 코드의 개념 : 다른 개발자가 로직(Logic)을 이해하기 어렵게 작성된 코드

 

  • 처리 로직의 제어가 정제되지 않고 서로 얽혀 있는 스파게티 코드, 변수나 메서드에 대한 이름 정의를 알 수 없는 코드, 동일한 처리 로직이 중복되게 작성된 코드 등이 있음

⓶ 배드 코드의 유형

 

유형 설명
외계인 코드(Alien Code) 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 코드
스파게티 코드(Spaghetti Code)  작동은 정상적으로 하지만, 사람이 코드를 읽으면서 그 코드의 작동을 파악하기는 어려운 코드
 컴퓨터 프로그램의 소스 코드가 복잡하게 얽힌 모습을 스파게티의 면발에 비유한 표현

 


2. 클린 코드(Clean Code)

 

⓵ 클린 코드의 개념 : 잘 작성되어 가독성이 높고, 단순하며, 의존성을 줄이고, 중복을 최소화하여 깔끔하게 잘 정리된 코드


⓶ 클린 코드의 특징

 

  • 중복 코드 제거로 애플리케이션의 설계가 개선됨
  • 가독성이 높으므로 애플리케이션의 기능에 대해 쉽게 이해할 수 있음
  • 버그를 찾기 쉬워지며, 프로그래밍 속도가 빨라짐

⓷ 클린 코드의 작성 원칙

 

  • 클린 코드의 작성 원칙을 준수하고, 배드 코드 형식으로 작성된 소스 코드는 클린 코드로 수정하여 성능을 개선해야 함
작성 원칙 설명
가독성 이해하기 쉬운 용어를 사용, 코드 작성 시 들여쓰기 기능을 사용
단순성 한 번에 1가지 처리만 수행, 클래스/메서드/함수를 최소 단위로 분리
의존성 최소 영향도를 최소화, 코드의 변경이 다른 부분에 영향이 없게 작성
중복성 제거 중복된 코드를 제거, 공통된 코드를 사용
추상화 클래스/메서드/함수에 대해 동일한 수준의 추상화 구현, 상세 내용은 하위 클래스/메서드/함수에서 구현

 


3. 리팩토링(Refactoring)

 

⓵ 리팩토링의 개념 : 유지보수 생산성 향상을 목적으로 기능을 변경하지 않고, 복잡한 소스 코드를 수정, 보완하여 가용성 및 가독성을 높이는 기법

 

  • 소프트웨어 모듈의 외부적 기능은 수정하지 않고 내부적으로 구조, 관계 등을 단순화하여 소프트웨어의 유지보수성을 향상시키는 기법

⓶ 리팩토링의 목적

 

목적 설명
유지보수성 향상 복잡한 코드의 단순화, 소스의 가독성 향상
유연한 시스템 소프트웨어 요구사항 변경에 유연한 대응
생산성 향상 정제 및 최적화된 소스의 재사용
품질 향상 소프트웨어 오류 발견이 용이하여 품질 향상

 


 

(2) 소스 코드 품질 분석

 

1. 소스 코드 품질 분석의 개념

 

  • 소스 코드에 대한 코딩 스타일, 설정된 코딩 표준, 코드의 복잡도, 코드 내에 존재하는 메모리 누수 현황, 스레드의 결함 등을 발견하기 위한 활동

2. 소스 코드 품질 분석 도구의 유형

 

유형 설명
정적 분석 도구 작성된 소스 코드를 실행시키지 않고, 코드 자체만으로 코딩 표준 준수 여부, 코딩 스타일 적정 여부, 잔존 결함 발견 여부를 확인하는 코드 분석 도구
동적 분석 도구 애플리케이션을 실행하여 코드에 존재하는 메모리 누수 현황을 발견하고, 발생한 스레드의 결함 등을 분석하기 위한 도구