핵심개념정리
no | 개념 | 설명 |
1 | 운영체제(OS) | (Operating System) 사용자가 컴퓨터 하드웨어를 쉽게 사용할 수 있도록 인터페이스 기능을 해주는 SW로, 한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영하여 사용자의 편리성을 제공 |
2 | Windows | MS-DOS의 멀티태스킹 기능과 GUI환경을 제공하는 응용프로그램으로서, 마이크로소프트사가 개발한 OS |
3 | Unix | 교육, 연구기관에서 사용되는 범용 다중 사용자 방식의 시분할 OS |
4 | Liux | 유닉스기반으로 개발, 소스코드가 공개된 오픈소스 기반의 OS(데비안, 레드헷, Fedora, Ubuntu, Cent OS) |
5 | MMU | (Memory Management Unit)가상 메모리 주소를 실제 메모리 주소로 변환하는 장치 |
6 | 프로세스(Process) | CPU에 의해 처리되는 프로그램으로 현재 실행중인 프로그램 |
7 | 프로세스 상태전이 | 하나의 작업이 컴퓨터 시스템에 입력되어 완료되기까지 프로세스의 상태가 준비, 실행 및 대기 상태로 변하는 활동 |
8 | 문맥교환 | CPU가 현재 실행하고 있는 프로세스의 문맥상태를 프로세스 제어블록(PCB)에 저장하고 다음 프로세스의 PCB로부터 문맥을 복원하는 작업 |
9 | 가상화(Virtualization) | 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러개로 보이게 하는 기술 |
10 | 클라우딩 컴퓨팅 | 인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드(인터넷)에 연결된 다른 컴퓨터로 처리하는 기술 |
11 | DB | 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합 |
12 | ERD | 업무 분석 결과로 도출된 실체(엔티티)와 엔티티 간의 관계를 도식화한 다이어그램 |
13 | OSI | (Open System Interconnection) 국제 표준화 기구인 ISO에서 개발한 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 개방형 시스템 상호 연결 모델, 각 계층은 서로 독립적으로 구성되어 있고, 각 계층은 하위 계층의 기능을 이용하여 상위 계층에 기능을 제공함 |
14 | TCP | 전송 계층에 위치하며 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 해주는 프로토콜 |
15 | 패킷 스위칭 | 컴퓨터 네트워크와 통신 방식 중 하나, 작은 블록의 패킷으로 데이터를 전송하며 데이터를 전송하는 동안만 네트워크 자원을 사용하도록 하는 통신 방식 |
16 | 서킷 스위칭 | 네트워크 리소스를 특정 사용층이 독점하도록 하는 통신 방식 |
17 | X.25 | 통신을 원하는 두 단말장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신 프로토콜 |
18 | 멀티 캐스트 | 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식, 인터넷 화상 회의 등 |
19 | 유니 캐스트 | 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 트래픽 또는 메시지를 전송하는 전송 기술 |
20 | 브로드 캐스트 | 하나의 송신자가 같은 서브 네트워크 상의 모든 수신자에게 데이터 전송 |
21 | 애니 캐스트 | 단일 송신자로부터 데이터그램들을 토폴로지 상의 잠재적인 수신자 그룹 안에서 가장 가까운 노드로 연결 |
22 | 프레임 릴레이 | ISDN을 사용하기 위한 프로토콜, ITU-T에 의해 표준으로 작성 |
23 | ATM | (Asynchronous Transfer Mode) 비동기 전송모드의 광대역 전송에 쓰이는 스위칭 기법 동기화를 맞추지 않아 보낼 데이터가 없는 사용자의 슬롯은 다른 사람이 사용할 수 있도록 하여 네트워크 효율성 향상 |
24 | 라우팅 알고리즘 | 목적지까지의 최적 경로를 산출하귀 위한 법칙 |
25 | ORM | (Object-Relational Mapping)프레임워크. 관계형 DB와 객체지향 프로그램 언어 간 호환되지 않는 데이터를 변환하는 프로그래밍 기법 |
26 | PCB | (Process Control Block)프로세스 관리를 위해 필요한 자료를 담고 있는 자료 구조 |
27 | 환경변수 | 프로세스가 컴퓨터에서 동작하는 방식에 많은 영향ㅇ르 미치는 동적 값들의 모임 |
필기랑 같이 잘 정리하기: HRN..튜플개수구하기.등
▶︎ 프로토콜의 기본요소(20년 1회 기출): 구문, 의미, 타이밍
01. 운영체제의 특징
▶︎ 운영체제 종류
▶︎ 운영체제 핵심기능 : (가상)메모리 관리, 프로세스 관리
▶︎ 운영체제 성능평가 기준
1) 처리능력: 일정 시간 내에 시스템이 처리하는 일의 양
2) 반환시간:시스템에 작업을 의뢰한 시간부터 처리가 완료될 때 까지 걸린 시간
3) 사용가능도: 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
4) 신뢰도: 시스템이 주어진 문제를 정확하게 해결하는 정도
▶︎ 메모리 관리 기법
▷ 반입기법
- 요구 반입 기법: 참조 요구가 있을 경우에 적재
- 호출 반입 기법: 요구 예측하여 미리 메모리에 적재, 다른 페이지도 함께 적재
▷ 배치기법: First Fit, Best Fit, Worst Fit
▷ 할당기법
- 연속 할당 기법: 연속하여 저장(단일 분할 할당 기법, 다중 분할 할당 기법)
- 분산 할당 기법: 여러 조각으로 분산 배치(페이징 기법, 세그먼테이션, 페이징/세그먼테이션)
▷ 교체기법
- FIFO: 가장 오래된 페이지 우선 교체, 큐에 의해 페이지 관리
- LRU(Least Recently Used): 오랫동안 사용하지 않은 페이지 교체, 마지막 사용시간 확인하여 선택(지역성)
- LFU(Least Frequently Used): 가장 적은 참조횟수(작은 수)를 가진 페이지 교체
▶︎ 프로세스 상태: 생성 - 준비 - 실행 - 대기 - 완료
▶︎ 프로세스 상태전이
Dispatch | 준비 상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU를 할당 → 문맥교환 발생 |
Timer run out | CPU를 할당받은 프로세스는 지정된 시간이 초과되면 스케줄러에 의해 PCB 저장, CPU 반납 후 다시 준비 상태로 전이 - 타임 슬라이스(Time Slice) 만료, 선점(Preemption) 시 타임 아웃 발생 |
Block(Sleep) | 실행 상태에 있는 프로세스가 지정된 할당시간을 초과하기 전에 입출력이나 기타 사건이 발생(Block)하면 CPU를 스스로 반납하고 입출력이 완료될 때까지 대기 상태로 전이 - 즉시 실행 불가능한 시스템 콜, I/O 작업 시작, 프로세스 간 통신 시 |
Wake-up | 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 wait&signal 등에 의해 알려주고, 준비로 전이 |
Swap-out | 프로세스가 기억장치를 읽은 경우 |
Swap-in | 프로세스에게 다시 기억장치가 할당될 경우 |
▶︎ 스케줄러 유형
▶︎ 가상화 기술요소
컴퓨팅 가상화 | 물리적으로 컴퓨터 리소스 가상화, 논리적단위로 활용 | 하이퍼바이저(Hypervisor) |
스토리지 가상화 | 스토리지와 서버 사이에 SW/HW계층 추가, 논리적 제어 및 활용 | 분산 파일 시스템 |
I/O 가상화 | 서버와 I/O 디바이스 사이에 미들웨어 계층, 물리적으로 분리, 케이블과 스위치 구성 단순화하여 효율적인 연결 지원 |
가상화 네트워크 인터페이스 카드 |
컨테이너 | 컨테이너화된 APP들이 단일 운영체제 상에서 실행 지원 | 도커(Docker) |
분산처리 기술 | 여러대 컴퓨터 계산 및 저장능력 이용, 큰 계산문제-대용량 데이터 처리 | - |
네트워크 가상화 기술 | 물리적으로 떨어져 있는 장비연결을 위한 수단으로 중계장치의 가상화를 통한 가상네트워크 지원 | SDN, NFV |
▶︎ 클라우드 컴퓨팅 유형
- 인프라형(IaaS: Infrastructure as a Service) : 서버, 스토리지의 시스템자원을 클라우드로 제공
- 플랫폼형(Paas: Platform -) : APP개발, 실행 관리가능한 플랫폼 제공
- 소프트웨어형(SaaS) : 데이터가 중앙에 호스팅되고 사용자는 웹브라우저 등 클라이언트를 통해 접속하여 SW를 서비스 형태로 이용
(주문형 소프트웨어)
02. 데이터베이스 기초 활용
▶︎ 데이터베이스 종류
1) 파일 시스템 : 파일에 이름을 부여하고 저장이나 검색을 위해 논리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리하는
DB 전 단계의 데이터 관리 방식
- ISAM(Indexed Sequential Access Method) : 자료내용은 주저장부, 자료 색인은 색인부에 기록
- VSAM(Virtual Storage Access Method) : 대형 운영체제에서 사용되는 파일 관리시스템
2) 계층형 DB 관리시스템(HDBMS: Hierarchical -) : 상하 종속적인 관계로 계층화하여 관리
3) 망형 DB 관리시스템(NDBMS: Network -) : 데이터 구조를 네트워크상의 망상 형태로 논리적으로 표현한 데이터 모델(유연, 설계복잡)
4) 관계형 DB 관리시스템(RDBMS: Relational -): 가장 보편적, 테이블의 일부를 테이블과 상하 관계로 표시하며 상관관계 정리
- Oracle : 리눅스/유닉스/윈도우즈 모두 지원, 대형시스템에서 많이 사용
- SQL Server : 마이크로소프트사에서 개발, 윈도즈 서버에서만 구동, C#과 호환
- MySQL : 오라클의 관계형 DBMS, 리눅스/유닉스/윈도우 모두 사용 가능, 오픈소스기반으로 개발
- Maria DB : MySQL 출신 개발자가 만든 DB로 MySQL과 완벽히 호환
▷ 릴레이션(Relation) : =테이블, 데디어트를 원자값으로 갖는 이차원의 테이블로 표현하는 것
- 릴레이션 스키마: 릴레이션의 논리적 구조, 릴레이션의 이름과 포함된 모든 속성의 이름
- 릴레이션 인스턴스: 어느 한 시점에서 릴레이션에 존재하는 튜플들의 집합, 외연, 동적
★릴레이션의 특성: 유일성, 튜플의 무순서, 속성의 무순서, 속성의 원자성
▷ 속성(Attribute) : 릴레이션의 열, 파일관리시스템에서 필드(field)
▷ 도메인(Domain): 하나의 속성이 가질 수 있는 모든 값의 집합, 데이터타입으로 정의
▷ 튜플(Tuple) : 릴레이션의 행으로 파일관리시스템 관점에서 레코드(record)
▷ 차수(Degree): 하나의 릴레이션에서 속성의 전체 개수
▷ 카디널리티(Cardinality): 하나의 릴레이션에서 튜플의 전체개수
▷ 키의 종류
- 슈퍼키: 한 릴레이션 내의 속성들의 집합으로 구성된 키, 튜플에 대한 유일성은 만족, 최소성을 만족시키지 못함(학생+주민번호)
- 후보키(Candidate): 튜플을 유익하게 식별할 수 있는 하나 또는 여러개의 속성의 집합, 유일성과 최소성 모두 만족
- 기본키(PK):튜플을 구별할 수 있는 유일한 식별자, 후보키 중에서 선정된 키로 유일성과 최소성 만족, null-중복X
- 대체키(PK): 후보키가 둘 이상인 경우 기본키로 선택받지 못한 후보키
- 외래키(Foreign): 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조관계 표현
▶︎ DBMS 유형
키-값(Key-Value) DBMS | Redis, DynamoDB |
컬럼 기반 데이터 저장 | HBase, Cassandra |
문서 저장 | MongoDB, Couchbase |
그래프 | Neo4j, AllegroGraph |
▶︎DBMS 특징 : 무결성, 일관성, 회복성, 보안성, 효율성
▶︎ ORM프레임워크 유형
- 부분적 ORM: SQl mapping (ibatis, mybatis)
- 완전 ORM: OR mapping(효율적인 매핑기법/ Hibernate)
▷ mapping 기법
- 객체 → table
- 속성 → column
- 오퍼레이션 →procedure/function
03. 네트워크 기초 활용
▶︎ 거리에 따른 네트워크 분류
- WAN : 광대역 네트워크
- LAN : 근거리 네트워크
▶︎ 네트워크 구성
▶︎ OSI 7 Layer(20년 1회 기출)
계층 | 설명 | 장비 |
응용(Application) | 사용자 친화 환경 제공(이메일, 웹 등) | 호스트(PC 등) |
표현(Presentation) | 코드 문자 등을 번역하여 일관되게 전송하고 압축, 해제, 보안 기능 |
|
세션(Session) | 송-수신 간 논리적 연결 | |
전송(Transport) | 송-수신 프로세스 간 연결 | - L4스위치: 4계층에서 네트워크 단위 연결, TCP/UDP 등 스위칭 실행, FTP/HTTP등 구분하여 스위칭하는 로드 밸런싱 가능 |
네트워크(Network) | 다수의 중개 시스템 중 올바른 경로를 선택하도록 지원 | - 라우터 - 게이트웨이: 프로토콜을 서로 다른 통신망에 접속할 수 있게 해주는 장치 - L3스위치: 3계층에서 네트워크 단위들을 연결하는 통신 장비, 라우터와의 경계 모호 - 유무선 인터넷 공유기: 외부 인터넷 라인을 연결하여 여러 대의 기계를 연결하거나 하나의 인터넷 라인을 공유할 수 있도록 하는 장비 - 망(백본) 스위칭 허브: 광역 네트워크를 커버하는 스위칭 허브 |
데이터링크(Data Link) | 오류와 흐름을 제어하여 신뢰성 있는 데이터 전송 | - 브리지:여러 대 컴퓨터를 연결하여 네트워크로 보내거나 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비 - L2스위치: 느린 전송속도의 브리지 - NIC(Network Interface Card): 외부 네트워크와 접속하여 가장 빠른 속도로 데이터를 주고받을 수 있게 컴퓨터 내에 설치되는 장치 |
물리(Physical) | 실제 장비들을 연결하기 위한 연결 장치 | - 허브:여러 대 컴퓨터를 연결하여 네트워크로 보내거나 하나의 네트워크로 수신된 정보를 여러 대의 컴퓨터로 송신하기 위한 장비 - 리피터: 디지털 신호를 증폭시켜주는 역할 |
▶︎ TCP 특징: 신뢰성 보장, 연결지향적, 흐름 제어, 혼잡제어
▶︎ UDP 특징: 비신뢰성, 순서화되지 않은 데이터그램 서비스, 실시간 응용/멀티캐스팅 가능, 단순헤더
▶︎IPv4 & IPv6 비교
▶︎ 패킷 스위칭
1) X.25 특징: 고정된 대역폭, 패킷 사용, 1~3계층 담당, 송수신 신뢰성, 성능 저하
2) 프레임 릴레이 특징: 유연한 대역폭, 기능 단순화, 1~2계층 담당, 저렴한 가격
3) ATM
▶︎ 서킷 스위칭 특징: 전송 보장, 서킷 확보 작업
구분 | 서킷 교환 방식 | 패킷 교환 방식 |
의미 | 전송 경로를 설정한 뒤 데이터를 송수신하는 방식 | 데이터를 패킷단위로 보내는 방식 |
장점 | 경로 접속시간은 1초 내외로 매우 빠름 전송 제어 절차와 형식에 제약 X |
회선 효율이 우수, 비동기 전송이 가능, 연결 설정이 필요없고 전달 용이 |
단점 | 송수신 측 모두 교환 준비가 완료 되어야함, 회선이 독점 | 실시간 전송에 부적합, 네트워크 지연 발생, 영상-비디오 어려움 |
활용 | 영상, 비디오 | 이메일, 메시지 |
▶︎ 라우팅 알고리즘
1) 라우팅 프로토콜 종류
RIP (Routing Information Protocol) |
최적경로를 설정하는 자치시스템, 벨만포드(거리벡터)알고리즘 - 30초 주기로 전체 라우팅 전보 갱신, 변화 업데이트 시 많은 시간 소요, 라우팅 루프 발생 가능 |
OSPF (Open Shortest Path First) |
다익스트라(링크 상태)알고리즘, 최단경로를 찾음 - 발생한 변경 정보에 대해 RIP보다 빠른 업데이드, 토폴로지에 대한 정보가 정체 라우터에 동일하게 유지 |
BGP (Border Gateway Protocol) |
자치 시스템 간 라우팅 프로토콜, 규모가 큰 네트워크의 상호 연결 - 대형 사업자(ISP)간의 상호 라우팅 |
IGRP | Cisco System 공유의 프로토콜 - hop수를 기준으로 한 정보전송, 라우팅 경로 결정 시 회선의 전송능력 지연시간 사용률 신뢰도 바탕 - 독립적인 네트워크 내에서만 사용 |
EIGRP | IGRP의 Metric 구성 값에 256을 곱하여 작동, 프로토콜 종속 모듈 - 신뢰성 전송 프로토콜(순차적 패킷 전달), 낮은 대역폭 및 빠른 수렴, 업데이트 확산 알고리즘 |
2) 거리 벡터 알고리즘 vs 링크 상태 알고리즘
거리 벡터 알고리즘(벨만 포드 알고리즘) | 링크 상태 알고리즘(다익스트라 알고리즘) |
- 인접 라우터와 정보를 공유하여 목적지까지의 거리와 방향을 결정하는 라우팅 프로토콜 알고리즘 - 라우터가 업데이트 될 경우마다 전체 라우팅 테이블을 보내라고 요청하지만 수신된 경로 비용 정보는 이웃 라우터에게만 보내짐 |
- 링크 상태 정보를 모든 라우터에 전달하여 최단 경로 트리를 구성하는 라우팅 프로토콜 알고리즘 - 네트워크를 일관성 있게 파악 가능하지만 벡터 알고리즘에 비해 계산이 더 복잡하고 트래픽을 광범위한 범위까지 전달해야 함 |
04. 기본 개발환경 구축
▶︎ 윈도우즈 계열 운영체제: Windows Home, Windows Pro, Windows Pro for Workstation
▶︎ 리눅스/유닉스 계열 운영체제
▷ 쉘(Shell): 사용자의 명령어를 인식하는 명령어 해석기, 시스템과 사용자 간의 인터페이스를 담당하고 주기억장치에서 상주하지 않고, 명령어가 포함된 파일형태로 존재하며 보조 기억장치에서 교체처리가 가능
▷ 커널(Kernel): 유닉스 시스템의 중심부, 프로세스관리 및 기억장치 관리, 입출력관리, 파일관리 등 기능을 수행하고 컴퓨터가 부팅될때 주기억장치에 적재되어 상주하면서 실행
구분 | 종류 | 특징 |
데비안 | Debian GNU/ Linux | 개발자 패키지와 매뉴얼이 활성화되어 있어 개발자에게 최적화 되어 있음 |
Ubuntu | 가장 광범위, 다양한 개발자용 패키지 제공, Software Center를 통해 응용 소프트웨어 공급 | |
Redhat | Fedora | 스마트 설정과 업데이트로 사용자 편의성 제공, 안정화된 운영과 다양한 하드웨어 지원 |
CentOS | 프로그래밍에 최적화된 환경 제공, RHEL 소스로 컴파일 되어 해당 계열의 프로그램 대다수 사용가능 | |
기타 | openSUSE | 안정화된 버전과 테스트 중인 버전(Tumbleweed)을 동시에 공급, YaST 패키지를 통해 태스크 자동화 지원 |
Slackware | 다양한 SW와 그래픽 유저 인터페이스가 미리 설치, 시스템 관리자를 위한 복구 툴 내장 |
▶︎ 개발환경 지원 도구
개발환경 | 도구 |
요구사항 관리 | JFeature |
설계 | DBdesigner |
구현 | Eclipse, CodeBlock |
테스트 | JUnit |
빌드 | Ant, Jenkins |
형상 관리 | Subversion, Selenium |
품질 관리 | jDepent, Mylyn |
이슈 관리 | Mantis, Git |
프로젝트 관리 | Redmine, OpenProj |
▶︎ 개발환경 인프라 구성 방식
온프레미스(On-Premise) 방식 | 외부 인터넷망이 차단된 상태에서 인트라넷망만을 활용하여 개발환경을 구축하는 방식 |
클라우드 방식 | 아마존, 구글, 마이크로소프트 등 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경 구축 |
하이브리드 방식 | 온프레미스 + 클라우드 혼용 |
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사]20년 1회 실기 기출문제 (0) | 2020.11.21 |
---|---|
[실기]Ⅻ.제품 소프트웨어 패키징★ (0) | 2020.11.21 |
[실기]Ⅹ.프로그래밍 언어활용 ★ (0) | 2020.11.21 |
[실기]Ⅸ.소프트웨어 개발보안 구축★★ (0) | 2020.11.21 |
[실기]Ⅷ. SQL응용 ★★ (0) | 2020.11.21 |