정보처리기사 실기 - 응용 SW 기초 기술 활용

둡둡·2023년 4월 15일

정보처리기사

목록 보기
11/12

운영체제

  • 목적
    • 처리 능력 향상(Throughput)
    • 반환 시간 단축(Turn Around Time)
    • 사용 가능도 향상(Availability)
    • 신뢰도 향상(Reliability)
  • 종류
    • Windows
      • GUI
      • 선점형 멀티태스킹
      • 자동 감지(Plug and Plug)
      • OLE(Object Linking and Embedding)
    • UNIX
      • 개방형 오픈 시스템
      • C언어로 작성되어 이식성, 호환성 높음
      • 다중 사용자, 다중 작업 지원
      • 트리 구조
      • 구성: 커널(하드웨어), 쉘(인터페이스), 유틸리티 프로그램
    • Linux
      • 오픈 소스 코드, 재배포 가능
      • UNIX 호환 가능
    • Android
      • 구글에서 개발한 리눅스 커널 기반 모바일 운영체제
      • 자바와 코틀린 사용

기억장치 관리

  • 주기억장치의 공간을 효율적으로 사용하기 위한 관리
  • 반입 전략(Fetch): 보조기억장치에서 주기억장치로 언제
    • 요구 반입, 예상 반입
  • 배치 전략(Placement): 새로 반입되는 데이터를 주기억장치의 어디로
    • 최초, 최적(단편화 가장 작게), 최악(단편화 가장 많이)
  • 교체 전략(Replacement): 어느 영역을 교체하여 사용할 것인지
    • FIFO, OPT, LRU 등

주기억장치

  • 어떻게 주기억장치에 할당할 것인지 관리
  • 연속 할당 기법: 연속으로 할당
    • 단일 분할 할당 기법
      • 하나의 사용자만 사용자 영역을 사용하는 기법
      • 경계 레지스터(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)
      • EGP 보완, 변화된 정보 교환

소프트웨어 관련 기술

  • 매시업(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 트랜잭션
    • 다중 버전 기법: 갱신마다 버전을 부여하고 관리
  • 로킹 단위
    • 크면: 로크 수 적어 관리 쉬움, 병행성 수준은 낮음
    • 작으면: 로크 수 많아 관리 복잡, 병행성 수준은 높음
    • 병행성 수준과 데이터베이스 공유도 비례
profile
괴발개발라이프

0개의 댓글