2024. 3. 4. 23:32ㆍcs및 소프트스킬/클린코드법칙
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 : 노드의 수)
'cs및 소프트스킬 > 클린코드법칙' 카테고리의 다른 글
[클린코드법칙] 2. 클린 코드란, 클린코드 작성 원칙 (0) | 2024.03.04 |
---|---|
[클린코드법칙] 1. 소프트웨어 재사용, 보안 코드 작성, 소스코드 최적화 (1) | 2024.03.04 |