관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

애플리케이션 테스트 관리 4 - Session 99~101 : 애플리케이션 성능 분석 및 성능 개선 그리고 복잡도 본문

자격증 공부/정보처리기사 실기

애플리케이션 테스트 관리 4 - Session 99~101 : 애플리케이션 성능 분석 및 성능 개선 그리고 복잡도

huenuri 2024. 10. 4. 05:22

애플리케이션 성능 분석부터 학습을 이어가 보겠다.


 

 

세션 99 - 애플리케이션 성능 분석

 

 

 

 

 

 

1번은 처리량, 응답 시간, 처리 시간이다. 2번은 시스템 모니터링..

처리시간이 아니라 경과 시간이다. 2번은 성능 테스트, 시스템 모니터링이다. 


 

 

 

 

세션 100 - 복잡도

 

 

 

 

 

 

 

 

 

 

 

 

1번은 O(n)이다. 2번은 모르겠다. 3번은 5 - 4 + 2 = 3이므로 3이다. 다 틀렸다. 1:1 관계를 가지는 게 O(n)이고 하나의 단계만 가지는 건 O(1)이다. 이 부분은 아무래도 정리를 해야 할 것 같다.

 

 

시간 복잡도

알고리즘을 수행하기 위해 프로세스가 수행하는 연산 횟수를 수치화한 이다. 시간 복잡도가 낮을수록 알고리즘의 실행시간이 짧고 높을수록 실행시간이 길어진다. 종류는 다음과 같다.

  1. 빅오 표기법 : 알고리즘의 실행 시간이 최악일 때를 표기하는 방법
  2. 세타 표기법 : 알고리즘의 실행시간이 평균일 때를 표시하는 방법
  3. 오메가 표기법 : 알고리즘의 실행시간이 최상일 때를 표시하는 방법

 

빅오 표기법으로 표현한 최악의 알고리즘 시간 복잡도

1. O(1) : 입력값(n)에 관계없이 일정하게 물제 해결에 하나의 단계만을 거침

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

2. O(log₂n) : 문제 해결에 필요한 단계가 입력값(n) 또는 조건에 의해 감소함

   - 이진 트리, 이진 검색

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

   - for문

4. O(nlog₂n) : 문제 해결에 필요한 단계가 n(log₂n)번 만큼 수행됨

   - 힙 정렬, 2-way 합병 정렬

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

  - 삽입 정렬, 쉘 정렬, 선택 정렬, 버블 정렬, 퀵 정렬

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

   - 피보나치 수열

 

그러니까 1번 답은 O(1)이다. 2번은 힙 정렬, 2-way 합병 정렬이다.

3번은 내부 영역 3개에 외부 영역 1개를 더하니 4이다. 아니면 화살표의 수 6에서 노드 수 4를 빼고 2를 더한 값인 4가 된다.


 

 

 

 

세션 101 - 애플리케이션 성능 개선

 

 

 

 

 

 

 

 

 

정적 분석 도구이다.

 

 

동적 분석 도구이다.

 

1번은 Static Analysis, Dynamic Analysis이다. 5번은 참고문서가 없어 개발자가 유지보수하기 어려운 코드이다.

외계인 코드는 아주 오래되거나 참고문서 또는 개발자가 없어 유지보수 작업이 어려운 코드이다.

 


 

 

 

학습을 마치고

이것으로 길고 길었던 7장 공부를 모두 마쳤다. 수업 듣고 문제 풀고 개념 공부를 하는데 어제부터 4시간 반 정도 걸린 것 같다. 생각보다 분량도 많고 암기할 것도 많아서 정말 어려웠다.

특히 중간에 공부를 중단하고 싶은 마음도 있었지만 끝까지 이기고 다시 공부에 집중할 수 있어서 정말 감사했다. 요즘에는 이런 마음 관리가 잘 되는 편이다. 아무리 내가 하기 싫은 일이 있어도 해야 한다고 생각하고 필요한 일이라면 참고 인내하면서 목표를 이루어나간다.

 

이러한 덕목이 개발자에게 가장 필요한 자질이 아닐까 싶다. 이제 남은 시간은 문제를 한번 더 풀며 예상문제은행 문제도 풀고 틀린 문제를 정리해보려고 한다.