Clean & Blue 자세히보기

전공/정보처리기사 실기

정보처리기사 실기 - 6. 애플리케이션 테스트 관리(3) /성능분석도구/코드리팩토링

_청렴 2021. 4. 25. 23:41
반응형

NCS 정보처리기사

3) 애플리케이션 성능 개선하기

- 애플리케이션 성능을 측정하기 위한 지표

  • 처리량
  • 응답 시간
  • 경과 시간
  • 자원 사용률

 

- 유형별 성능 분석 도구

성능 분석 도구는 애플리케이션의 성능을 점검하는 도구와 시스템 자원 사용량을 모니터링하는 도구로 분류

  • 성능/부하/스트레스 점검 도구
  • 모니터링 도구

 

 

- 애플리케이션 성능 저하 원인 분석

- 데이터베이스 연결 및 쿼리 실행 시 발생되는 성능 저하 원인

  • DB에 연결하기 위해 Connection 객체를 생성ㅇ하거나 쿼리를 실현하는 애플리케이션
  • 데이터베이스 락(Lock)
  • 불필요한 데이터페이스 패치(DB Fetch)
  • 연결 누수, 부적절한 커넥션 풀 크기

 

- 내부 로직으로 인한 성능 저하 원인

  • 인터넷 접속 불량으로 서버 소켓 쓰기는 지속되나 클라이언트에서 정상적 읽기가 수행되지 않아 성능이 저하될 가능성이 있음
  • 대량의 파일을 업로드하거나 다운로드할 경우
  • 오류 처리 로직과 실제 처리 로직 부분을 분리하지 않고 코딩 or 예외 발생 시

 

- 외부 호출(HTTP, 소켓 통신)로 인한 성능 저하 원인

임의의 트랜잭션이 수행되는 동안 외부 트랜잭션이 장시간 수행되거나 타임아웃되는 경우

 

- 잘못된 환경 설정이나 네트워크 문제로 인한 성능 저하 원인

환경 설정으로 인한 성능 저하 -> 스레드 풀, 힙 메모리의 크기를 너무 작게 설정

 

- 네트워크 장비로 인한 성능 저하

네트워크 관련 장비 간 데이터 전송 실패 또는 지연에 따른 데이터 손실 발생 시

 

- 애플리케이션 성능 개선

- 소스 코드 최적화의 이해

소스 코드 최적화는 읽기 쉽고 변경 및 추가가 쉬운 클린 코드를 작성하는 것

  • 나쁜 코드 : 다른 개발자가 로직을 이해하기 어렵게 작성된 코드
  • 클린 코드 : 잘 작성되러 가독성이 높고 단순하며 의존성을 줄이고 중복을 최소화하여 깔끔하게 잘 정리된 코드

 

- 코드 리팩토링 : 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법

-> 소프트웨어 시스템을 변경하는 프로세스

 

- 코드 리팩토리 종류

- 메소드 정리

  • Extract Method
  • Inline Method
  • Inline Temp
  • Replace Temp with Query
  • Interface Explaining Variable
  • Spilt Temporary Variable
  • Remove Assignment to Parameters
  • Replace Method with Method Object
  • Substitude Algoruthm

 

- 객체간 이동

  • Move Method
  • Move Field
  • Extract Class
  • Inline Class
  • Hide Delegate
  • Remove Middle Man
  • Introduce Foreign Method
  • Introduce Local Extansion

 

- 데이터 구성

  • Self Encapsulate Field
  • Replace data Value with Object
  • Change Value to Reference
  • Change Reference to Value
  • Replace Array with Object
  • Duplicate Observed Data
  • Change Unidirectional Association to Bidirectional
  • Change Bidirectioanl Association to Unidirectional
  • Replace Magic Number with Symbolic Constant
  • Encapsulate Field Public
  • Encapsulate Collection
  • Replace Record with Data class
  • Replace Type code with class
  • Replace Type code with Subclass
  • Replace Type Code with State/Strategy

 

 

- 일반화

  • Pull up Field
  • Pull up Method
  • Pull up Constructor Body
  • Push Down Method
  • Push Down Field

 

- 조건문 단순화

  • Decompose Conditional
  • Consolidate Conditional Expression
  • Consolidate Duplicate Conditional Fragments
  • Remove Control Flag
  • Replace Nested Conditional with Guard Clauses
  • Replace Conditional with Polymorphism
  • Introduce Null Object Null
  • Introduce Assertion
  • Remove Method

 

- 소스코드 품질 분석 도구

소스 코드에 대한 코딩 스타일, 설정된 코딩 표준, 코드의 복잡도, 코드 내에 존재하는 메모리 누수 현황, 스레드의 결함등을 반결하기 위하여 사용하는 분석도구

-> 정적 분석 도구 : 작성된 소스 코드를 실행시키지 않고 코드 자체만으로 분석

-> 동적 분석 도구 : 애플리케이션을 실행하여 분석

 

 

 

정보처리기사 실기 - 7. SQL 응용 /DCL/DML/DDL

1) 응용 SQL 작성하기 - SQL 특징 : 비절차적 언어, 대화식 언어 또는 호스트 언어에 내장된 혀태로 사용  -> 프로그래밍 언어(호스트 언어)에 SQL을 내포 - SQL 종류 데이터를 검색하는 SELECT 명령문은

aapslie94.tistory.com