기억해 두면 좋은 IT 지식 5 -스키마, NoSQL, 페이지
스키마 3 계층에는 외부 스키마, 개념 스키마, 내부 스키마가 있습니다.
외부 스키마는 서브 스키마라고도 불리고, 사용자 뷰라고도 불립니다. 필요 데이터베이스 논리적 구조 정의하고, 여러 개 외부 스키마 존재 가능합니다. 하나의 외부 스키마를 공용으로 사용이 가능하고, 같은 데이터베이스에 다른 관점을 정의하는 것을 허용합니다. COBOL, C 등 언어를 통해서 DB 접근하는 계층입니다.
개념 스키마는 전체적인 뷰입니다. 데이터베이스의 논리적 구조로 하나만 존재하며, 개체 간 관계, 제약 조건 나타냅니다. 데이터베이스 접근 권한, 보안, 무결성 규칙의 명세를 정의합니다. 데이터베이스 파일에 저장되는 데이터의 형태를 개념 스키마라고 부릅니다. 일반적 스키마 = 개념 스키마인 것입니다. 기관, 조직체 관점 데이터베이스 정의한 것으로, 데이터베이스 관리자(DBA)에 의해 구성됩니다.
내부 스키마는 저장 스키마입니다. 물리적 저장장치에 실립니다. 저장될 레코드의 물리적인 구조 정의, 저장 데이터 항목 표현방법, 내부 레코드 물리적 순서 나타내고, 시스템 프로그래머, 시스템 설계자 관점에서 본 스키마 계층입니다.
힙 정렬(Heap sort)
최악과 평균이 모두 O(nlogn)으로 빠른 속도를 갖는 정렬법입니다.
OLAP(On-Line Analytical Processing, 온라인 분석 처리)
데이터웨어하우스에 입력된 정보를 처리하는 방법으로, 데이터웨어하우스가 다량의 데이터 저장소(Repository)의 역할을 한다면, 이 자료를 이용해서 업무에서 요구하는 유형대로 데이터를 분석하고, 보고서를 생성하는 도구의 역할을 합니다.
OLAP 종류 : ROLAP, MOLAP, HOLAP
OLAP 연산 : roll-up, drill-down, pivoting, slicing &dicing
에이징(Aging)
특정 프로세스의 우선순위가 낮아서 무한정 기다리게 되는 경우, 양보하거나 기다린 시간에 따라서 일정 시간이 지나면 우선순위를 한 단계씩 높여줘서 무기한 기다리는 문제를 해결하는 방법입니다. SJF나 우선순위 기법에서 발생할 수 있는 무한 연기 상태, 기아 상태를 예방할 수 있습니다.
소프트웨어 공학(Software Engineering)
가장 경제적이고 신뢰도 높은 소프트웨어를 만들기 위한 방법으로, 도구와 절차들의 체제를 말합니다. 특성으로는 경제성, 적시성, 보편타당성이 있습니다.
SLIM : Rayleigh - Norden 곡선과 Putnam 예측 모델을 기초로 하여 개발된 자동화 추정 도구를 말합니다. 푸트남 사람들은 슬림하다고 외웠습니다.
ESTIMACS : 다양한 프로젝트와 개인별 요소를 받아들일 수 있도록 FP 모형을 기반으로 해서 개발된 자동화 추정 도구입니다.
Booch, Jacobson, Wirfs-Brock, Cord&Yourdon
Booch 방법은 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 전부 사용하는 분석 방법으로, 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의합니다.
Jacobson 방법 : Use Case를 강조하여 사용하는 분석 방법입니다. 유스 케이스 하면 제이콥슨입니다.
Wirfs-Brock 방법 : 분석과 설계의 구분이 없고, 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법입니다.
Cord&Yourdon 방법 : E-R다이어그램을 사용하여 객체의 행위를 모델링하며 객체 식별, 주제 정의, 구조 식별, 속성과 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정으로 구성됩니다.
비선형 구조를 가진 것은 트리, 그래프입니다.
사이클을 형성하지 않는 것은 트리이고, 사이클 형성하는 것은 네트워크(망), 그래프입니다.
데크(Double Ended Queue) : 삽입과 삭제가 리스트의 양쪽 끝에서 모두 가능한 자료구조이며 스택과 큐의 장점만 따서 구성한 것입니다. 입력이 한쪽에서만 발생하고 출력은 양쪽에서 일어날 수 있는 입력 제한과 입력은 양쪽에서 일어나고 출력은 한쪽에서만 이루어지는 출력 제한이 있습니다.
스택 : 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료 구조입니다. 가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입 선출(LIFO) 방식으로 자료를 처리합니다. 바구니에 쌓았을 때 제일 위에 것부터 꺼낸다고 생각하면 좋습니다.
큐 : 한 곳에서는 삽입이 이루어지고 다른 곳에서는 삭제 작업이 진행되도록 만든 자료구조입니다. 시작과 끝을 나타내는 두 개의 포인터가 있습니다.
트리 : 트리는 비선형 자료구조입니다.
NoSQL
일관성 모델을 이용하는 데이터의 저장 및 검색을 할 수 있도록 서비스를 제공하며, 정규화를 전제로 하는 것이 아닌 단순 검색 및 추가 작업을 위한 것으로 성능을 높이는 것이 목적인 언어입니다. Not Only SQL의 약자이며, 비정형 데이터의 저장을 위해 유연한 데이터 모델을 지원하고, 전통적인 관계형 베이스 관리시스템과는 다른 비 관계형 DBMS입니다.
이진 검색 알고리즘
탐색 효율이 좋고, 탐색 시간이 적게 소요됩니다. 검색할 데이터가 정렬되어 있어야 하고, 비교 횟수를 거듭할 때마다 검색 대상이 되는 데이터의 수가 절반으로 줄어듭니다.
페이지 크기에 따른 장단점
페이지가 작아질 경우
페이지 단편화 감소하고, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듭니다. 프로세스 수행에 필요한 내용만 주 기억장치에 적재 가능하기 때문에 기억장치의 효율성 높아집니다.
페이지 맵 테이블의 크기가 커져서, 매핑 속도가 느려지고, 입 출력 시간 증가하는 것이 단점입니다.
페이지 크기가 클 경우
페이지 맵 테이블의 크기가 작아지기 때문에 매핑 속도가 빨라집니다. 이로 인해 입력과 출력의 효율성이 증가합니다.
그러나, 페이지의 단편화 증가하고, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어납니다. 또한, 필요 없는 내용까지도 주 기억장치에 적재된다는 단점이 있습니다.
선점(Preemptive) 스케줄링의 종류 : SRT, 선점 우선순위, RR, 다단계 큐, 다단계 피드백 큐 등
강 결합 시스템은 같은 운영체제에서 여러 개의 프로세서가 하나의 메모리를 공유하여 사용하는 시스템으로, 다중 처리 시스템이라고도 합니다.
IDL : 인터페이스 정의 언어. CORBA의 큰 특징 중 하나는 여러 언어의 지원한다는 것입니다. C, C++, 자바, COBOL
IDL은 Interface Description Language로, 개발자가 메시지를 정의할 수 있게 해주는 선언적 언어이며, CORBA에서 정보를 송수신하는 데 필요한 언어입니다.
ADL : 아키텍처 기술 언어. 소프트웨어 품질과 정확성을 증가시키기 위해서 소프트웨어 아키텍처를 모형화하고 분석하는 수단을 제공합니다.
CSL : 제어 시뮬레이션 언어
UML : 객체지향 분석과 설계를 위한 모델링 언어입니다. Booch, Rumbaugh, Jacobson이 주장하는 각각의 객체지향 방법론 중에서 장점들을 통합하여 여러 가지 방법론들을 모두 표현할 수 있도록 만든 언어입니다.
인터페이스의 여러 뜻
소프트웨어에 의해 간접적으로 제어되는 장치와 소프트웨어를 실행하는 프로세서나 하드웨어.
운영체제, 서브루틴 패키지와 같이 새로운 소프트웨어에 연결되어야 하는 소프트웨어.
키보드나 기타 입출력 장치를 통해서 소프트웨어를 사용하는 사람.
순서적인 연산에 의해 소프트웨어를 실행하는 절차.
소프트웨어의 보수
완전화(Perfective) 보수 : 소프트웨어의 본래 기능에 새로운 기능을 추가하거나 성능을 개선하기 위해 소프트웨어를 확장시키는 활동입니다.
적응(Adaptive) 보수 : 소프트웨어의 수명 기간 중에 운영체제나 컴파일러와 같은 프로그래밍 환경 변화와 주변장치 또는 다른 시스템 요소가 업그레이드되거나 변경될 때 기존의 소프트웨어에 반영하기 위해 수행하는 활동입니다.
예방(Preventive) 보수 : 미래의 유지보수를 원활히 하기 위해, 신뢰성을 개선하거나 소프트웨어의 오류 발생에 대비하여 미리 예방 수단을 찾아 두는 활동을 말합니다.
수정(Corrective) 보수 : 시스템을 운영하면서 검사 단계에서 발견하지 못한 잠재적인 오류를 찾아 수정하는 활동을 말합니다.
자료 흐름도의 도형
원 = 프로세스 (process)
화살표 = 흐름 (data flow)
사각형 = 단말 (terminator)
직선(평행선, 이중선) = 저장소 (data store)
경로제어 표(Routing Table) 구성 3요소
다음 홉 주소, 메트릭(Metric), 목적지(수신지) 주소
RIP와 OSPF
RIP : 소규모 동종의 네트워크 내에서 효율적인 방법으로 최대 홉을 15로 제한합니다.
OSPF : 홉 수에 제한이 없어 대규모 네트워크에서 많이 사용되는 프로토콜로 라우팅 정보에 변화가 있을 때 변화된 정보만 네트워크 내의 모든 라우터에 알림.
BGP : 자율 시스템 간의 라우팅 프로토콜
ppp : 대게 두 개의 라우터를 접속할 때 사용되며, IETF의 표준 프로토콜입니다. 오류 검출 기능만 사용되며, 재전송을 통한 오류 복구와 흐름 제어 기능은 제공되지 않습니다.
HDLC 전송 동작 모드 3가지 - 정규 응답, 비동기 응답, 비동기 균형
NRM (Normal Response Mode) - 정규 응답 모드
ARM (Asynchronous Response Mode) - 비동기 응답 모드
ABM (Asynchronous Balanced Mode) - 비동기 균형 모드
완전 그래프의 최대 간선의 개수 구하기
(x : 간선의 개수, y : 노드의 개수(정점의 개수))
- 무방향 그래프(노 순환)의 경우 : x = y(y-1)/2
- 방향 그래프의(예스 순환) 경우 : x = y(y-1)