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 코드와 인덱스 재구성
정보처리기사 2과목 소프트웨어 개발 - 3장 제품 소프트웨어 패키징 (0) | 2020.06.03 |
---|---|
정보처리기사 2과목 소프트웨어 개발 - 2장 통합 구현 요점 정리 (0) | 2020.06.03 |
정보처리기사 1과목 소프트웨어 설계 - 4장 인터페이스 설계 요점 정리 (0) | 2020.06.03 |
정보처리기사 1과목 소프트웨어 설계 -3장 애플리케이션 설계 요점 정리 (0) | 2020.05.22 |
정보처리기사 1과목 소프트웨어 설계 - 2장 화면 설계 요점 정리 (0) | 2020.05.22 |
댓글 영역