초보 개발자의 성장기

한이아지와 함께하는 정보처리기사 2과목 1번째) 데이터 입 · 출력 구현 본문

IT 자격증 공부/정보처리기사

한이아지와 함께하는 정보처리기사 2과목 1번째) 데이터 입 · 출력 구현

개발자 김케빈 2021. 1. 25. 17:52

2과목 1번째 부분인

데이터 입 · 출력 구현에 대해서 정리해보겠습니다!

(☆ 중요도 0.5 / ★ 중요도 1)

 

PART2. 소프트웨어 개발

  • Chap01) 데이터 입 · 출력 구현
    • 논리 데이터 저장소 확인
    • 물리 데이터 저장소 설계
    • 데이터 조작 프로시저 작성
    • 데이터 조작 프로시저 최적화
  • Chap02) 통합 구현
    • 모듈 구현
    • 통합구현 관리
  • Chap03) 제품 소프트웨어 패키징
    • 제품 소프트웨어 패키징
    • 제품 소프트웨어 매뉴얼 작성
    • 제품 소프트웨어 버전 관리
  • Chap04) 애플리케이션 테스트 관리
    • 애플리케이션 테스트케이스 설계
    • 애플리케이션 통합 테스트
    • 애플리케이션 성능 개선
  • Chap05) 인터페이스 구현
    • 인터페이스 설계 확인
    • 인터페이스 기능 구현
    • 인터페이스 구현 검증

Chap01) 데이터 입 · 출력 구현


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

1.1. 자료 구조(★★★)

[1] 자료 구조란?

 컴퓨터 상 자료를 효율적으로 저장하기 위해 만들어진 논리적인 구조 (방법과 자료간의 관계 명시)

 

[2] 자료 구조의 분류

구조 설명 종류
선형 구조 데이터를 연속적으로 연결한 자료 구조 리스트, 스택, 큐, 데크
비선형 구조 데이터를 비연속적으로 연결한 자료 구조 트리, 그래프

[3] 선형 구조


 ① 리스트
    ⒧ 선형 리스트 : 연속되는 기억 장소에 저장되는 리스트, 삽입 · 삭제 시 기존 자료의 이동 필요
    ⑵ 연결 리스트 : 노드의 포인터 부분으로 서로 연결시킨 리스트, 기억 장소가 반드시 연속적이지 않음
                          추가적인 저장공간 필요, 포인트를 통해 찾는 시간이 추가되어 선형 리스트에 비해 느림

 

 ② 배열 : 동일한 자료형의 데이터가 나열되어 순서를 가지는 집합

            정적인 자료구조, 반복적인 데이터 처리에 적합


 ③ 스택 : 한 방향으로만 자료를 넣고 꺼낼 수 있는 LIFO (Last-In First-Out) 형식의 구조
              오버플로와 언더플로 발생가능, TOP-BOTTOM 존재


 ④ 큐 : 한쪽 끝에서는 삽입이 이뤄지고, 반대편 끝에서는 삭제 작업이 이루어지는 FIFO 형식의 자료 구조

           2개의 포인터 존재 (프론트 포인터 → 꺼내는 쪽 / 리어 포인터 → 넣는 쪽), 운영체제 작업 스케줄링에 이용

 ⑤ 데크 : 큐의 양쪽 끝에서 삽입과 삭제를 할 수 있는 자료 구조
              2개의 포인터를 사용하여, 양 쪽의 삭제 / 삽입이 가능

 

[4] 비선형 구조

 

 ① 트리 : 데이터들을 계층화시킨 자료 구조, Node와 Link로 구성
            인덱스를 조작하는 방법으로 가장 많이 사용, 배열과 달리 Node들이 포인터로 연결되어 노드의 상한선이 없음


 트리 용어 정리

용어 설명
루트 노드 트리에서 부모가 없는 최상위 노드이자 트리의 시작점
단말 노드 자식이 없는 노드, 트리의 가장 말단에 위치
레벨 루트 노드를 기준으로 특정 노드까지의 경로 길이
조상 노드 특정 노드에서 루트에 이르는 경로 상 모든 노드
자식 노드 특정 노드에 연결된 다음 레벨의 노드
부모 노드 특정 노드에 연결된 이전 레벨의 노드
형제 노드 같은 부모를 가진 노드
깊이 루트 노드에서 특정 노드에 도달하기 위한 간선의 수
차수 특정 노드에 연결된 자식 노드의 수

 트리 순회방법

구분 개념도 순회방법
전위 순회
Root → Left → Right
중위 순회
Left → Root → Right
후위 순회
Left → Right → Root

 ② 이진트리 : 차수가 2 이하인 노드로 구성되어 자식이 둘 이하로 구성된 트리

 

 이진 트리 유형

