yunyj99
라둥이
yunyj99
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (309)
    • 1. 프로그래밍 (50)
      • 1-1. Git (17)
      • 1-2. Java (13)
      • 1-2-1. Java GUI (1)
      • 오류 (12)
      • 기타 (7)
    • 2. Front-end (57)
      • 2-1. HTML (5)
      • 2-2. CSS (19)
      • 2-3. Java Script (33)
      • 2-4. React (0)
    • 3. Back-end (47)
      • 3-1. Spring MVC - 국비 (15)
      • 3-2. Spring MVC - 남궁성 (30)
      • 3-3. Spring - 김영한 (2)
    • 4. Android (1)
    • 5. DB (20)
      • 4-1. MySQL DBMS (20)
    • 6. 자료구조 & 알고리즘 (44)
      • 6-1. 자료구조 (14)
      • 6-2. 백준 (30)
    • 7. 웹 디자인 (7)
      • 7-1. UX 디자인 (7)
    • 8. 자격증 (35)
      • 8-1. 정보처리기사 (35)
    • 프로젝트 (3)
      • 프로젝트 기록 (3)
    • etc... (43)
      • 패스트캠퍼스 챌린지 (39)
      • 잡담 (4)

블로그 메뉴

  • 홈
  • 태그

최근 글

티스토리

hELLO · Designed By 정상우.
yunyj99

라둥이

쓰기
8. 자격증/8-1. 정보처리기사

정처기 2-1. 데이터 입출력 구현

2021. 8. 1. 16:27

1. 논리 데이터 저장소 확인

 

< 자료 구조 >

- 자료 구조 : 컴퓨터상 자료를 효율적으로 저장하기 위해 만들어진 논리적인 구조

- 분류 :

