관리 메뉴

DevBlackCat

정보처리기사 필수 학습: 쿼리 성능 측정과 소스코드 인스펙션 완전정복!! 본문

정보처리기사/소프트웨어 개발

정보처리기사 필수 학습: 쿼리 성능 측정과 소스코드 인스펙션 완전정복!!

DevBlackCat 2024. 10. 24. 17:45
728x90

쿼리 성능 측정

쿼리 성능 측정의 개념

  • 쿼리 성능 측정은 응답시간, cpu,메모리 사용량을 포함한다.
  • 주로 조회 영역

 

옵티마이저가 하는역활 : 구문분석 / 실행 / 인출

인출은 오직 SELECT(조회)만 실행 

SQL  처리 흐름

ⓛ 구문분석 단계

  • SQL문이 이전에 실행되었는지 확인 , 처음인 경우 구문 분석 수행

② 실행단계

  • 요청된 데이터가 버퍼캐시에 있는지 확인하고 없는경우 데이터를 읽어 캐시에 저장한다.

③ 인출 단계

  • 데이터를 버퍼 캐시에서 읽고 요청한 클리아인트에 전송
  • SELECT문만 사용
순서 절차 설명
1 문제 있는 SQL 식별 성능 문제를 일으키는 SQL을 식별
2 옵티마이저 통계 확인 옵티마이저가 사용하는 통계를 검토
3 SQL문 재구성 필요에 따라 SQL문을 수정하거나 힌트를 사용하여 성능을 개선
4 인덱스 재구성 효율적인 쿼리 수행을 위해 인덱스를 재조정하거나 불필요한 인덱스를 제거
5 실행 계획 유지 관리 성능을 지속적으로 모니터링하고 필요에 따라 실행 계획을 조정

 

SQL 성능 관리 유틸리티

  • SQL Trace
  • TKPROF
  • EXPLAIN PLAN

 

소스코드 인스펙션

인스펙션 개념

  • 프로그램을 실행하지않고 코드를 분석하여 잠재적인 오류,보안취약점,표준 준수 문제를 식별 하고 개선하는 과정이다.
  • 결함수정비용을 줄이고 코드 품질을 향상시킬수 있다.
  • 코드이해도,유지보수성,품질,보안성 향상

인스펙션 절차

  • 계획: 인스펙션의 목적, 대상, 일정을 수립
  • 개관(사전 교육): 인스펙션 과정과 목표에 대해 참가자들에게 소개
  • 준비: 참가자들이 독립적으로 코드와 관련 문서를 검토
  • 검사(검토/인스펙션 회의): 팀이 모여 문제점을 찾고 토의
  • 재작업(수정): 발견된 문제점을 수정
  • 추적(후속 조치): 수정 사항을 검토하고, 최종적인 코드 상태를 문서화

 

다시 한번 알아야할것

요구사항  검증 방법 ★

종류 설명
동료검토 (Peer Review) - 2~3명이 진행하는 리뷰의 형태
- 요구사항 명세서 작성자가 요구사항 명세서를 설명하고, 이해 관계자들이 설명을 들으면서 결함을 발견해 나가는 형태
워크스루 (Walk Through) - 시스템 개발 단계마다 실시하는 비정형 검토회의 형태
- 오류의 조기 발견이 목적
- 검토 자료를 회의 전에 배포해서 사전 검토 후 짧은 시간 동안 회의를 진행하여 결함을 발견해 나가는 형태
-개발자가 주최
인스펙션 (Inspection) - 명세서 작성자를 제외한 다른 검토 전문가들이 명세서를 확인하여 결함을 발견해 나가는 형태
- 계획 → 개관 → 준비 → 검토회의 → 재작업 → 추적

 

 

 

 

 

 

 

 

프로시저 역활

  • 데이터 무결성 보장
  • 복잡한 비즈니스 로직 실행
  • 유지보수 용이성

저장형 객체

 

ⓛ Stored Function

  • 연산을 수행하고 결과값을 반환 하는데 사용[반환 없어도됨]
  • IN 매개변수만 사용가능하며 데이터 타입을 명시해야함

② Stored Procedure

  • 매개병수를 받고 복잡한 트래잭션 또는 연산을 수행하는 PL/SQL 블록
  • IN OUT INOUT 매개변수를 통해 데이터를 전달받거나 반환 할수있다.

③ Stored Package

  • PL/SQL 프로시저와 함수의 모음 [폴더 같은거]

③ Trigger ★

  • 데이터 베이스 테이블에 특정 조작이 발생할떄 자동으로 실행하는 프로시저
  • 삽입,수정,삭제시 반응
  • 무결성 유지를 위해 사용
분류 설명
행 트리거 - ★ FOR EACH ROW 옵션을 사용한다
- 각행에 대한 변경사항을 개별적으로 감지하고 반응한다.
- 추가,업데이트,삭제에  DML 작업이 각행에 발생할떄 마다 트리거가 사용된다.

문장 트리거 - SQL 문장에 의해 발생하는 이벤트에 한번만 실행된다.

 

After 트리거와 Before 트리거도 있다.

 

 

ORM( Object-Relational Mapping )

 

ORM 프레임워크의 개념

  • 객체지향 프로그래밍과 관계형 데이터베이스간 호환성 격차를 해결하기위한 기법
  • 객체지향에서 데이터베이스를 더쉽게 쓰게 해준다.
장점 - 개발자가 비즈니스 로직에 더 집중할 수 있도록 해준다.
- 코드의 재사용성 및 유지 보수성을 향상시킨다.
- 데이터베이스 시스템과의 결합도를 낮추어, 데이터베이스 변경이나 마이그레이션이 용이하다.
단점 - 복잡한 쿼리나 특화된 데이터베이스 기능을 사용하는 경우, ORM의 제한 때문에 구현이 어렵다.
- 프로시저를 많이 사용하는 시스템에서는 ORM의 객체지향적 장점을 제대로 활용하기 어렵다.

 

 

매핑 기술 비교

ⓛ SQL Mapper

  • SQL을 명시하여 단순히 필드를 매핑 시키는게 목적

② OR Mapping (=ORM)

  • 객체를 통해 간접적으로 데이터베이스를 다룬다.
  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑
  • 직관적인 코드로 데이터를 조작 가능

 

디버깅

  • 오류를 식별,수정하는 과정
  • 이를 위한 소프트는 디버거라고 한다.

 

 

 

ⓛ SQL Mapper

  • SQL을 명시하여 단순히 필드를 매핑 시키는게 목적

② OR Mapping (=ORM)

  • 객체를 통해 간접적으로 데이터베이스를 다룬다.
  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑
  • 직관적인 코드로 데이터를 조작 가능

 

 

 

 

 

728x90