본문 바로가기
정보처리기사

정보처리기사 실기(애플리케이션 테스트 관리) 애플리케이션 성능 개선

by 열정적인 이찬형 2022. 3. 27.
※본 내용은 스스로 공부하며 중요하다고 생각하는 부분만 정리한 내용입니다. 

공부 서적(시나공 정보처리기사 필기책)

 

시나공 정보처리기사 실기

시나공 정보처리기사 실기는 NCS 학습 모듈을 가이드 삼아 자세한 설명과 충분한 예제를 더한 후 교재에 수록된 문제나 이론은 하나도 빼놓지 않고 이 분야에 전혀 기초가 없는 수험생의 눈높이

book.naver.com

출처: 시나공 정보처리기사 실기

저자: 김정준,강윤석,김용갑,김우경

출판사 : 길벗


애플리케이션 성능 개선


 
소스 코드 최적화
  • 나쁜 코드를 배제하고 클론코드로 작성하는 것
  • 클린 코드 : 누구나 쉽게 이해/수정/추가 할 수 있는 단순하고 명료한 코드, 잘 작성된 코드
  • 나쁜 코드 : 로직이 복잡하고 이해하기 어려운 코드, 스파게티 코드(로직이 얽힘)/외계인 코드(유지보수 어려움)
  • 나쁜 코드 작성된 것을 클린 코드로 변경시 애플리케이션 성능 개선
클린 코드 작성 원칙
  • 가독성 : 누구든지 코드를 쉽게 읽을 수 있도록, 쉬운 용어/들여쓰기
  • 단순성 : 코드를 간단하게 작성, 클래스/메소드/함수 등 최소 단위로 분리
  • 의존성 배제 : 다른 모듈에 미치는 영향 최소화, 코드 변경시 다른 부분 영향 X
  • 중복성 최소화 : 코드의 중복 최소화, 공통된 코드 사용
  • 추상화 : 상위 클래스/메소드/함수에는 간략하게 특성만, 상세 내용은 하위 클래스/메소드/함수에서 구현

소스코드 최적화 유형

  • 클래스 분할 배치 : 하나의 클래스는 하나의 역할만 수행, 응집도 높이고 크기를 작게 
  • 느슨한 결합 : 인터페이스 클래스 이용하여 추상화된 자료 구조와 메소드를 구현으로 의존성 최소화
소스 코드 품질 분석 도구
  • 정적 분석 도구 : 소스 코드 실행하지 않고 코딩 표준/스타일/결함 등을 확인
  • pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura 등
  • 동적 분석 도구 : 소스 코드 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등 분석
  • Avalanche, Valgrind 등

소스 코드 품질 분석 도구의 종류

  • pmd : 미사용 변수/최적화되지 않은 코드 등 검사, Linux/Windows
  • cppcheck : C/C++ 코드 메모리 누수, 오버플로우 등 분석, Windows
  • SonarQube : 중복 코드, 복잡도, 코딩 설계 등을 분석하는 통합 플랫폼, Cross-Platform
  • checkstyle : 자바 코드에 대해 소스 코드 표준따르는지 검사, 다양한 개발 도구 통합 사용 가능, Cross-Platform
  • ccm : 다양한 언어의 코드 복잡도 분석, Cross-Platform
  • cobertura : 자바 언어의 소스 코드 복잡도 분석 및 테스트 커버리지 측정, Cross-Platform
  • Avalanche : Valgrind 프레임워크 및 STP 기반으로 구현, 결함 및 취약점 분석, Linux/Android
  • Valgrind : 프로그램 내 존재하는 메모리 및 쓰레드 결함 등 분석, Cross-Platform

댓글