Chimy's Program
정보처리기사 필기 - 소프트웨어 개발 : 데이터 입출력 구현 본문
정보처리기사 필기 - 소프트웨어 개발 : 데이터 입출력 구현
자료구조 : 자료, data, 자료의 표현/연산
자료구조 | 선형구조 | 리스트 |
스텍 | ||
큐 | ||
데큐 | ||
비선형구조 | 트리 | |
그래프 |
리스트(Linear List)
ⓞ 배열(Array)
- 선형리스트
- 연속된 기억공간에 저장
- 삽입/삭제가 불편
- 기억공간의 밀도가 좋다
- 연속된 공간에 존재
ⓞ 연결리스트
- 연속된 공간을 필요로 하지 않고 포인터로 연결된 리스트
- 삽입/삭제가 용이
- 희소행렬
- 검색이 느리다
- 포인터 공간 필요
ⓞ 스택(Stack)
- LIFO 구조
- 삽입과 삭제가 한 쪽 끝에서 이루어 진다(Top)
- 산술식 표현 함수, 인터럽트 복귀주소에서 사용
ⓞ 큐(Queue)
- FIFO 구조
- 입력과 출력이 다른 방향에서 이루어 진다(Front, Rear)
- 작업스케줄링, 버퍼관리에서 사용
ⓞ 데크
- 입출력이 양방향에서 가능한 자료구조
- 스크롤 : 삽입제한
- 셀프 : 출력제한
ⓞ 트리(Tree)
- 루트 : 최상위 노드
- 차수 : 가지수 / 트리의 차수 : 가장 많은 가지수
- 레벨 : 루트노드를 1로 잡고 그 하위 노드부터 1씩 증가 / 깊이 : 최대 레벨
- 단말 노드 : 하위(자식)노드가 없는 차수가 0인 노드
- 부모 노드 : 한단계 상위 노드
- 자식 노드 : 한단계 하위 노드
- 형제 노드 : 같은 부모노드를 같은 노드들
- 조상 노드 : 해당 노드의 상위 노드들
- 트리의 순회 방법
- 중위 순회 : 왼쪽 서브트리 → 중간 노드 → 오른쪽 서브트리
- 전위 순회 : 중간 노드 → 왼쪽 서브트리 → 오른쪽 서브트리
- 후위 순회 : 왼쪽 서브트리 → 오른쪽 서브트리 → 중간 노드
※ 이진 트리 : 최대 가지수가 2인 트리
※ 정이진트리 : 모든 노드의 가지수가 2개인 트리 / 깊이가 k일 경우 총 노드의 수 : 2^k-1
ⓞ 그래프
- 객체 간의 관계를 표현할 수 있는 자료구조
- 그래프 종류
- 무방향 그래프 : 선에 방향이 없다
- 방향 그래프 : 선에 방향이 있다
- 그래프 특징
- 네트워크 모델이다, 2개 이상의 경로가 가능하다
- 자기 자신을 향하는 간선은 없다
- 중복된 간 선을 허용하지 않는다
파일
ⓞ 순차 파일
- 입력대는 순서대로 저장, 효율↑
- 검색/삽입/삭제/이동 불편
ⓞ 직접 파일
- 임의의 저장공간에 저장
- 접근시간이 빠르고 삽입/삭제 용이
- I/O가 잦을 때 사용
ⓞ 색인 순차 파일
- 순차처리 가능, 랜덤처리 가능, 효율적인 검색
- 추가저장공간 필요(overflow영역), 액세스시간이 느리다
- 기본 영역 : 데이터가 저장되는 영역
- 색인 영역(트랙, 실린더, 마스터) : 레코드의 위치
- 오버플로우 영역 : 빈공간이 없을 때 기록
데이터베이스
- 통합데이터, 저장데이터, 운영데이터, 공유데이터
ⓞ 데이터베이스 특징
- 실시간 접근성, 내용에 의한 참조, 동시 공유, 계속적인 변화
ⓞ DBMS의 장/단점
장점 | 단점 |
데이터 중복 최소화 | 데이터베이스 전문가 부족 |
데이터 동시 공유 가능 | 초기 구축비용 |
데이터 독립성 확보 | 서버의 부담 (대용량 디스트의 집중처리로 과부하 발생) |
데이터 일관성 유지 | |
데이터 무결성 유지 | 대용량 기억장치 필요 |
데이터 보안 향상 | 백업, 회복방법이 복잡함 |
표준화 가능 |
DBMS : 데이터베이스 관리 시스템(SW)
- 효율적인 DB사용환경을 제공하는 소프트웨어
- 정의기능 : 구조 정의, 변경, 삭제
- 조작기능 : 데이터 검색, 삽입, 삭제, 수정
- 제어기능 : 접근권한 관리, 정확한 데이터 유지
스키마
- 자료를 저장하는 구조, 표현방법
- DB구조, 제약조건 기술
ⓞ 스키마 종류
- 외부 스키마 : 사용자 관점, 여러개
- 개념 스키마 : 기관, 조직체 입장, 1개
- 내부 스키마 : 물리적 저장 구조, 1개
데이터 베이스 설계 순서
- 요구조건 분석 : 사용자의 요구사항 파악, 명세 기술(문서화)
- 개념적 설계 : 그림표현, E-R 다이어그램
- 논리적 설계 : 모델링, 스키마 설계
- 물리적 설계 : 저장장치에 물리적구조, 데이터를 변환하는 과정
- 데이터베이스 구현
SQL(Structured Query Language) : 1974년 IBM에서 개발
- DDL(데이터정의어) : 구조 정의, 수정, 삭제 ex. Create, Alter, Drop
- DML(데이터조작어) : 데이터 관련 검색, 삽입, 삭제, 수정 ex. Select, Insert, Delete, Update
- DCL(데이터제어어) : 접근권한 ex. Grant, Revoke, Commit, Rollback
ⓞ 데이터 접속(Data Mapping)
- SQL Mapping : 프로그램에 직접 SQL을 입력하여 DBMS에 접속 ex. JDBC, ODBC, MyBatis
- ORM : Object(객체)와 관계형 DB의 데이터 연결 ex. JPA, Hibernate, Django
ⓞ 트랜잭션(Transaction)
- 작업수행단위
- 원자성 : 수행되거나 수행되지 않아야 한다
- 일관성 : 항상 같은 값을 출력
- 격리성(독립성) : 다른 트랜잭션이 사용할 때 접근 불가
- 영속성 : 출력결과는 영속적이다
- Commit : 결과가 성공적임을 알리는 명령어
- Rollback : 오류시 복구하는 명령어
절차형 SQL
- 연속적인 실행, 분기, 반복제어가 가능한 SQL
- 프로시저 : 특정 기능을 수행하는 트랜잭션 언어
- 트리거 : 입력, 갱신, 삭제 같은 이벤트가 발생 시 작업 수행
- 사용자 정의함수 : 프로시저와 유사, SQL을 통해 작업 처리, Return으로 반환
ⓞ 절차형 SQL의 테스트와 디버깅
- 실행을 통해 결과 확인
- 기능의 적합성 여부 판단
- Show 명령어 이용
ⓞ 쿼리 성능 최적화
- 데이터 입출력 성능 향상을 위해 SQL 코드 최적화
- APM을 이용해 최적화할 쿼리 선정
- 옵티마이져 : DBMS에서 최적의 경로를 찾아주는 모듈
※ APM
애플리케이션 성능 관리를 위해
접속자, 자원현황, 트랜잭션수행내역, 장애진단 등 다양한 모니터링 기능을 제공하는 도구
'BASE' 카테고리의 다른 글
정보처리기사 필기 - 소프트웨어 개발 : 제품 소프트웨어 패키징 (0) | 2020.05.27 |
---|---|
정보처리기사 필기 - 소프트웨어 개발 : 통합 구현 (0) | 2020.05.27 |
정보처리기사 필기 - 소프트웨어 설계 : 인터페이스 설계 (0) | 2020.05.26 |
정보처리기사 필기 - 소프트웨어 설계 : 애플리케이션 설계 (0) | 2020.05.25 |
정보처리기사 필기 - 소프트웨어 설계 : 화면 설계 (0) | 2020.05.24 |
Comments