Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- webhacking
- 보안
- 기록
- 공부
- Shell
- 자격증
- 리눅스마스터2급
- IT
- 클라우드
- wargame
- 리눅스
- it자격증
- Security
- 정보처리기사
- 정리
- keyword
- reivew
- 복습
- 자격증공부
- Review
- Linux
- 워게임
- 드림핵
- 웹해킹
- DreamHack
- 취약점진단
- 케이쉴드주니어
- 위험관리
- 보안용어
- study
Archives
- Today
- Total
IT Memory Note
[정보처리기사] 애플리케이션 테스트 관리 : 성능 개선 본문
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. 소스 코드 품질 분석 도구의 유형
유형 | 설명 |
정적 분석 도구 | 작성된 소스 코드를 실행시키지 않고, 코드 자체만으로 코딩 표준 준수 여부, 코딩 스타일 적정 여부, 잔존 결함 발견 여부를 확인하는 코드 분석 도구 |
동적 분석 도구 | 애플리케이션을 실행하여 코드에 존재하는 메모리 누수 현황을 발견하고, 발생한 스레드의 결함 등을 분석하기 위한 도구 |
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 응용 SW 기초 기술 활용 : 운영체제의 특징(2) (0) | 2024.09.02 |
---|---|
[정보처리기사] 응용 SW 기초 기술 활용 : 운영체제의 특징(1) (0) | 2024.09.01 |
[정보처리기사] 애플리케이션 테스트 관리 : 애플리케이션 통합 테스트 (0) | 2024.09.01 |
[정보처리기사] 애플리케이션 테스트 관리 : 애플리케이션 테스트 케이스 설계(3) (0) | 2024.09.01 |
[정보처리기사] 애플리케이션 테스트 관리 : 애플리케이션 테스트 케이스 설계(2) (2) | 2024.09.01 |