데이터 입출력 구현

김덕근·2023년 1월 3일
0

정보처리기사

목록 보기
13/17

데이터 조작 프로시저 작성

프로시저의 개념

일련의 쿼리를 하나의 함수처럼 실행하기 위한 쿼리의 집합

  1. Stored Function - 값을 계산하고 결과값을 반환하기 위해서 많이 사용
    ex) CREATE OR REPLACE FUNCTION function_name 형태
  2. Stored Procedure - IN, OUT, INOUT으로 입력받을 매개변수인지 전달할 매개변수 인지 선언
    ex) CREATE OR REPLACE PROCEDURE procedure_name 형태
  3. stored Package - 패키지는 선언부와 본문 두 부분으로 나누어진다.
  4. Trigger - INSERT, UPDATE, DELETE문이 TABLE에 대해 행해질 때 묵시적으로 수행되는 PROCEDUR
    행 트리거 - FOR EACH ROW 옵션 사용
    문장 트리거 - 트리거 사건에 의해 단 한번 실행되며, 컬럼의 각 데이터 행을 제어 할 수 없다.

ORM(Object-Relational Mapping) 프레임워크

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것
객체지향 프로그램에서 클래스를 생성하고, 관계형 데이터베이스의 테이블의 내용을 매핑

매핑 기술 비교

1.SQL Mapper
SQL을 명시하여 단순히 필드의 매핑시키는 것이 목적
iBatis. Mybatis, jdbc, Templetes 등

  1. OR Mapping(=ORM)
    객체를 통해 간접적으로 데이터를 다룬다
    JPA(Java Persistent API), Hibernate

프로그램 디버깅

프로그램 디버깅의 개념
개발 단계 중에 발생하는 시스템의 논리적인 오류나 비정상적 연산을 찾아내고,
그 원인을 밝혀 수정하는 작업과정

단위테스트의 개념
프로그래밍에서 특정 기능의 소스코드가 의도한 대로 정확히 동작하는지 검증하는 절차


프로시저 최적화

쿼리(Query) 성능 측정

쿼리 성능 측정의 개념
쿼리문의 응답시간, 해당 쿼리가 실행될 때 사용된 CPU, 메모리 자원 사용 등을 측정(Select)

SQL 처리 흐름
SQL -> 구분분석(Parsing) -> 실행(Execution) -> 인출(Fetch) -> 결과
Insert,Update,Delete 는 실행까지만
Select는 인출까지

  1. 구문분석 단계
    SQL 문이 문법에 따라 정상적으로 작성되었는지 분석하고, SQL 내에 포함된 테이블, 뷰 등이
    데이터베이스에 존재하는지 확인

  2. 실행 단계
    SQL 문에서 사용된 데이터가 버퍼캐시 영역에 존재하는지 검색
    데이터버퍼 캐시영역에 존재한다면, 테이블의 해당 데이터 파일로부터 테이블을 읽지 않고 캐시영역의 데이터를 그대로 추출
    존재하지 않는다면 정의된 테이블의 해당 데이터 파일로부터 테이블을 읽어서 데이터버퍼 캐시영역에 저장

  3. 인출 단계
    SELECT문을 실행하는 경우에만 인출단계가 실행되고, UPDATE, INSERT, DELETE문 실행 시는 인출단계는 실행되지 않는다.

SQL 성능 최적화를 위한 유틸리티
SQL Trace
TKPROF(Trace Kernel PROFile)
EXPLAIN PLAN

SQL 성능 개선 절차
1. 문제 있는 SQL 식별 - 쿼리 식별
2. 옵티마이저 통계 확인
3. SQL문 재구성 - 힌트를 이용
4. 인덱스 재구성
5. 실행계획 유지관리

소스코드 인스펙션 개념
프로그램 소스를 실행하지 않고, 코드 상에 존재하는 잠재적인 오류 / 표준 등을 찾아내고
이를 개선하는 일련의 과정

코드 인스펙션 절차
1. 계획
2. 개관(사전교육)
3. 준비
4. 검사(인스펙션 회의)
5. 재작업(수정)
6. 추적(후속조치)

동료검토, 워크스루, 인스펙션 -> 리팩토링

profile
안녕하세요!

0개의 댓글