애플리케이션 성능 개선

BaeBae·2022년 3월 7일
0

정보처리기사

목록 보기
20/21
post-thumbnail

< 애플리케이션 성능 측정 지표 >

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


< 배드 코드 >

  • 다른 개발자가 로직을 이해하기 어렵게 작성된 코드
  • 처리 로직의 제어가 정제되지 않고 서로 얽혀 있는 스파게티 코드, 변수나 메소드에 대한 이름 정의를 알 수 없는 코드, 동일한 처리 로직이 중복되게 작성된 코드


< 클린 코드 >

  • 잘 작성되어 가독성이 높고 단순하며 의존성을 줄이고 중복을 최소화하여 깔끔하에 잘 정리된 코드


< 소스 코드 품질 분석 도구 유형 >

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

< 정적 분석 도구 >

  1. pmd
  • 자바 및 타 소스 코드에 대한 버그, 데드코드 분석
  1. cppcheck
  • C/C++ 코드에 대한 메모리 누수, 오버플로우 등 문제 분석
  1. SonarQube
  • 소스 코드 품질 통합 플랫폼, 프로그인 확장 기능
  1. checkstyle
  • 자바 코드에 대한 코딩 표준 검사 도구
  1. ccm
  • 다양한 언어의 코드 복잡도 분석 도구, 리눅스, 맥 환경 CLI 형 태 지원
  1. cobertura
  • jcoverage 기반의 테스트 커버리지 측정 도구

< 동적 분석 도구 >

  1. Avalanche
  • Vargrinf 프레임워크 및 STP 기반 소프트웨어 에러 및 취약점 동적 분석 도구
  1. Valgrind
  • 자동화된 메모리 및 스레드 결함 발견 분석 도구


<리팩토링 >

  • 유지보수 생산성 향상을 목적으로 기능을 변경하지 않고 복잡한 소스 코드를 수정, 보완하여 가용성 및 가독성을 높이는 기법
  • 소프트웨어 모듈의 외보적 기능은 수정하지 않고 내부적으로 구조, 관계 등을 단순화하여 소프트웨어의 유지보수성을 향상시키는 기법

< 리팩토링의 목적 >

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

0개의 댓글