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 응용(2) /트랜잭션/집계성SQL/윈도우함수 (0) | 2021.04.30 |
---|---|
정보처리기사 실기 - 7. SQL 응용(1) /DCL/DML/DDL (0) | 2021.04.27 |
정보처리기사 실기 - 6. 애플리케이션 테스트 관리(2) /통합테스트/테스트자동화/결함관리 (0) | 2021.04.24 |
정보처리기사 실기 - 6. 애플리케이션 테스트 관리(1) /테스트케이스/정적•동적테스트/화이트박스/블랙박스 (0) | 2021.04.24 |
정보처리기사 실기 - 5. 화면 설계(2) /흐름설계/스토리보드/고객여정지도/HTML5 (0) | 2021.04.23 |