Etc/📃 Certification

[정보처리기사] 2과목 1장 - 데이터 입출력 구현

posted by sangmin

2과목 - 소프트웨어 개발

1장. 데이터 입출력 구현


34. 자료 구조

자료 구조의 정의

  • 효율적인 프로그램을 작성할 때 가장 우선적인 고려사항은 공간 효율성, 시간 효율성
  • 자료 구조는 자료의 표현과 그것과 관련된 연산
  • 자료 구조는 일련의 자료들을 조직하고 구조화하는 것

자료 구조의 분류

  • 선형 구조 (Linear Structure)
    • 배열
    • 선형 리스트
      • 연속 리스트
      • 연결 리스트
    • 스택
    • 데크
  • 비선형 구조 (Non-Linear Structure)
    • 트리
    • 그래프

배열 (Array)

  • 배열은 동일한 자료형의 데이터들이 순서를 갖고 있는 집합
  • 반복적인 데이터 처리 작업에 적합한 구조

선형 리스트 (Linear List)

  • 연속 리스트 (Contiguous List)
    • 배열처럼 연속되는 기억장소에 저장되는 자료 구조
    • 기억장소 이용 효율 (밀도) = 1
    • 삽입, 삭제 시 자료의 이동 필요
  • 연결 리스트 (Linked List)
    • 자료들을 연속적으로 배열시키지 않고 포인터를 이용하여 서로 연결
    • 노드의 삽입, 삭제 작업이 용이
    • 기억장소 이용 효율이 좋지 않음

스택 (Stack)

  • 리스트 한쪽 끝으로만 자료의 삽입, 삭제가 이루어지는 자료 구조
  • LIFO (Last In First Out)

큐 (Queue)

  • 리스트 한쪽에서는 삽입, 다른 한쪼겡서는 삭제 작업이 이루어지는 자료 구조
  • FIFO (First In First Out)

트리 (Tree)

  • 사이클을 이루지 않도록 구성한 그래프의 특수한 형태

35. 데이터저장소 / 데이터베이스 / DBMS

데이터저장소

  • 데이터저장소는 논리 데이터저장소물리 데이터저장소로 구분
  • 논리 데이터저장소 : 데이터 간 연관성, 제약조건을 식별하여 논리적인 구조로 조직화한 것
  • 물리 데이터저장소 : 논리 데이터저장소에 저장된 데이터를 하드웨어적인 저장장치에 저장한 것

데이터베이스

  • 데이터베이스 정의
    • 통합된 데이터 (Integrated Data) : 자료의 중복을 배제한 데이터의 모임
    • 저장된 데이터 (Stored Data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료
    • 운영 데이터 (Operational Data) : 업무를 수행하는 데 없어서는 안 될 반드시 필요한 자료
    • 공용 데이터 (Shared Data) : 여러 응용 시스템들이 공동으로 소유하는 자료

DBMS (DataBase Management System, 데이터베이스 관리 시스템)

  • DBMS란 사용자 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어
  • 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템
  • 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리
  • 필수 기능
    • 정의 (Definition) : 데이터베이스에 저장될 데이터 타입 및 구조에 대해 정의
    • 조작 (Manipulation) : 데이터 검색, 갱신, 삽입, 삭제 기능
    • 제어 (Control) : 데이터 무결성이 유지되도록 제어

DBMS의 장단점

  • 장점
    • 데이터의 논리적, 물리적 독립성 보장
    • 데이터 중복을 피할 수 있어 메모리 절약
    • 데이터 일관성 및 무결성 유지
    • 저장된 자료를 공동으로 이용할 수 있고, 항상 최신 데이터 유지
    • 데이터 실시간 처리 가능
  • 단점
    • 데이터베이스 전문가 부족
    • 전산화 비용이 증가하고, 복잡한 시스템
    • 파일 백업 및 리커버리가 어려움

36. 데이터 입출력

데이터 입출력의 개요

  • 단순 입력과 출력뿐만 아니라 데이터를 조작하는 모든 행위 (SQL 사용)
  • 데이터 접속
    • 데이터 입출력을 구현하기 위해 개발 코드 내에 SQL 삽입하거나, 객체와 데이터를 연결하는 것
  • 트랜잭션 (Transaction)
    • 데이터베이스 조작 시 한꺼번에 모두 수행되어야 할 일련의 연산들

SQL (Structured Query Language)

  • 관계대수와 관계해석을 기초로 한 혼합 데이터 언어
  • 데이터 정의어 (DDL)
  • 데이터 조작어 (DML)
  • 데이터 제어어 (DCL)

데이터 접속 (Data Mapping)

  • 데이터 접속은 소프트웨어 기능 구현을 위해 프로그래밍 코드와 데이터베이스의 데이터를 연결하는 것
  • SQL Mapping
    • 프로그래밍 코드 내 SQL 직저 입력
    • ex) JDBC, ODBC, MyBatis
  • ORM (Object-Relational Mapping)
    • 객체와 데이터베이스의 데이터를 연결하는 기술
    • ex) JPA, Hibernate, Django

트랜잭션 (Transaction)

  • 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
  • TCL (Transaction Control Language)
    • COMMIT : 트랜잭션 처리가 정상적으로 종료되어 변경 내용을 데이터베이스에 반영
    • ROLLBACK : 트랜잭션 처리가 비정상적으로 종료되어 변경 내용을 취소하고 이전 작업으로 되돌림
    • SAVEPOINT : 트랜잭션 내 ROLLBACK 할 위치인 저장점을 지정

37. 절차형 SQL

절차형 SQL의 개요

  • 절차형 SQL은 C나 JAVA 등의 프로그래밍 언어처럼 연속적인 실행이나 반복 등의 제어가 가능한 SQL
  • 일반적인 프로그래밍 언어에 비해 효율은 떨어지지만 단일 SQL문으로 처리하기 어려운 연속적인 작업들을 수행하는 데 적합
  • DBMS 엔진에서 직접 실행되므로 입출력 패킷이 적은 편
  • 블록 구조 (BEGIN ~ END)로 되어있기 때문에 기능별 모듈화 가능
  • 절차형 SQL의 종류
    • 프로시저 (Procedure) : 호출을 통해 미리 저장해 놓은 SQL 작어 수행
    • 트리거 (Trigger) : 데이터 입력, 삭제 등의 이벤트 발생 시 관련 작업이 자동으로 수행
    • 사용자 정의 함수 : 프로시저와 유사하며 예약어 RETURN을 사용하여 처리 결과 반환

절차형 SQL의 테스트와 디버깅

  • 절차형 SQL은 디버깅을 통해 기능의 적합성 여부를 검증
  • 테스트 전에 생성을 통해 구문 오류나 참조 오류의 존재 여부 확인
  • 정상적으로 생성된 절차형 SQL은 디버깅을 통해 로직 검증

쿼리 성능 최적화

  • 쿼리 성능을 최적화하기 전에 APM (성능 측정 도구)을 사용하여 최적화할 쿼리 선정

참고

 

시나공 정보처리기사 필기

2020년 정보처리기사 NCS기반 전면 개편!정보처리기사 시험은 NCS 학습 모듈 중 정보통신 분야의 ‘정보기술’ 분류에 포함된 ‘정보기술개발’과 ‘정보기술운영’에 속한 125개의 학습 모듈을

book.naver.com