[클린코드법칙] 3. 성능을 고려하여 개발하기, 성능 지표 참조

2024. 3. 4. 23:32cs및 소프트스킬/클린코드법칙

728x90
반응형
SMALL

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

- 처리량(Throughtput) : 일정 시간 내 애플리케이션이 처리하는 일의 양

- 응답 시간(Response Time) : 애플리케이션에 요청을 전달한 시간 부터 응답이 도착할 때 까지 걸린 시간

- 경과 시간(Turn Around Time) : 애플리케이션에 작업을 의뢰한 시간 부터 처리가 완료 될 때까지 걸린 시간

- 자원 사용률(Resource usage) : 애플리케이션이 의뢰한 작업을 처리하는 동안의 CPU 사용량, 메모리 사용량, 네트워크 사용량 등 자원 사용률

 

==> 종합적으로 하드웨어 성능의 따라 각각의 성능에 미치는 요인이 되겠지만 가장 중요한 것은 내부 로직을 어떻게 짜느냐의 따라 처리량과 요청 후 응답 시간, 작업에 경과한 시간을 결정 되기도 한다.

 

 

2. 로직 구성 시 최악의 조건(빅오표기법)으로 생각하고 구현하기 (성능은 아래 참조)

 - 빅오표기법 (O) 가 존재

 

- O(1) : 입력값(N) 과 관계 없이 일정하게 문제 해결에 하나의 단계만을 걸침

     => 스택의 삽입(Push), 삭제(Pop)

- O(logn) : 문제 해결에 필요한 단계가 입력값(n) or 조건에 의해 감소 (최고의 성능)

     => 이진 트리, 이진 검색

- O(n) : 문제 해결에 필요한 단계가 입력값(n)과 1:1 관계를 가짐

     => for 문

- O(nlogn) : 문제 해결에 필요한 단계가 n(logn)번만큼 수행

     => 힙 정렬, 2-Way 합병 정렬

- O(n^2) : 문제 해결에 필요한 단계가 입력값(n)의 제곱만큼 수행됨

     => 삽입 정렬, 쉘 정렬, 선택 정렬, 버블 정렬, 퀵 정렬

- O(2^n) : 문제 해결에 필요한 단계가 2의 입력 값(n) 제곱만큼 수행

     => 피보나치 수열

 

 

3. 순환 복잡도 (Cyclomatic Complexity)

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

- 맥케이브 순환도(McCabe's Cyclomatic) 라고도 함

- 제어 흐름도 계산식 : V(G) = E - N + 2. (E : 화살표 수, N : 노드의 수)

 

 

 

 

 

728x90
반응형
LIST