DevBlackCat
정보처리기사 필수 학습: 쿼리 성능 측정과 소스코드 인스펙션 완전정복!! 본문
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
'정보처리기사 > 소프트웨어 개발' 카테고리의 다른 글
정보처리기사:통합구현 관리 완전 정복!! (0) | 2024.10.25 |
---|---|
정보처리기사 필수 학습: 모듈 구현 완전정복!! (2) | 2024.10.25 |
정보처리기사 필수 학습: 프로시저와 ORM 완전 정복!! (0) | 2024.10.24 |
정보처리기사 필수 학습: 자료 구조- 비선형구조 완전 정복! (0) | 2024.10.22 |
정보처리기사 필수 학습: 선형구조 완전 정복! (0) | 2024.10.21 |