[2023 정보처리기사] 2과목 – 13. 결함 관리, 어플리케이션 성능

1. *결함 관리

*결함(fault): 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생 되는 것.

  1. 1. 결함 심각도

– 치명적(Critical) > 주요(Mojor) > 보통(Normal) > 경미(Minor) > 단순(Simple)

  1. 2. 결함 우선순위

– 치명적(Critical) > 높음(High) > 보통(Medium) > 낮음(Low)

– 결함 심각도가 높다고 반드시 결함 우선순위가 높은 것은 아님.

  1. 3. 결함 관리 도구

– Mantis, Trac, Redmine, Bugzila 등

 

2. 어플리케이션 성능 분석

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

  • 처리량: 일정 시간 내 어플리케이션이 처리하는 일의 양.
  • 응답 시간: 어플리케이션에 요청을 전달한 시간부터 응답이 도착할 때 까지 걸린 시간. (피드백)
  • 경과 시간: 어플리케이션에 작업을 의뢰한 시간부터 처리가 완료될 때 까지 걸린 시간.
  • 자원 사용률: 어플리케이션이 의뢰한 작업을 처리하는 동안의 CPU•메모리•네트워크 사용량 등

  2. 2. 어플리케이션 성능 저하 원인 분석

– DB에 필요 이상의 많은 데이터 요청한 경우.

– 어플리케이션이 대기하거나 타임아웃한 경우.

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

– 연결 누수(Connection Leak)가 발생한 경우.

– 불필요한 Commit이 자주 발생하는 경우 등.

 

3. 어플리케이션 성능 개선

  3. 1. 소스코드 최적화

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

  • 나쁜 코드

– 다른 개발자가 이해하기 어렵게 작성된 코드

– 변수 / 메소드에 대한 명칭을 알 수 없는 코드.

스파게티 코드라고도 불림.

  • 클린 코드

– 깔끔하게 잘 정리되고 가독성이 높아 어플리케이션 기능에 대해 쉽게 이해할 수 있는 코드

– 버그를 찾기 쉬워지고 프로그래밍 속도 증가.

클린 코드 작성 원칙(최적화): 가독성, 단순성, 의존성 배제, 중복성 최소화, 추상화.

  3.2. 소스 코드 품질 분석 도구

  • 정적 분석 도구

작성한 코드를 실행하지 않고, 코딩 표준이나 스타일, 결함등을 확인.

– 동적 분석도구로 발견하기 어려운 결함을 찾아낼 수 있음.

– 종류: pmd, cppcheck, SonarQube 등

  • 동적 분석 도구

작성한 코드를 실행해 코드에 존재하는 메모리 누수, 스레드 결함 등 분석.

– 종류: Avalanche, Valgrind 등

Leave a Comment