구분 개념도 설명
포화 이진 트리
모든 레벨에서 노드가 채워진 트리
완전 이진 트리
마지막 레벨을 제외하고 노드가 채워진 트리
편향 이진 트리
노드의 왼쪽이나 오른쪽 한곳만 노드가 존재하는 트리

 

1.2. 데이터베이스 (★★)

[1] 데이터베이스란?

 특정 조직의 업무를 수행하는 데 필요한 데이터들의 집합

 

[2] 데이터베이스 특징 : <통저운공>

 - 통합된 데이터 : 자료의 중복을 최대로 배제하여 중복을 허용하지 않는 데이터

 - 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터
 - 운영 데이터 : 고유한 업무를 수행하는 데 있어 반드시 필요한 데이터
 - 공용 데이터 : 어려 시스템이 공동으로 소유하고 유지하는 데이터

 

[3] DBMS

 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 SW

 - DDL (데이터 정의어) : 데이터베이스에 저장될 데이터의 타입과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시

 - DML (데이터 조작어) : 사용자와 데이터베이스 사이의 인터페이스 수단을 제공

 - DCL (데이터 제어어) : 무결성, 보안, 권한, 병행 제어 제공

1.3. 논리 데이터 저장소 (★★)

[1] 논리 데이터 저장소란?
 업무를 모델링 표기법으로 형상화한 데이터의 저장소, 사용자에게 이해하기 쉬운 논리로 추상화하여 제공

 

 논리 데이터 저장소 구조

   - 개체

   - 속성

   - 관계


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

2.1.  물리 데이터 저장소 (★★)

[1] 물리 데이터 저장소란?

 DBMS의 특성을 고려하여 데이터베이스 저장 구조로 변환하기 위한 데이터 저장소

 

 논리 데이터 저장소에서 물리 데이터 저장소로 모델 변환

순서 변환 단계
1 단위 개체를 테이블로 변환
2 속성을 컬럼으로 변환
3 UID를 기본 키로 변환
4 관계를 외래 키로 변환
5 컬럼 유형과 길이 정의
6 반 정규화 수행

[2] 물리 데이터 저장소 구성

 - 테이블 제약조건 설계

 - 인덱스 설계

 - 뷰 설계

 - 클러스터 설계 

 - 파티션 설계

 - 디스크 구성 설계

 

 파티션 종류 - <레해리컴>

종류 설명
범위 분할 (range) 분류 키 값이 범위 내에 있는 지 여부를 구분하는 분할 기법
해시 분할 (hash) 해시 함수의 값에 따라 파티션에 포함할 지 여부를 결정하는 분할 기법
목록 분할 (list) 값 목록에 파티션을 할당하고 분할 키 값을 그 목록에 맞게 분할하는 기법
조합 분할 (composit) 범위 분할, 해시 분할, 목록 분할 중 2개 이상의 분할 기법을 결정하는 기법

파티션의 장점 - <성가백합 = 성가대가 백합꽃을 들고 있다>
 능 향상, 용성 향상, 업 가능, 경 감소

 

2.2. 트랜잭션 인터페이스(★★☆)

[1] 트랜잭션 인터페이스 개념

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

 

[2] 트랜잭션 인터페이스의 특징 - <ACID>

특징 설명
Atomicity     원자성 트랜잭션 연산을 데이터베이스 반영하거나 반영하지 말아야 함 (All or Nothing)
Consistency  일관성 트랜잭션 실행을 성공적으로 완료할 시 일관성 있는 데이터베이스 상태 유지
Isolation      고립성 둘 이상 트랜잭션 동시 실행 시 한 개의 트랜잭션만 접근이 가능하며 다른 트랜잭션 접근 불가
Durability     영속성 성공적으로 완료된 트랜잭션 결과는 영구적으로 반영

[3] 트랜잭션 연산

 - COMMIT : 트랜잭션 처리가 정상적으로 종료되어 수행한 변경 내용을 DB에 반영하는 연산

 

 - ROLLBACK : 트랜잭션 처리가 비정상적으로 종료되어 DB의 일관성이 깨졌을 때
                트랜잭션의 모든 작업을 취소하고 이전 상태로 되돌리는 연산

 

 - SAVEPOINT : 트랜잭션 내에서 ROLLBACK할 위치인 저장점을 지정하는 연산, 여러 개의 SAVEPOINT 지정 가능

 


3장과 4장은 시험에 나올 확률이 적어 핵심 정리에는 생략하였습니다.

그렇지만 나올 가능성도 있으니 꼭 책으로 읽어 보시길 추천드립니다!

 

Comments