선형 구조 리스트 - 선형 리스트 : 연속되는 기억 장소에 저장되는 리스트
- 연결 리스트 : 노드의 포인터 부분으로 서로 연결시킨 리스트
스택 - 한 방향으로만 자료를 넣고 꺼낼 수 있는 LIFO 형식의 자료 구조
- TOP은 스택에서 가장 위에있는 데이터로, 스택 포인터라고도 불림
큐 - 한쪽 끝에서는 삽입 작업이 이뤄지고, 반대쪽 끝에서는 삭제 작업이 이루어지는 FIFO 형식의 자료 구조
- 꺼내는 쪽에서 가장 가까운 데이터는 Front, 데이너를 넣는 쪽에서 가장 가까운 데이터는 Rear
데크 - 큐의 양쪽 끝에서 삽입과 삭제를 할 수 있는 자료 구조
비선형 구조 트리 - 데이터들을 계층화시킨 자료 구조
- 노드와 링크로 구성
- 루트 노드, 단말 노드, 레벨, 조상 노드, 자식 노드, 부모 노드, 형제 노드, 깊이, 차수
- 전위 순휘(Pre-Order) / 중위 순회 (In-Order) / 후위 순회(Post-Order)
- 포화 이진 트리 / 완전 이진 트리 / 편향 이진 트리
그래프 - 노드와 간선을 하나로 모아놓은 자료 구조
- 방향 그래프 ( 최대 간선 수 : n(n(-1) ) / 무방향 그래프 ( 최대 간선 수 : n(n-1)/2 )
- 경로 / 경로 길이 / 단순 경로 / 사이클

 

 

< 논리 데이터 저장소 >

- 업무를 모델링 표기법으로 형상화한 데이터의 저장소

- 논리 데이터 저장소 구조 : 개체 / 속성 / 관계

 


2. 물리 데이터 저장소 설계

 

< 물리 데이터 저장소 >

- 물리 데이터 저장소 : 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조(물리 데이터 모델)로 변환하기 위한 데이터 저장소

- 변환 절차 :

  1. 단위 개체를 테이블로 변환
  2. 속성을 칼럼으로 변환
  3. UID를 기본 키로 변환
  4. 관계를 외래 키로 변환
  5. 컬럼 유형과 길이 정의
  6. 반 정규화 수행 (테이블 통합 / 테이블 분할 / 중복 테이블 추가(집계 테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가) / 컬럼 중복화)

 

< 물리 데이터 저장소 구성 >

  1. 테이블 제약조건 설계 : 삭제 제약 조건(연쇄, 제한, 무효) / 갱신 제약 조건(연쇄, 제한, 무효)
  2. 인덱스 설계 : 분포도가 좋은 컬럼은 단독적으로 생성 / 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성
  3. 뷰 설계 : REPLACE, FORCE, NOFROCE, WITH CHECK OPTION, WITH READ ONLY
  4. 클러스터 설계 : 분포도가 넓을수록 유리 / 액세스 효율 향상을 위한 물리적 저장 방법
  5. 파티션 설계 : 종류(레인지 파티셔닝 / 해시 파티셔닝 / 리스트 파티셔닝 / 컴포지트 파티셔닝) / 장점(성능 향상 / 가용성 향상 / 백업 가능 / 경합 감소)
  6. 디스크 구성 설계

 


< ORM 프레임워크 >

- 관계형 데이터베이스와 객체지향 프로그래밍 언어 간 호환되지 않는 데이터를 변환하는 프로그래밍 기법

- 기술 : SQL Mapping (iBatis / MyBatis) / OR Mapping (Hibernate)

- 종류 : 부분적 ORM(SQL Mapping) / 완전 ORM(Object Relation Mapper)

 


< 트랜잭션 인터페이스 >

- 데이터베이스 트랜잭션의 입출력과 기능 형태를 정의한 인터페이스

- ACID원칙 : Atoimcity(원자성) / Consistency(일관성) / Isolation(격리성) / Durability(영속성)

- 대표적인 사례로 JDBC, ODBC 등이 있다.

 


3. 데이터 조작 프로시저 작성

 

< 프로시저 >

- 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합

- 절차형 데이터 조작 프로시저 :

PL/SQL 장점 컴파일 불필요, 모듈화 가능, 절차적 언어사용, 에러처리
PL/SQL 구성 선언부(Declare), 실행부(Begin/End), 예외부(Exception)
PL/SQL을 활용한 저장형 객체 활용 프로시저 / 함수 / 패키지 / 트리거

< 프로그램 디버깅 >

- 프로시저가 입력 자료를 받아 출력을 올바르게 도출하는지에 관한 확인 과정

 

 

< 단위 테스트 도구 >

- 단위 테스트에서 구현된 프로시저의 적합성을 확인하기 위한 도구

- DBMS_OUTPUT 패키지 기능 : DISABLE / ENABLE / PUT / PUT_LINE / GET_LINE / GET_LINES

 


4. 데이터 조작 프로시저 최적화

 

< 쿼리 성능 측정 >

- 데이터베이스에서 프로시저에 있는 SQL 실행 계획을 분석, 수정을 통해 최소의 시간으로 원하는 결과를 얻도록 프로시저를 수정하는 사전 작업. EXPLAIN PLAN을 주로 활용

- SQL 성능 개선 절차 : 문제 있는 SQL 식별 -> 옵티마이저 통계 확인 -> SQL문 재구성 -> 인덱스 재구성 -> 실행계획 유지관리

 

 

<소스 코드 인스펙션 >

- 데이터베이스 성능 향상을 위하여 프로시저 코드를 보면서 성능 문제점을 개선해 나가는 활동

- SQL 코드 인스펙션 대상 : 미사용 변수 / 미사용 서브쿼리 / Null 값 비교 / 과거의 데이터 타입

 


 

'8. 자격증 > 8-1. 정보처리기사' 카테고리의 다른 글

정처기 2-3. 제품 소프트웨어 패키징  (0) 2021.08.03
정처기 2-2. 통합 구현  (0) 2021.08.01
정처기 1-4. 인터페이스 설계  (0) 2021.07.30
정처기 1-3. 애플리케이션 설계  (0) 2021.07.27
정처기 1-2. 화면 설계  (0) 2021.07.26
    '8. 자격증/8-1. 정보처리기사' 카테고리의 다른 글
    • 정처기 2-3. 제품 소프트웨어 패키징
    • 정처기 2-2. 통합 구현
    • 정처기 1-4. 인터페이스 설계
    • 정처기 1-3. 애플리케이션 설계
    yunyj99
    yunyj99
    개발자를 목표로 하는, 새싹처럼 성장하고 싶은 사람의 학습 공간 ^v^

    티스토리툴바