상세 컨텐츠

본문 제목

정보처리기사 2과목 소프트웨어 개발 - 1장 데이터 입 · 출력 구현 요점 정리

정보처리기사 필기

by E_ONION 2020. 6. 3. 01:24

본문

1. 자료구조 : 자료의 표현과 연산, 자료들을 조직하고 구조화, 어떠한 자료 구조든 연산 처리 가능,

                 자료 구조에 따라 실행 시간 다름

- 선형 구조

┌ 배열 : 기억장소 추가 어렵, 데이터 삭제 시 메모리 낭비 발생, 첨자 이용, 반복적 처리 적합

┢ 선형 리스트 ┌ 연속 리스트 : 배열 이용, 기억장소 효율 밀도 1로 가장 좋음

                    └ 연결 리스트 : 포인터 이용, 삽입, 삭제 용이 but 느림, 기억 공간 효율 좋지 않음

┢ 스택 : LIFO, 한쪽 끝에서만 자료 삽입, 삭제

┢ 큐 : FIFO, 한쪽에서 삽입, 다른 한쪽에서 삭제, 시작과 끝을 표시하는 두 개의 포인터 존재, OS 작업 스케줄링에 사용

└ 데크 : 양쪽에서 삽입 삭제

- 비선형 구조 ┌ 트리

                  └ 그래프

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

● 데이터저장소 ┌ 논리 데이터 저장소 : 데이터 및 데이터 간의 연관성, 제약 조건을 식별하여 논리적인 구조로 조직화

                      └ 물리 데이터 저장소 : 논리 데이터저장소에 저장된 데이터와 SW가 운용될 환경의 물리적 특성

                                                     고려하여 HW 저장장치에 저장한 것

● 데이터베이스

┌ 통합된 데이터 : 종속, 중복 배제

┢ 저장된 데이터 : 쉽게 접근하여 처리할 수 있도록 저장 장치에 저장

┢ 운영 데이터 : 항상 사용할 수 있도록 운영, 반드시 필요한 데이터

└ 공용 데이터 : 여러 사람에 의해 공동 소유

● DBMS : 데이터베이스 관리해 주는 SW, 종속성 · 중복성 문제 해결

- 필수 기능

┌ 정의 기능 : 형(Type)과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능

┢ 조작 기능 : 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 USER와 DB 사이의 인터페이스 수단 제공

└ 제어 기능 : 무결성, 보안, 권한검사, 병행 제어

- 단점 : 전문가 부족, 비용 증가, 과부하 발생, 예비(백업) · 회복 어렵, 시스템 복잡

3. 데이터 입 · 출력 : SW 기능 구현을 위해 DB에 데이터 입력 or 출력하는 작업

- 단순 입출력 뿐이 아닌 데이터 조작하는 모든 행위

● SQL : 많은 회사에서 관계형 데이터베이스(RDB)를 지원하는 언어로 채택, 관계대수와 관계해석을 기초로 한 혼합 데이터 언어

- 데이터 정의어(DDL) : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 or 삭제 시 사용 언어

- 데이터 조작어(DML) : 데이터를 실질적으로 처리하는 데 사용되는 언어

- 데이터 제어어(DCL) : 데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용되는 언어

● 데이터 접속 : SW 기능 구현을 위해 프로그래밍 코드와 DB 데이터 연결(Mapping) 하는 것

- SQL Mapping : DBMS에 접속하는 기술

                       // 관련 프레임워크 : JDBC, ODBC, MyBatis

- ORM(Object-Relational Mapping) : 객체(Object)와 관계형 데이터베이스의 데이터 연결(Mapping) 하는 기술

                                                // 관련 프레임 워크 : JPA, Hibernate, Django

 

● 트랜잭션 : DB의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 or 한꺼번에 수행되어야 할 일련의 연산

- 명령어 : TCL

┌ COMMIT : 정상 종료

┢ ROLLBACK : 비정상 종료로 이전 상태로 돌리는 연산

└ SAVEPOINT(=CHECKPOINT) : ROLLBACK할 위치인 저장점을 지정하는 명령어, 여러 번 지정 가능

4. 절차형 SQL : C, JAVA와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL을 의미

- 연속적인 작업들 처리 적합, 다양한 기능 수행하는 저장 모듈 생성 가능

- 입출력 패킷 적은 편, 블록 구조로 인해 기능별 모듈화 가능

┌ 프로시저 : 특정 기능 수행하는 트랜잭션 언어, 호출 통해 실행되어 미리 저장해 놓은 SQL 작업 수행,

                  처리 결과 반환 X or 한 개 이상의 값 반환

┢ 트리거 : 데이터의 입력, 갱신, 삭제 이벤트 발생 시 관련 작업 자동으로 수행

└ 사용자 정의 함수 : 프로시저와 유사하게 SQL 사용하여 일련 작업 연속적으로 처리,

                            종료 시 예약어 RETURN 사용하여 처리 결과단일 값으로 반환

● 절차형 SQL의 테스트와 디버깅 : 적합성 여부 검증, 테스트 과정 수행

- 구문 오류(Syntax Error)나 참조 오류의 존재 여부를 확인

- SQL 특성상 오류 및 경고 메시지 상세 출력되지 않으므로 SHOW 명령어 통해 내용 확인 및 문제 수정

- 디버깅 통해 로직 검증, 결과를 통해 최종 확인

- 삽입 및 변경 주석으로 처리, 출력하여 확인

● 쿼리 성능 최적화 : 성능 향상을 위해 SQL 코드를 최적화하는 것

- APM 사용하여 최적화할 쿼리 선정 => 성능이 가장 떨어지는 쿼리 대상 최적화 진행

- SQL 코드와 인덱스 재구성

관련글 더보기

댓글 영역