정보처리기사 실기 - 응용 SW 기초 기술 활용
운영체제
- 목적
- 처리 능력 향상(Throughput)
- 반환 시간 단축(Turn Around Time)
- 사용 가능도 향상(Availability)
- 신뢰도 향상(Reliability)
- 종류
- Windows
- GUI
- 선점형 멀티태스킹
- 자동 감지(Plug and Plug)
- OLE(Object Linking and Embedding)
- UNIX
- 개방형 오픈 시스템
- C언어로 작성되어 이식성, 호환성 높음
- 다중 사용자, 다중 작업 지원
- 트리 구조
- 구성: 커널(하드웨어), 쉘(인터페이스), 유틸리티 프로그램
- Linux
- 오픈 소스 코드, 재배포 가능
- UNIX 호환 가능
- Android
- 구글에서 개발한 리눅스 커널 기반 모바일 운영체제
- 자바와 코틀린 사용
기억장치 관리
- 주기억장치의 공간을 효율적으로 사용하기 위한 관리
- 반입 전략(Fetch): 보조기억장치에서 주기억장치로 언제
- 배치 전략(Placement): 새로 반입되는 데이터를 주기억장치의 어디로
- 최초, 최적(단편화 가장 작게), 최악(단편화 가장 많이)
- 교체 전략(Replacement): 어느 영역을 교체하여 사용할 것인지
주기억장치
- 어떻게 주기억장치에 할당할 것인지 관리
- 연속 할당 기법: 연속으로 할당
- 단일 분할 할당 기법
- 하나의 사용자만 사용자 영역을 사용하는 기법
- 경계 레지스터(Boundary Register) 사용
- 오버레이 기법, 스와핑 기법
- 다중 분할 할당 기법
- 고정/정적 할당 기법: 사용자 영역을 여러 개의 고정된 크기로 분할
- 가변 분할/동적 할당 기법: 필요한 만큼의 크기로 영역을 분리
- 분산 할당 기법: 특정 조각으로 나누어 분산하여 할당
가상기억장치
- 보조기억장치의 일부를 주기억장치처럼 사용
- 프로그램을 여러 개의 작은 블록 단위로 나누어서 보관해놓고, 필요시에 할당하여 처리
- 페이징 기법(Paging)
- 프로그램과 주기억장치의 영역을 동일한 크기로 나누는 기법
- 일정한 크기로 나눈 단위를 페이지(Page), 주기억장치의 단위를 페이지 프레임(Page Frame)
- 페이지 맵 테이블 필요
- 페이지 교체 알고리즘
- 페이지 부재(Page Fault) 발생 시, 어떤 페이지 프레임을 교체할 것인지 결정하는 기법
- 페이지 부재: 참조할 페이지가 주기억장치에 없는 현상
- 종류
- OPT(OPTimal replacement): 최적 교체, 앞으로 오랫동안 사용하지 않을 페이지 교체
- FIFO(First In First Out): 가장 먼저 들어와서 가장 오래 있었던 페이지 교체
- LRU(Least Recently Used): 최근에 가장 오랫동안 사용하지 않은 페이지 교체
- LFU(Least Frequently Used): 사용 빈도가 가장 적은 페이지 교체
- 스레싱(Thrashing)
- 프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 많아지는 현상
- 다중 프로그래밍의 정도가 높아질수록 스레싱이 나타남
- 페이지 크기
- 작을 경우: 페이지 단편화 감소하고 이동시간 줄어듦, 효율적인 워킹셋
- 클 경우: 페이지 맵 테이블 크기가 작아지고 매핑속도 빨라짐, 단편화 증가
- 세그먼테이션 기법(Segmentation)
- 다양한 크기의 논리적 단위로 나누는 기법
- 논리적 크기로 나눈 단위 세그먼트(Segment)
- 세그먼트 맵 테이블 필요
프로세스
- PCB(Process Control Blcok, 프로세스 제어 블록)
- 운영체제가 프로세스에 대한 중요한 정보를 저장해놓은 곳
- 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 완료되면 제거됨
- 프로세스 상태 전이
- Wake Up: 대기 -> 준비
- Dispatch: 준비 -> 실행
- Spooling: 입출력할 데이터를 한 번에 처리하기 위해 디스크에 저장하는 과정
스케줄링
- 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
- 목적: 공정성, 처리율 증가, CPU 이용률 증가, 오버헤드/응답시간/반환시간 최소화 등
- 선점형 스케줄링(Preemptive Scheduling)
- 우선순위가 높은 다른 프로세스가 CPU를 강제로 점유할 수 있는 기법
- 빠른 응답, 대화식 시분할 시스템
- 종류
- R.R(라운드 로빈, Round Robin)
- 동일한 크기의 할당 시간을 갖고, 시간이 끝나면 CPU를 뺏기고 Ready Queue 맨 뒤로 위치함
- SRT(Shortest Remaining Task)
- 정해진 시간에 작업이 완료되지 않으면 가장 짧은 프로세스를 새로 할당함, 기아 현상 발생
- MLQ/MQ(다단계 큐, Multi-Level Queue)
- 우선 순위에 따라 Ready Queue를 분할 및 그룹화하여 큐에 넣어둠
- 프로세스의 특성에 따라 서로 다른 스케줄링 알고리즘 할당
- FCFS + 라운드 로빈
- MFQ(다단계 피드백 큐, Multi-Level Feedback Queue)
- MQ + 동적인 프로세스 우선 순위 변화 적용
- 큐 사이의 프로세스 이동 가능
- 맨 아래 큐에서 너무 오래 대기하면 다시 상위 큐로 이동(에이징 기법)
- 비선점 스케줄링(Non Preemptive Scheduling)
- 이미 할당된 CPU를 다른 프로세스가 강제로 점유할 수 없는 기법
- 일괄 처리 방식, 응답시간 예상 가능
- 종류
- FIFO(First In First Out) = FCFS(First Come First Service)
- SJF(Shortest Job First)
- 도착한 시점에서 가장 짧은 실행 시간을 가진 프로세스 먼저 할당, 기아 현상 발생
- HRN(Highest Response-ratio Next)
- 우선순위 계산하여 숫자가 높은 순에서 낮은 순으로 할당
- 우선순위 계산식 = (대기시간 + 서비스시간=실행시간) / 서비스시간
인터넷
- 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망
- IP 주소(Internet Protocol Address)
- 8비트씩 4부분, 총 32비트 구성
- 총 5단계 (A~E 클래스)
- 서브네팅(Subnetting)
- 네트워크 주소를 여러 개의 작은 네트워크로 다시 나누어 사용
- 네트워크와 호스트 주소를 구분하기 위한 비트를 서브넷 마스크(Subnet Mask)
- IPv6
- IP 주소 확장: 16비트씩 8부분, 128비트 주소 체계
- 인증성, 기밀성, 데이터 무결성
- 확장성(확장 헤더), 융통성, 연동성
- 속도 빠름, 실시간 흐름 제어
- 보안 강화(IPSec)
- 유니캐스트, 멀티캐스트, 애니캐스트
OSI 7 Layer
- 물리 계층(Phisycal, 1)
- 장치 간 실제 물리적 접속과 전송 신호 방식, 절차적 특성에 대한 규칙 정의
- 리피터, 허브, 비트
- 데이터 링크 계층(Data Link, 2)
- 시스템 간 연결 설정과 유지 및 종료 기능
- 프레임의 동기화 기능, 흐름/오류/순서 제어
- 브리지, 스위치
- 네트워크 계층(Network, 3)
- 네트워크 연결 관리와 데이터 교환 및 중계 기능
- 경로 설정(Routing)-라우터, 데이터 교환 및 중계, 패킷 전송, 트래픽 제어
- 관련 프로토콜
- IP: 패킷 단위 데이터 교환 통신 프로토콜
- ARP: IP 주소를 MAC 물리 주소로 변환하는 프로토콜
- RARP(Reverse Address Resolution Protocol): IP 주소를 모르는 경우 서버로부터 요청하는 역순 주소 결정 프로토콜
- ICMP: 오류 처리, 전송 경로 변경, 수신지 도달 불가 등 제어 메시지 관리
- 전송 계층(Transport, 4)
- 안정적이고 균일한 데이터 전송을 담당
- 상위 3계층과 하위 3계층 사이의 인터페이스 담당
- 전송 연결 설정, 데이터 전송, 연결 해제, 오류/흐름 제어 등
- TCP/UDP, 게이트웨이
- 세션 계층(Session, 5)
- 송수신 간 관련 유지 및 데이터 교환 관리 기능
- 표현 계층(Presentation, 6)
- 응용과 세션 사이에서 데이터를 적당한 형태로 변환
- 코드 변환, 데이터 암호화, 문맥 관리 기능 등
- 응용 계층(Application, 7)
- 사용자가 OSI 환경에 접근할 수 있는 파일 전송, 가상 터미널 등의 서비스 제공
- 관련 프로토콜
- TELNET: 원격 컴퓨터 사용할 수 있는 서비스, 가상 터미널 기능
- FTP(File Transfer Protocol)
- DNS(Domain Name System)
- HTTP: HTTP 표준 프로토콜
네트워크 관련 장비
- 네트워크 인터페이스 카드(NIC)
- 컴퓨터 간, 컴퓨터와 네트워크 연결하는 장치
- 이더넷 카드(LAN 카드) 혹은 네트워크 어댑터
- 허브(Hub)
- 가까운 거리의 컴퓨터를 연결하는 장치
- 리피터 역할 포함
- 더미 허브, 스위칭 허브
- 리피터(Repeater)
- 장거리 신호를 재생시키거나 출력을 높이는 장치
- 브리지(Bridge)
- LAN 간, LAN 내 컴퓨터 그룹을 연결하는 장치
- 트래픽 병목 현상 줄임, 보안성 높임
- 스위치(Switch)
- LAN 간 연결을 통해 더 큰 LAN을 만드는 장치
- 전송 속도 빠름, 데이터 링크 사용
- 라우터(Router)
- 데이터 전송의 최적 경로를 선택하는 장치
- 프로토콜 변환 기능 수행
- 게이트웨이(Gateway)
- 프로토콜 구조가 다른 네트워크를 연결하는 장치
- 데이터를 보내거나 수신 받는 출입구 역할
TCP/IP
- 프로토콜(Protocol)
- 서로 다른 기기들 간의 데이터 교환을 위해 표준화한 통신 규약
- '기술적 은어', 데이터 처리/제어/관리 기능
- 기본 요소: 구문, 의미, 타이밍
- MQTT: IoT 장치, 저전력 센서 등 라이트 메시징 전송
- TCP(Transmission Control Protocol)
- 양방향 연결형 통신: 가상회선(미리 연결), 순서/오류/흐름 제어, 안정성과 신뢰성 보장
- UDP(User Datagram Protocol)
- 비연결형 통신, 속도 빠름, 비신뢰성, 실시간, 여러 사용자에게 정기적으로 반복 전송하는 경우
- IP(Internet Protocol)
- 비연결형 통신: 데이터그램(가상헤더 독립적 전달), 속도 빠름
네트워크 관련 기술
- SDN(Software Defined Networking)
- 피코넷(PICONET)
- 여러 개의 독립된 통신 장치가 블루투스 기술 등을 사용하여 통신망을 형성하는 기술
- 지그비(Zigbee)
- 저속 전송 속도를 가진 홈오토메이션 및 데이터 네트워크 표준 기술
- 애드혹 네트워크(Ad-hoc Network)
- 긴급 상황이나 재난과 같이 네트워크 장치 없이 구성한 네트워크, 멀티 홉 라우팅
- 소프트웨어 정의 데이터 센터(SDDC)
- 모든 자원을 가상화하여 관리 및 제어하는 데이터 센터
- 개방형 링크 데이터(LOD, Linked Open Data)
네트워크 구축
- 네트워크 설치 구조
- 성형(Star): 중앙 집중형, 포인트 투 포인트
- 링형(Ring): 루프형, 이웃 장치끼리 연결시킨 포인트 투 포인트, 단방향-양방향 전송
- 버스형(Bus): 하나의 통신 회선에 여러 단말 장치 연결, 통신 회선 길이 제한
- 계층형(Tree): 버스 + 성형, 분산 처리 시스템
- 망형(Mesh): 모든 지점의 컴퓨터와 단말 장치 연결
- NAT(Network Address Translation)
- 네트워크 주소 변환
- 1개의 정식 공인 IP 주소에 대량의 사설 IP 주소를 연결하는 기능
- IP 마스커레이드 사용: 리눅스 서버를 통해 다른 네트워크로 접속 가능
스위치
- L3 Switch: 라우터 기능 추가, IP주소 기반으로 패킷 전송
- L4 Switch: 로드 밸런서 추가
- L7 Switch: 세밀한 로드 밸런싱
- 백본 스위치(Backbone Switch)
- 네트워크 연결 시 중추적 역할을 하는 장비
- 대규모 트래픽 처리
- 주로 L3 스위치
경로 제어
- 경로 제어(Routing)
- 최적의 패킷 교환 경로 제공
- 경로 제어 참조, 라우터 사용
- 경로 제어 프로토콜
- IGP(Interior Gateway Protocol)
- RIP(Routing Information Protocol): 거리 벡터 라우팅 프로토콜, 인접 라우터 연결, 벨만포드, 최대 홉 수 15
- OSPF(Open Shortest Path First Protocol): 다익스트라, 실시간 반영, 무제한 홉 카운트
- 홉(Hop): 데이터가 전송되는 과정에서 거치는 네트워크의 수
- EGP(Exterior Gateway Protocol)
- BGP(Border Gateway Protocol)
소프트웨어 관련 기술
- 매시업(Meshup)
- 다수의 공개 콘텐츠 정보를 조합하여 하나의 서비스로 만듦
- 시맨틱 웹(Semantic Web)
- 컴퓨터가 이해할 수 있는 정보로 가공하는 차세대 지능형 웹
- 온톨로지(Ontology)
- 실세계에 존재하는 모든 개념들과 속성, 관계 정보 등을 컴퓨터가 이해할 수 있도록 서술한 개념화 명세서
- 서비스 지향 아키텍쳐(SOA)
- 기업의 정보 시스템을 재사용 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보 기술 아키텍처
- 디지털 트윈(Digital Twin)
- 물리적 자산을 소프트웨어로 가상화한 모델, 자동차/항공/국방 분야
하드웨어 관련 기술
- 트러스트존(Trust Zone)
- 하나의 프로세서 내에 일반 구역과 보안 구역으로 분할하여 관리하는 기술
- 멤리스터(Memristor)
- 메모리와 레지스터의 합성어로 기존 경험을 모두 기억하는 특별한 전자회로 구성 요소 소자
- RAID(Redundant Array of Independent Disks, 복수 배열 독립 디스크)
- 여러 개의 하드 디스크에 중복된 데이터를 나눠서 저장하는 분산 디스크 기술
- RAID 레벨
- 0 : 패리티(오류 검출 기능)가 없는 스트라이핑된 세트, 디스크 2개 이상
- 1 : 패리티 없는 미러링된 세트, 디스크 2개 이상
- 2 : 비트 레벨의 스트라이핑과 해밍코드 패리티 사용
- 3 : 패리티가 단순 제공되는 스트라이핑된 세트, 디스크 3개 이상
- 4 : 3과 동일, 디스크 4개 이상
- 5 : 패리티가 배분되는 스트라이핑된 세트, 디스크 3개 이상
- 6 : 5와 동일, 디스크 4개 이상
Secure OS
- 보안 기능을 갖춘 커널을 이식하여 자원을 보호하는 운영체제
- TCB 기반 참조 모니터 구현
- TCB(Trusted Computing Base): 보안 정책을 따르도록 설계한 보호 매커니즘
- 참조 모니터: 보호 대상에 대한 접근 통제 추상 머신, 보안 커널 데이터베이스(SKDB) 참조
데이터베이스 관련 기술
- 하둡(Hadoop)
- 가상화된 대형 스토리지에 거대한 데이터 세트를 병렬 처리하는 자바 소프트웨어 프레임 워크
- 오픈 소스 분산 컴퓨팅 플랫폼
- 구글, 야후 등
- 블록체인(Blockchain)
- 분산 컴퓨팅 기술
- 데이터 위변조 방지기술로 임의 조작 불가능
- P2P 방식 소규모 데이터들 연결
- 맵리듀스(MapReduce)
- 연관성 있는 분류로 묶는 Map
- 중복 데이터를 제거하는 Reduce
- 구글 고안, 대용량 데이터 처리를 위한 병렬 처리 기법
- 데이터 마이닝(Data Mining)
- 대량의 데이터를 분석하여 상호 관계나 일정한 패턴을 찾아내는 기법
- 데이터 웨어하우스(Data Warehouse)
- 다량의 데이터를 효과적으로 분석하여 정보화하고 효율적으로 사용할 수 있도록 정제하고 추출된 데이터베이스
- 다양한 사용자의 요구 항목이나 기업의 경영 활동을 돕기 위한 시스템
- 데이터 마트(Data Mart)
- 특정 사용자가 관심을 갖는 데이터를 담은 비교적 작은 규모의 데이터 웨어하우스
- 온라인 분석 처리(OLAP)
- 웨어하우스의 데이터를 전략적인 정보로 변환시켜서 의사결정을 지원하는 역할
개발 인프라 구성
- 개발 환경 인프라 구성 방식
- 온프레미스(On-Premise) : 외부 인터넷망이 차단되고 내부 인트라넷만 사용하는 환경
- 클라우드(Cloud): 아마존, 구글 등 클라우드 서비스를 임대하는 환경
- 하이브리드(Hybrid): 온프레미스 + 클라우드
- ITIL(Information Technology Infrastructure Library, 정보기술 인프라 라이브러리)
- 기업 IT 서비스와 관련한 다양한 IT 서비스들의 관리 방법들을 정리한 표준적인 참고 문서
회복
- 회복(Recovery)
- 지연 갱신(Deferred Update)
- 트랜잭션이 완료될 때까지 로그에 보관하고 완료 시점에 갱신 반영
- Redo만 가능
- Redo: 재실행, 데이터 복구 후 트랜잭션 재실행
- Undo: 다시 되돌려 놓음
- 즉시 갱신(Immediate Update)
- 완료 전에도 갱신 내용을 즉시 반영함
- Redo/Undo
- 그림자 페이지 대체 기법(Shadow Paging)
- 갱신 이전의 데이터베이스를 복사하는 그림자 페이지 보관
- 장애 발생 시 그림자 페이지로 대체하여 회복시키는 기법
- 체크포인트 기법(Check Point)
병행 제어
- 다중 프로그래밍에서 여러 개의 트랜잭션을 병행 수행할 때, 데이터베이스의 일관성을 위해 상호 작용 제어 관리
- 문제 발생
- 갱신 손실(Lost Update): 갱신 결과의 일부가 없어지는 현상
- 연쇄 복귀: 하나에서 Rollback하는 경우 다른 트랜잭션도 함께 되는 현상
- 모순성: 원치 않는 자료를 이용, 불일치 분석, 일관성 결여
- 현황파악 오류=비완료 의존성: 실패한 갱신 결과 참조
- 병행 제어 기법 종류
- 로킹(Locking): 특정 로킹 단위에 잠금하고 허가 시에만 액세스 가능
- 타임 스탬프 순서: 시간표를 부여하여 트랜잭션 작업 수행
- 최적/검증/확인/낙관적 기법: Read Only 트랜잭션
- 다중 버전 기법: 갱신마다 버전을 부여하고 관리
- 로킹 단위
- 크면: 로크 수 적어 관리 쉬움, 병행성 수준은 낮음
- 작으면: 로크 수 많아 관리 복잡, 병행성 수준은 높음
- 병행성 수준과 데이터베이스 공유도 비례