별의 공부 블로그 🧑🏻‍💻
728x90
728x170

11. 응용 SW 기초 기술 활용

(1) 운영체제의 개념

  • 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
  • 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로 동작하는 시스템 소프트웨어의 일종
  • 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해준다.
  • 운영체제는 프로세스, 기억장치, 주변 장치, 파일 등을 관리하는 기능을 수행한다.
  • 운영체제의 종류 : Windows, UNIX, Linux, MacOS, MS-DOS 등

 

운영체제의 목적

  • 운영체제의 목적에는 처리 능력 향상, 사용 가능도 항상, 신뢰도 향상, 반환 시간 단축 등이 있다.
처리 능력
(Throughput)
일정 시간 내에 시스템이 처리하는 일의 양
반환 시간
(Turn Around Time)
시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
사용 가능도
(Availability)
시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
신뢰도
(Reliability)
시스템이 주어진 문제를 정확하게 해결하는 정도

 

운영체제의 기능

  • 프로세서(처리기, Processor), 기억장치(주기억장치, 보조기억장치), 입·출력 장치, 파일 및 정보 등의 자원을 관리한다.
  • 자원을 효율적으로 관리하기 위해 자원의 스케쥴링 기능을 제공한다.
  • 사용자와 시스템 간의 편리한 인터페이스를 제공한다.
  • 시스템의 각종 하드웨어와 네트워크를 관리·제어 한다.
  • 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공한다.

 

 

(2) 운영체제의 종류

Windows

  • 1990년대 마이크로소프트(Microsoft) 사가 개발한 운영체제
  • Windows의 주요 특징
특징 설명
그래픽 사용자 인터페이스
(GUI; Graphic User Interface)
키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식
선점형 멀티태스킹
(Preemptive Multi-Tasking)
동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 하면서 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제 종료시키고 모든 시스템 자원을 반환하는 방식
PnP
(Plug and Play, 자동 감지 기능)
컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는 데 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 기능
OLE
(Object Linking and Embedding)
다른 여러 응용 프로그램에서 작성된 문자나 그림 등의 개체(Object)를 현재 작업 중인 문서에 자유롭게 연결(Linking)하거나 삽입(Embedding)하여 편집할 수 있게 하는 기능
255자의 긴 파일명 /, \, *, ?, <, >, | 를 제외한 모든 문자 및 공백을 사용하여 최대 255자까지 파일 이름을 지정할 수 있음.
Single-User 시스템 컴퓨터 한 대를 한 사람만이 독점해서 사용함.

 

UNIX

  • 1960년대 AT&T 벨(Bell) 연구소, MIT, General Electronic이 공동 개발한 운영체제
  • 시분할 시스템(Time Sharing System)을 위해 설계된 대화식 운영체제
  • 소스가 공개된 개방형 시스템(Open System)
  • 대부분 C 언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.
  • 다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.
  • 트리(Tree) 구조의 파일 시스템을 갖는다.

 

UNIX 시스템의 구성

구성 요소 설명
커널
(Kernel)
- 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당함.
- UNIX의 가장 핵심적인 부분
- 프로세스(CPU 스케줄링) 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러 가지 기능을 수행함.

(Shell)
- 사용자의 명령어를 인식하여 프로그램을 호출하고, 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 담당함.
- 종류 : Bourne Shell, C Shell, Korn Shell
유틸리티 프로그램
(Utility Program)
- 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용함.
- DOS에서의 외부 명령어에 해당됨.
- 종류 : 에디터, 컴파일러, 인터프리터, 디버거 등

 

Linux

  • 1991년 리누스 토발즈(Linus Torvalds)UNIX를 기반으로 개발한 운영체제
  • 프로그램 소스 코드가 무료로 공개되어 있기 때문에 프로그래머가 원하는 기능을 추가할 수 있다.
  • 다양한 플랫폼에 설치하여 사용이 가능하며, 재배포가 가능하다.
  • UNIX와 완벽하게 호환된다.
  • 대부분의 특징이 UNIX와 동일한다.

 

MacOS

  • 1980년대 애플(Apple) 사가 UNIX를 기반으로 개발한 운영체제
  • 아이맥(iMac) 맥북(MacBook) 등 애플 사에서 생산하는 제품에서만 사용이 가능하다.
  • 드라이버 설치 및 install 과 uninstall 의 과정이 단순하다.

 

Android

  • 구글(Google) 사에서 개발한 리눅스 커널 기반의 개방형 모바일 운영체제
  • 모든 코드가 공개된 개방형 소프트웨어
  • 자바코틀린으로 애플리케이션을 작성한다.
  • 스마트폰 등의 휴대용 장치에서 주로 사용된다.

 

iOS

  • 애플(Apple) 사에서 개발한 유닉스 기반의 모바일 운영체제
  • 아이폰, 아이팟 터치, 아이패드 등에 내장된다.
  • 애플사 고유의 모바일 운영체제로, 타사 제품은 iOS를 탑재할 수 없다.

 

 

(3) 기억장치 관리

기억장치의 관리 전략

  • 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것
  • 종류
    • 반입(Fetch) 전략
    • 배치(Placement) 전략
    • 교체(Replacement) 전략

 

반입(Fetch) 전략

  • 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략
기법 내용
요구 반입
(Demand Fetch)
실행 중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법
예상 반입
(Anticipatory Fetch)
실행 중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법

 

배치(Placement) 전략

  • 새로 반입되는 프로그램이나 데이터를 주기억장치어디에 위치시킬 것인지를 결정하는 전략
기법 내용
최초 적합
(First Fit)
프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서, 첫 번째 분할 영역에 배치시키는 방법
최적 적합
(Best Fit)
프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서, 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법
최악 적합
(Worst Fit)
프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서, 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법

*단편화 : 주기억장치의 분할된 영역에 프로그램이나 데이터를 할당할 경우, 분할된 영역이 프로그램이나 데이터보다 작거나 커서 생기는 빈 기억 공간

 

예제 : 기억장치 상태가 다음 표와 같다. 기억장치 관리 전략으로 First Fit, Best Fit, Worst Fit 방법을 사용하려고 할 때, 가 방법에 대하여 10K의 프로그램이 할당 받게 되는 영역의 번호는?

먼저 10K가 적재될 수 있는지 각 영역의 크기를 확인한다.

② First Fit : 빈 영역 중에서 10K의 프로그램이 들어갈 수 있는 첫 번째 영역은 2번이다.

③ Best Fit : 빈 영역 중에서 10K의 프로그램이 들어가고, 단편화를 가장 작게 남기는 영역은 4번이다.

④ Worst Fit : 빈 영역 중에서 10K의 프로그램이 들어가고, 단편화를 가장 많이 남기는 영역은 5번이다.

 

교체(Replacement) 전략

  • 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략
  • 종류 : FIFO, OPT, LRU, LFU, NUR, SCR 등

 

 

(4) 주기억장치 할당 기법

주기억장치 할당

  • 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지에 대한 내용
  • 주기억장치 할당 기법의 종류
연속 할당 기법 - 프로그램을 주기억장치에서 연속으로 할당하는 방법
- 종류 : 단일 분할 할당 기법, 다중 분할 할당 기법
분산 할당 기법 - 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법
- 종류 : 페이징 기법, 세그먼테이션 기법

*분산 할당 기법 : 가상기억장치의 내용을 주기억장치에 할당하기 위한 기법으로, 가상기억장치 관리 기법이라고도 한다.

 

단일 분할 할당 기법

  • 주기억장치운영체제 영역사용자 영역으로 나누어 한순간에는 오직 한 명의 사용자만이 주기억장치사용자 영역을 사용하는 기법
  • 가장 단순한 기법으로, 초기의 운영체제에서 많이 사용하던 기법이다.
  • 운영체제를 보호하고, 프로그램이 사용자 영역만을 사용하기 위해 운영체제 영역사용자 영역을 구분하는 경계 레지스터(Boundary Register)가 사용된다.
    • 경계 레지스터(Boundary Register)
      • 사용자 영역에 있는 사용자 프로그램이 운영체제 영역에 접근하지 못하도록 보호하는 레지스터
      • 사용자 영역이 시작되는 주소를 기억하고 있다.
  • 프로그램의 크기가 작을 경우, 사용자 영역이 낭비될 수 있다.
오버레이(Overlay) 기법 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법
스와핑(Swapping) 기법 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다가 필요에 따라 다른 프로그램과 교체하는 기법

 

다중 분할 할당 기법

고정 분할 할당 기법
= 정적 할당 기법
프로그램을 할당하기 전에 운영체제가 주기억장치사용자 영역을 여러 개의 고정된 크기로 분할하고, 준비상태 큐에서 준비중인 프로그램을 각 영역에 할당하여 수행하는 기법
가변 분할 할당 기법
= 동적 할당 기법
- 주기억장치를 미리 분할해 놓지 않고, 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분리하는 기법
- 고정 분할 할당 기법단편화를 줄이기 위해 사용됨.

 

 

(5) 가상기억장치 구현 기법

가상기억장치(Virtual Memory)

  • 보조기억장치의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법
  • 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상기억장치에 보관해 놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리한다.
    • 블록 : 보조기억장치주기억장치 간에 전송되는 데이터의 최소 단위
  • 주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있다.
  • 블록 단위로 나누어 사용하므로, 연속 할당 방식에서 발생할 수 있는 단편화를 해결할 수 있다.

 

페이징(Paging) 기법

  • 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후, 나눠진 프로그램을 동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법
  • 프로그램을 일정한 크기로 나눈 단위를 페이지(Page)라고 하고, 페이지 크기로 일정하게 나누어진 주기억장치의 단위를 페이지 프레임(Page Frame)이라고 한다.
    • 일반적으로 페이지의 크기는 1~4 KB 이다.
  • 외부 단편화는 발생하지 않으나, 내부 단편화는 발생할 수 있다.
    • 페이지의 크기가 4 KB이고, 사용할 프로그램이 17 KB라면, 프로그램은 페이지 단위로 4 KB씩 나누어지게 된다.
    • 이때 마지막 페이지의 실제 용량은 1 KB(17 KB - 16 KB)가 되고, 이것이 주기억장치에 적재되면 3KB의 내부 단편화가 발생된다.
  • 주소 변환을 위해서 페이지의 위치 정보를 가지고 있는 페이지 맵 테이블(Page Map Table)이 필요하다.
    • 주소 변환
      • 가상기억장치에 있는 프로그램이 주기억장치에 적재되어 실행될 때, 논리적가상 주소물리적실기억주소로 변환하는 것
      • 주소 사상 또는 주소 매핑(Mapping)이라고도 한다.
      • 이때 연속적가상 주소가 반드시 연속적실기억주소로 변환되지 않아도 되는데, 이를 인위적 연속성(Artificial Contiguity)라고 한다.
  • 페이지 맵 테이블 사용으로 비용이 증가하고, 처리 속도가 감소한다.

 

세그먼테이션(Segmentation) 기법

  • 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후, 주기억장치에 적재시켜 실행시키는 기법
  • 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼트(Segment)라고 하며, 각 세그먼트는 고유한 이름과 크기를 갖는다.
  • 세그먼테이션 기법을 이용하는 궁극적인 이유는 기억 공간을 절약하기 위해서이다.
  • 주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 가지고 있는 세그먼트 맵 테이블(Segment Map Table)이 필요하다.
  • 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있다.

 

 

(6) 페이지 교체 알고리즘

페이지 교체 알고리즘

  • 페이지 부재(Page Fault)가 발생하면, 가상기억장치에서 필요한 페이지를 찾아 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체해야 할 것인지를 결정하는 기법
  • 종류 : OPT, FIFO, LRU, LFU, NUR, SCR 등

 

OPT(OPTimal replacement, 최적 교체)

  • 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
  • 벨레이디(Belady)가 제안한 것
  • 페이지 부재 횟수가장 적게 발생하는 가장 효율적인 알고리즘

 

FIFO(First In First Out)

  • 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 방법
  • 이해하기 쉽고, 프로그래밍 및 설계가 간단하다.

 

예제 : 다음의 참조 페이지를 3개의 페이지 프레임을 가진 기억장치에서 FIFO 알고리즘을 사용하여 교체했을 때 페이재 부재의 수는? (단, 초기 페이지 프레임은 모두 비어 있는 상태이다.)

참조 페이지를 각 페이지 프레임에 차례로 적재시키되, 이미 적재된 페이지는 해당 위치의 페이지 프레임을 사용한다.

사용할 페이지 프레임이 없을 경우, 가장 먼저 들어와서 오래 있었던 페이지 2를 제거한 후 5를 적재한다.

그 다음에 적재된 페이지 3을 제거한 후 2를 적재하며, 같은 방법으로 나머지 참조 페이지를 수행한다.

 

LRU(Least Recently Used)

  • 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법
  • 각 페이지마다 계수기(Counter) 스택(Stack)을 두어 현시점에서 가장 오랫동안 사용하지 않은, 즉 가장 오래전에 사용된 페이지를 교체한다.
    • 계수기(Counter)
      • 각 페이지별로 존재하는 논리적 시계(Logical Clock)
      • 해당 페이지가 사용될 때마다 0으로 클리어 시킨 후, 시간을 증가시켜서 시간이 가장 오래된 페이지를 교체한다.

 

예제 : 다음의 참조 페이지를 3개의 페이지 프레임을 가진 기억장치에서 FIFO 알고리즘을 사용하여 교체했을 때 페이재 부재의 수는? (단, 초기 페이지 프레임은 모두 비어 있는 상태이다.)

 참조 페이지를 각 페이지 프레임에 차례로 적재시키되, 이미 적재된 페이지는 해당 위치의 페이지 프레임을 사용한다.

 사용할 페이지 프레임이 없을 경우, 현재 시점에서 가장 오랫동안 사용되지 않은 페이지 3을 제거한 후 5를 적재한다.

 같은 방법으로 나머지 참조 페이지를 수행한다.

 

LFU(Least Frequently Used)

  • 사용 빈도가 가장 적은 페이지를 교체하는 기법
  • 활발하게 사용되는 페이지는 사용 횟수가 많아 교체되지 않고 사용된다.

 

LUR(Least Used Recently)

  • NRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법
  • 최근에 사용되지 않은 페이지는 향후에도 사용되지 않을 가능서이 높다는 것을 전제로 LRU에서 나타나는 시간적인 오버헤드를 줄일 수 있다.
  • 최근의 사용 여부를 확인하기 위해서 각 페이지마다 2개의 비트, 즉 참조 비트(Reference Bit)변형 비트(Modified Bit, Dirty Bit)가 사용된다.
    • 참조 비트 : 페이지가 호출되지 않았을 때는 0, 호출되었을 때는 1로 지정됨.
    • 변형 비트 : 페이지 내용이 변경되지 않았을 때는 0, 변경되었을 때는 1로 지정됨.
  • 다음과 같이 참조 비트변형 비트의 값에 따라 교체될 페이지의 순서가 결정된다.
참조 비트 0 0 1 1
변형 비트 0 1 0 1
교체 순서 1 2 3 4

 

SCR(Second Chance Replacement, 2차 기회 교체)

  • 가장 오랫동안 주기억장치에 있던 페이지 중, 자주 사용되는 페이지의 교체를 방지하기 위한 기법
  • FIFO 기법의 단점을 보완하는데 사용된다.

 

 

(7) 가상기억장치 기타 관리 사항

페이지 크기

  • 페이징 기법을 사용하면 프로그램을 페이지 단위로 나누게 되는데, 페이지의 크기에 따라 시스템에 미치는 영향이 다르다.
페이지 크기가 작을 경우 - 페이지 단편화가 감소되고, 1개의 페이지를 주기억장치로 이동시키는 시간이 줄어듦.
- 불필요한 내용이 주기억장치에 적재될 확률이 적으므로 효율적인 워킹 셋을 유지할 수 있음.
- 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐.
- 디스크 접근 횟수가 많아져서 전체적인 입출력 시간은 늘어남.
페이지 크기가 클 경우 - 페이지 정보를 갖는 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라짐.
- 디스크 접근 횟수가 줄어들어 전체적인 입출력의 효율성이 증가됨.
- 페이지 단편화가 증가되고, 1개의 페이지를 주기억장치로 이동시키는 시간이 늘어남.

 

Locality

  • Locality(국부성, 지역성 구역성, 국소성)프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론이다.
  • 스레싱을 방지하기 위한 워킹 셋 이론의 기반이 되었다.
  • 가상기억장치 관리와 캐시 메모리 시스템의 이론적인 근거이다.
  • 데닝(Denning) 교수에 의해 Locality의 개념이 증명되었다.
  • Locality의 종류
시간 구역성
(Temporal Locality)
- 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상
- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음.
공간 구역성
(Spatial Locality)
- 프로세스 실행 시, 일정 위치의 페이지를 집중적으로 액세스하는 현상
- 어느 하나의 페이지를 참조하면, 그 근처의 페이지를 계속 참조할 가능성이 높음.

 

워킹 셋(Working Set)

  • 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
  • 데닝(Denning)이 제안한 프로그램의 움직임에 대한 모델로, 프로그램의 Locality 특징을 이용한다.
  • 자주 참조되는 워킹 셋주기억장치에 상주시킴으로써 페이지 부재페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정된다.

 

스래싱(Thrashing)

  • 프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
  • 다중 프로그래밍 시스템이나 가상기억장치를 사용하는 시스템에서 하나의 프로세스 수행 과정 중에 자주 페이지 부재(Page Fault)가 발생함으로써 나타나며, 전체 시스템의 성능도 저하된다.
    • 페이지 부재(Page Fault)
      • 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상
      • 페이지 부재가 일어나는 횟수를 페이지 부재 빈도(PFF; Page Fault Frequency)라고 한다.
  • 다중 프로그래밍의 정도가 높아짐에 따라 CPU의 이용률은 어느 특정 시점까지는 높아지지만, 다중 프로그래밍의 정도가 더욱 커지면 스래싱이 나타나고, CPU의 이용률은 급격히 감소하게 된다.
    • 다중 프로그래밍의 정도
      • 얼마나 많은 프로그램이 동시에 수행되는가를 나타내는 것
      • 다중 프로그래밍의 정도를 높인다는 것은 동시에 수행하는 프로그램의 수를 늘리는 것을 의미한다.

 

 

(8) 프로세스의 개요

프로세스(Process)

  • 일반적으로 프로세서에 의해 처리되는 사용자 프로그램, 시스템 프로그램, 즉 실행중인 프로그램을 의미한다.
  • 프로세스는 다음과 같이 여러 가지로 정의할 수 있다.
    • PCB를 가진 프로그램
    • 실기억장치에 저장된 프로그램
    • 프로세서가 할당된 실체로서, 디스패치가 가능한 단위
    • 프로시저가 활동중인 것
      • 프로시저 : 한 프로그램은 여러 개의 작은 프로그램으로 분할될 수 있는데, 이 때 분할된 작은 프로그램
        • 부프로그램이라고도 한다.
    • 비동기적 행위를 일으키는 주체
    • 지정된 결과를 얻기 위한 일련의 계통적 동작
    • 목적 또는 결과에 따라 발생되는 사건의 과정
    • 운영체제가 관리하는 실행 단위

 

PCB(Process Control Block, 프로세스 제어 블록)

  • 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳
  • 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거된다.
  • PCB에 저장되어 있는 정보
    • 프로세스의 현재 상태
    • 포인터(Pointer)
      • 부모 프로세스에 대한 포인터
      • 자식 프로세스에 대한 포인터
      • 프로세스가 위치한 메모리에 대한 포인터
      • 할당된 자원에 대한 포인터
    • 프로세스 고유 식별자
    • 스케쥴링 및 프로세스의 우선순위
    • CPU 레지스터 정보
    • 주기억장치 관리 정보
    • 입·출력 상태 정보
    • 계정 정보

 

프로세스 상태 전이

  • 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것
  • 프로세스의 상태는 다음과 같이 상태 전이도로 표시할 수 있다.

 

상태 내용
제출(Submit) 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태
접수(Hold) 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
준비(Ready) 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태
실행(Run) 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행되는 상태
대기(Wait), 블록(Block) 프로세스에 입출력 처리가 필요하면 현재 실행 중인 프로세스가 중단되고, 입출력 처리가 완료될 때까지 대기하고 있는 상태
종료(Terminated, Exit) 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

 

프로세스 상태 전이 관련 용어

용어 내용
Dispatch 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정
Wake Up 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정
Spooling 입출력 장치의 공유 및 상대적으로 느린 입출력 장치의 처리 속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해 입출력할 데이터를 직접 입출력 장치에 보내지 않고, 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정
교통량 제어기
(Traffic Controller)
프로세스의 상태에 대한 조사와 통보 담당

 

스레드(Thread)

  • 시스템의 여러 자원을 할당받아 실행하는 프로그램의 단위 또는 프로세스 내에서의 작업 단위로 사용된다.
  • 하나의 프로세스에 하나의 스레드가 존재하는 경우에는 단일 스레드, 하나 이상의 스레드가 존재하는 경우에는 다중 스레드라고 한다.
  • 프로세스의 일부 특성을 갖고 있기 때문에 경량(Light Weight) 프로세스라고도 한다.
  • 스레드 기반 시스템에서 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할을 담당한다.

 

 

(9) 스케줄링

스케줄링(Scheduling)

  • 프로세스가 생성되어 실행이 될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
  • 프로세스가 생성되어 완료될 때까지 프로세스는 여러 종류의 스케줄링 과정을 거치게 된다.
  • 스케줄링의 종류
장기 스케줄링 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정하여 준비상태 큐로 보내는 작업
중기 스케줄링 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업
단기 스케줄링 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업

 

스케줄링의 목적

목적 내용
공정성 모든 프로세스에 공정하게 할당함.
처리율 증가 단위 시간당 프로세스를 처리하는 비율을 증가시킴.
CPU 이용률 증가 CPU가 순수하게 프로세스를 실행하는 데 사용되는 시간 비용을 증가시킴.
우선순위 제도 우선순위가 높은 프로세스를 먼저 실행함.
오버헤드 최소화 오버헤드를 최소화함.
응답 시간 최소화 작업을 지시하고, 반응하기 시작하는 시간을 최소화함.
반환 시간 최소화 프로세스를 제출한 시간부터 실행이 완료될 때까지 걸리는 시간을 최소화함.
대기 시간 최소화 프로세스가 준비상태 큐에서 대기하는 시간을 최소화함.
균형 있는 자원의 사용 메모리, 입출력장치 등의 자원을 균형 있게 사용함.
무한 연기 회피 자원을 사용하기 위해 무한정 연기되는 상태를 회피함.

 

비선점(Non-Preemptive / Non-Preemption) 스케줄링

  • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
  • 프로세스가 CPU를 할당받으면 해당 프로세스가 완료될 때까지 CPU를 사용한다.
  • 프로세스 응답 시간의 예측이 용이하다.
  • 일괄 처리 방식에 적합하다.
  • 종류 : FCFS, SJF, 우선순위, HRN, 기한부 등

 

선점(Preemptive) 스케줄링

  • 하나의 프로세스가 CPU를 할당 받아 실행하고 있을 때, 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
  • 우선순위가 높은 프로세스를 빠르게 처리할 수 있다.
  • 주로 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용된다.
  • 많은 오버헤드(Overhead)를 초래한다.
  • 종류 : Round Robin, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 등

 

 

(10) 주요 스케줄링 알고리즘

FCFS(First Come First Service, 선입 선출) = FIFO(First In First Out)

  • 준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당하는 기법
  • 가장 간단한 알고리즘

 

예제 : 다음과 같은 프로세스들이 차례로 준비상태 큐에 들어왔다고 가정할 때, FCFS 기법을 이용하여 평균 실행 시간, 평균 대기 시간, 평균 반환 시간을 구하시오. (제출 시간은 없으며, 시간의 단위는 초임.)

 

① 실행 시간을 이용하여 다음과 같이 각 프로세스의 대기 시간과 반환 시간을 구한다.

  • 대기 시간 : 프로세스가 대기한 시간으로, 바로 앞 프로세스까지의 진행 시간으로 계산
  • 반환 시간 : 프로세스의 대기 시간실행 시간의 합.

② 실행 시간, 대기 시간, 반환 시간의 평균은 '각 프로세스 시간의 합/프로세스의 개수'를 이용한다.

 

 

SJF(Shortest Job First, 단기 작업 우선)

  • 준비상태 큐에서 기다리고 있는 프로세스들 중에서 실행 시간이 가장 잛은 프로세스에 먼저 CPU를 할당하는 기법
  • 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘

 

예제 : 다음과 같은 프로세스들이 차례로 준비상태 큐에 들어왔다고 가정할 때, SJF 기법을 이용하여 평균 실행 시간, 평균 대기 시간, 평균 반환 시간을 구하시오. (제출 시간은 없으며, 시간의 단위는 초임.)

 

① 아래와 같이 실행 시간이 짧은 프로세스를 먼저 처리하도록 이동시킨 후, 각 프로세스의 대기 시간과 반환 시간을 구한다.

② 실행 시간, 대기 시간, 반환 시간의 평균은 FCFS의 예제와 동일한 방법으로 구한다.

 

 

HRN(Highest Response-ratio Next)

  • 대기 시간서비스(실행) 시간을 이용하는 기법
  • 실행 시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것
  • 우선순위를 계산하여 그 숫자가 가장 높은 것부터 낮은 순으로 우선순위가 부여된다.
  • 우선순위 계산식

$우선순위\,계산식 = \frac{대기\,시간 + 서비스\,시간}{서비스\,시간}$

 

예제 : 다음과 같은 프로세스가 HRN 기법으로 스케줄링될 때 우선순위를 계산하시오.

 

 

(11) 환경 변수

환경 변수(Environment Variable)

  • 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임
  • 변수명으로 구성된다.
  • 시스템의 기본 정보를 저장한다.
  • 자식 프로세스에 상속된다.
  • 시스템 전반에 걸쳐 적용되는 시스템 환경 변수와 사용자 계정 내에서만 적용되는 사용자 환경 변수로 구분된다.
    • 시스템 환경 변수는 적용되는 범위가 모듈이나 실행 프로세스 내인 경우 내부 환경 변수, 모듈 외인 경우 외부 환경 변수로 구분한다.

 

Windows의 주요 환경 변수

  • Windows 에서 환경 변수를 명령어나 스크립트에서 사용하려면 변수명 앞뒤에 '%' 를 입력해야 한다.
  • Windows에서 set 을 입력하면 모든 환경 변수와 값을 출력한다.
환경 변수 용도
%ALLUSERPROFILE% 모든 사용자의 프로필이 저장된 폴더
%APPDATA% 설치된 프로그램의 필요 데이터가 저장된 폴더
%COMSPEC% 기본 명령 프롬프트로 사용할 프로그램명
%HOMEDRIVE% 로그인한 계정의 정보가 저장된 드라이브
%HOMEPATH% 로그인한 계정의 기본 폴더
%LOGONSERVER% 로그인한 계정이 접속한 서버명
%PATH% 실행 파일을 찾는 경로
%PATHEXT% cmd에서 실행할 수 있는 파일의 확장자 목록
%PROGRAMFILES% 기본 프로그램의 설치 폴더
%SYSTEMDRIVE% Windows가 부팅된 드라이브
%SYSTEMROOT% 부팅된 운영체제가 들어 있는 폴더
%TEMP% 또는 %TMP% 임시 파일이 저장되는 폴더
%USERDOMAIN% 로그인한 시스템의 도메인명
%USERNAME% 로그인한 계정 이름
%USERPROFILE% 로그인한 유저의 프로필이 저장된 폴더명

 

UNIX / Linux의 주요 환경 변수

  • UNIXLinux에서 환경 변수를 명령어나 스크립트에서 사용하려면 변수명 앞에 '$'를 입력해야 한다.
  • UNIXLinux에는 set, env, printenv, setenv 중 하나를 입력하면 모든 환경 변수와 값을 표시한다.
환경 변수 용도
$DISPLAY 현재 X 윈도 디스플레이 위치
$HOME 사용자의 홈 디렉터리
$LANG 프로그램 사용 시 기본적으로 지원되는 언어
$MAIL 메일을 보관하는 경로
$PATH 실행 파일을 찾는 경로
$PS1 쉘 프롬프트 정보
$PWD 현재 작업하는 디렉터리
$TERM 로그인 터미널 타입
$USER 사용자의 이름

 

 

(12) 운영체제 기본 명령어

Windows 기본 명령어

명령어 기능
DIR - 현재 디렉터리의 파일 목록을 표시함.
- 예) dir → 현재 디렉터리의 파일 목록을 표시한다. 
COPY - 파일을 복사함.
- 예) copy abc.txt starrykss → abc.txt 파일을 starrykss 디렉터리로 복사한다.
DEL - 파일을 삭제함.
- 예) del abc.txt → abc.txt 파일을 삭제한다.
TYPE - 파일의 내용을 표시함.
- 예) type abc.txt → abc.txt 파일의 내용을 표시한다.
REN - 파일의 이름을 변경함.
- 예) ren abc.txt 123.txt → abc.txt 파일의 이름을 123.txt 로 변경한다.
MD - 디렉터리를 생성함.
- 예) md starykss → starrykss 디렉터리를 생성한다.
CD - 동일한 드라이브에서 디렉터리의 위치를 변경함.
- 예) cd starykss → 디렉터리의 위치를 starrykss 로 변경한다.
CLS - 화면의 내용을 지움.
- 예) cls → 화면에 표시되어 있는 모든 내용을 지운다.
ATTRIB - 파일의 속성을 변경함.
- 예) attrib +r abc.txt → abc.txt 파일 속성을 읽기 전용으로 변경한다.
FIND - 파일에서 문자열을 찾음.
- 예) find "123" abc.txt → abc.txt 파일에서 "123"이 포함된 문자열을 찾는다.
CHKDSK - 디스크 상태를 점검함.
- 예) chkdsk → 현재 드라이브의 상태를 점검한다.
FORMAT - 디스크 표면을 트랙과 섹터로 나누어 초기화함.
- 예) format c: → C 드라이브를 초기화한다.
MOVE - 파일을 이동함.
- 예) move abc.txt starrykss → abc.txt 파일을 starrykss 디렉터리로 이동한다.

*명령어 뒤에 "/?" 를 입력하면 해당 명령어의 옵션이 표시된다.

 

DIR의 옵션

  • /P : 목록을 한 화면 단위로 표시
  • /W : 목록을 가로로 나열하여 표시
  • /O : 지정한 정렬 방식으로 파일 목록 표시 (D : 날짜/시간, E : 확장자, N : 파일 이름, S : 파일 크기)
  • /S : 하위 디렉터리의 정보까지 표시
  • /A : 지정한 속성이 설정된 파일 목록 표시

 

속성의 종류

  • R : 읽기 전용 속성
  • A : 저장/백업 속성
  • S : 시스템 파일 속성
  • H : 숨김 파일

※ 속성을 지정할 때는 속성 앞에 +를, 해제할 때는 속성 앞에 -를 입력한다.

 

UNIX / Linux 기본 명령어

명령어 기능
cat - 파일 내용을 화면에 표시함.
- 예) cat abc.txt → abc.txt 파일 내용을 화면에 표시한다.
cd - 디렉터리의 위치를 변경함.
- 에) cd starrykss → starrykss 디렉터리로 이동한다.
chmod - 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정함.
- 예) chmod u=rwx abc.txt → user(u)에게 abc.txt 파일의 읽기(r), 쓰기(w), 실행(x) 권한을 부여(=)한다.
chown - 파일 소유자와 그룹을 변경함.
- 예) chown member1 abc.txt → abc.txt 파일의 소유자를 member1으로 변경
cp - 파일을 복사함.
- 예) cp abc.txt starrykss/abc2.txt → abc.txt 파일을 starrykss 디렉터리에 abc2.txt 로 이름을 변경하여 복사한다.
rm - 파일을 삭제함.
- 예) rm abc.txt → abc.txt 파일을 삭제한다.
find - 파일을 찾음.
- 예) find abc.txt → abc.txt 파일을 찾는다.
fsck - 파일 시스템을 검사하고 보수함.
- 예) fsck /dev/sda1 → /dev/sda1에 기록된 모든 파일 시스템을 검사하고 보수한다.
kill - PID(프로세스 고유 번호)를 이용하여 프로세스를 종료함.
- 예) kill 1234 → PID가 1234인 프로세스를 종료한다.
fork - 새로운 프로세스를 생성함.
- 예) fork() → 새로운 프로세스를 생성한다.
killall - 프로세스의 이름을 이용하여 프로세스를 종료함.
- 예) killall starrykss → 프로세스 이름이 starrykss인 모든 프로세스를 종료한다.
ls - 현재 디렉터리의 파일 목록을 표시함.
- 예) ls → 현재 디렉터리의 파일 목록을 표시한다.
mkdir - 디렉터리를 생성함.
- 예) mkdir starrykss → starrykss 디렉터리를 생성한다.
rmdir - 디렉터리를 삭제함.
- 예) rmdir starrykss → starrykss 디렉터리를 삭제한다.
mv - 파일을 이동함.
- 예) mv abc.txt starrykss/abc2.txt → abc.txt 파일을 starrykss 디렉터리에 abc2.txt 로 이름을 변경하여 이동한다.
ps - 현재 실행중인 프로세스를 표시함.
- 예) ps → 현재 실행 중인 프로세스를 표시한다.
pwd - 현재 작업중인 디렉터리의 경로를 화면에 표시함.
- 예) pwd → 현재 작업중인 디렉터리의 경로를 화면에 표시한다.
top - 시스템의 프로세스와 메모리 사용 현황을 표시함.
- 예) top → 시스템의 프로세스와 메모리 사용 현황을 표시한다.
who - 현재 시스템에 접속해 있는 사용자를 표시함.
- 예) who → 현재 시스템에 접속해 있는 사용자를 표시한다.

*명령어 뒤에 "--help"를 입력하면 해당 명령어의 옵션이 표시된다.

*ls로 파일 목록을 표시했을 때 파란색 파일은 실행 파일, 흰색 파일은 비실행 파일을 의미한다.

 

chmod의 문자열 모드

  • 사용자
    • u : user(소유자)
    • g : group(그룹)
    • o : other(다른 사용자)
    • a : all(모두)
  • 설정 기호
    • + : 권한 추가
    • - : 권한 삭제
    • = : 권한 부여
  • 권한
    • r : read(읽기)
    • w : write(쓰기)
    • x : excute(실행)

 

예제 : UNIX 기반 시스템에서 'batch.sh' 파일에 대해 소유자와 그룹에게는 전체 권한, 기타 사용자에게는 읽기와 실행 권한만 부여하는 명령문을 8진법 숫자를 이용하여 작성하시오.
chmod 775 batch.sh
  • UNIX에서는 파일의 권한(Permission)10자리로 표현한다.
    • 1번째 자리 : 디렉터리(d) 또는 파일(-)
    • 2~4번째 자리 : 소유자(Owner) 권한
    • 5~7번째 자리 : 그룹(Group) 권한
    • 8~10번째 자리 : 기타 사용자(Other) 권한
  • 각 자리는 r(읽기), w(쓰기), x(실행), -(권한 없음)으로 표시한다.
  • 권한을 변경하는 chmod 명령어는 위의 권한 표현 방식을 8진수로 변경하여 사용할 수 있다.
    • r(읽기) : 4
    • w(쓰기) : 2
    • x(실행) : 1

 

 

(13) 인터넷

인터넷(Internet)

  • TCP/IP 프로토콜을 기반으로 하여 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망
  • 인터넷에 연결된 모든 컴퓨터는 고유한 IP 주소를 갖는다.

 

IP 주소(Internet Protocol Address)

  • 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소
  • 8비트 4부분, 총 32비트로 구성되어 있다.
  • IP 주소는 네트워크 부분의 길이에 따라 다음과 같이 A 클래스에서 E 클래스까지 총 5단계로 구성되어 있다.
A Class - 국가대형 통신망에 사용(0~127로 시작)
- $2^{24} = 16,777,216$ 개의 호스트 사용 가능
B Class - 중대형 통신망에 사용(128~191로 시작)
- $2^{16} = 65,536$ 개의 호스트 사용 가능
C Class - 소규모 통신망에 사용(192~223으로 시작)
- $2^{8} = 256$ 개의 호스트 사용 가능
D Class 멀티캐스트용으로 사용 (224~239로 시작)
E Class 실험적 주소이며, 공용되지 않음.

*A Class의 네트워크 주소는 0~127로 시작하지만, 0번과 127번은 예약된 주소이므로 실질적으로는 1~126으로 시작한다.

*멀티캐스트(Multicast) : 한 명 이상의 송신자들이 특정한 한 명 이상의 수신자들에게 데이터를 전송하는 방식으로, 인터넷 화상 회의 등에서 사용된다.

 

서브네팅(Subnetting)

  • 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는 것
  • 4바이트의 IP 주소 중, 네트워크 주소호스트 주소를 구분하기 위한 비트를 서브넷 마스크(Subnet Mask)라고 하며, 이를 변경하여 네트워크 주소를 여러 개로 분할하여 사용한다.
  • 서브넷 마스크는 각 클래스마다 다르게 사용된다.

 

예제 : 192.168.1.0/24 네트워크를 FLSM 방식을 이용하여 3개의 Subnet으로 나누시오. (단, Subnet Zero를 적용했다.)

*Subnet-Zero : Subnet 부분이 모두 0인 192.168.1.0은 사용하지 않았는데, IP 주소가 부족해지면서 Subnet 부분이 모두 0인 주소도 IP 주소로 사용할 수 있도록 함.

 

 

서브넷 마스크를 Subnet으로 나눌 때는 서브넷 마스크가 0인 부분, 즉 마지막 8비트를 이용하면 된다.

Subnet으로 나눌 때 "3개의 Subnet으로 나눈다." 는 것처럼 네트워크가 기준일 때왼쪽을 기준으로 나눌 네트워크 수에 필요한 비트를 할당하고, 나머지 비트로 호스트를 구성하면 된다.

3개의 Subnet으로 구성하라 했으니 8비트 중 3을 표현하는데 필요한 2비트를 제외하고 나머지 6비트호스트로 구성하면 된다.

 

 

호스트 ID6비트로 설정되었고, 문자에서 FLSM(Fixed Length Subnet Mask), 즉 고정된 크기로 주소를 할당하라고 했으므로 3개의 네트워크에 64개($2^{6} = 64$)씩 고정된 크기로 할당하면 다음과 같다.

 

 

IPv6(Internet Protocol version 6)

  • 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발되었다.
  • 128비트의 긴 주소를 사용하여 주소 부족 문제를 해결할 수 있다.
  • IPv4에 비해 자료 전송 속도가 빠르다.
  • 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제를 해결할 수 있다.
    • 인증성 : 사용자의 식별과 접근 권한 검증
    • 기밀성 : 시스템 내의 정보와 자원은 인가된 사용자에게만 접근 허용
    • 무결성 : 시스템 내의 정보는 인가된 사용자만 수정 가능
  • 주소의 확장성, 융통성, 연동성이 뛰어나다.
  • 실시간 흐름 제어로 향상된 멀티미디어 기능을 지원한다.
  • 패킷 크기를 확장할 수 있으므로 패킷 크기에 제한이 없다.
  • 기본 헤더 뒤에 확장 헤더를 더함으로써 더욱 다양한 정보의 저장이 가능해져 네트워크 기능 확장이 용이하다.
    • 헤더(Header)
      • 패킷 전송 시 제일 앞에 배치되는 영역
      • IP 주소의 버전, 인증 정보, 패킷에 대한 정보, 출발 주소, 도착 주소 등의 다양한 정보를 포함한다.
  • IPv4와 호환성이 뛰어나다.

 

IPv6의 구성

  • 16비트8부분, 총 128비트로 구성되어 있다.
  • 각 부분을 16진수로 표현하고, 콜론(:)으로 구분한다.
  • 다음과 같이 3가지 주소 체계로 나누어진다.
유니캐스트(Unicast) 단일 송신자단일 수신자 간의 통신 (1 대 1 통신에 사용)
멀티캐스트(Multicast) 단일 송신자다중 수신자 간의 통신 (1 대 다 통신에 사용)
애니캐스트(Anycast) 단일 송신자와 가장 가까이에 있는 단일 수신자 간의 통신 (1 대 1 통신에 사용)

 

도메인 네임(Domain Name)

  • 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현하는 것
  • 호스트 컴퓨터 이름, 소속 기관 이름, 소속 기관의 종류, 소속 국가명 순으로 구성되며, 왼쪽에서 오른쪽으로 갈수록 상위 도메인을 의미한다.
  • 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 역할을 하는 시스템을 DNS(Domain Name System)라고 하며, 이런 역할을 하는 서버를 DNS 서버라고 한다.

 

 

(14) OSI 참조 모델

OSI(Open System Interconnection) 참조 모델

  • 다른 시스템 간의 원할한 통신을 위해 ISO(국제표준화기구)에서 제안한 통신 규약(Protocol)
  • OSI 7계층은 1~3 계층을 하위 계층, 4~7 계층을 상위 계층이라고 한다.
    • 하위 계층 : 물리 계층 → 데이터 링크 계층 → 네트워크 계층
    • 상위 계층 : 전송 계층 → 세션 계층 → 표현 계층 → 응용 계층

 

물리 계층(Physical Layer)

  • 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의한다.
  • 물리적 전송 매체와 전송 신호 방식을 정의한다.
  • RS-232C, X.21 등의 표준이 있다.
  • 관련 장비 : 리피터, 허브

 

데이터 링크 계층(Data Link Layer)

  • 2개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 시스템 간 연결 설정과 유지 및 종료를 담당한다.
  • 송신 측과 수신 측의 속도 차이 해결을 위한 흐름 제어 기능을 한다.
  • 프레임의 시작과 끝을 구분하기 위한 프레임의 동기화 기능을 한다.
  • 오류의 검출과 회복을 위한 오류 제어 기능을 한다.
  • 프레임의 순서적 전송을 위한 순서 제어 기능을 한다.
  • HDLC, LAPB, LLC, MAC, LAPD, PPP 등의 표준이 있다.
  • 관련 장비 : 랜카드, 브리지, 스위치

 

네트워크 계층(Network Layer, 망 계층)

  • 개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능을 한다.
  • 네트워크 연결을 설정, 유지, 해제하는 기능을 한다.
  • 경로 설정(Routing), 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송을 수행한다.
  • X.25, IP 등의 표준이 있다.
  • 관련 장비 : 라우터

 

전송 계층(Transport Layer)

  • 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템(End-to-End) 간에 투명한 데이터 전송을 가능하게 한다.
  • OSI 7계층 중 하위 3계층과 상위 3계층의 인터페이스(Interface)를 담당한다.
  • 종단 시스템(End-to-End) 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능을 한다.
  • 주소 설정, 다중화(분할 및 재조립), 오류 제어, 흐름 제어를 수행한다.
  • TCP, UDP 등의 표준이 있다.
  • 관련 장비 : 게이트웨이

 

세션 계층(Session Layer)

  • 송·수신 간의 관련성을 유지하고 대화 제어를 담당한다.
  • 대화(회화) 구성 및 동기 제어, 데이터 교환 관리 기능을 한다.
  • 동기점은 오류가 있는 데이터의 회복을 위해 사용하는 것으로, 종류에는 소동기점대동기점이 있다.
    • 소동기점(Minor Synchronization) : 하나의 대화 단위 내에서 데이터의 전달을 제어하는 역할을 하며, 수신 측으로부터 확인 신호(ACK)를 받지 않음.
    • 대동기점(Major Synchronization) : 전송하는 각 데이터의 처음과 끝에 사용하여 전송하는 데이터 단위를 대화 단위로 구성하는 역할을 하며, 수신 측으로부터 반드시 전송한 데이터에 대한 확인 신호(ACK)를 받음.

 

표현 계층(Presentation Layer)

  • 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 한다.
  • 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층
  • 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식(포맷) 변환, 문맥 관리 기능을 한다.

 

응용 계층(Application Layer)

  • 사용자(응용 프로그램)가 OSI 환경에 접근할 수 있도록 서비스를 제공한다.
  • 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 등의 서비스를 제공한다.

 

 

(15) 네트워크 관련 장비

네트워크 인터페이스 카드(NIC; Network Interface Card)

  • 컴퓨터와 컴퓨터 또는 컴퓨터와 네트워크를 연결하는 장치
  • 정보 전송 시, 정보가 케이블을 통해 전송될 수 있도록 정보 형태를 변경한다.
  • 이더넷 카드(LAN 카드) 혹은 네트워크 어댑터라고도 한다.

 

허브(Hub)

  • 한 사무실이나 가까운 거리의 컴퓨터를 연결하는 장치로, 각각의 회선을 통합하여 관리한다.
  • 허브는 신호 증폭 기능을 하는 리피터의 역할을 포함한다.
  • 허브 종류
    • 더미 허브(Dummy Hub) : 네트워크에 흐르는 모든 데이터를 단순히 연결하는 기능만 제공하는 허브
    • 스위칭 허브(Switching Hub) : 네트워크상에 흐르는 데이터의 유무 및 흐름을 제어하여 각각의 노드가 허브의 최대 대역폭을 사용할 수 있는 지능형 허브

 

리피터(Repeater)

  • 거리가 증가할수록 감쇠하는 디지털 신호의 장거리 전송을 위해 수신한 신호를 재생시키거나 출력 전압을 높여 전송하는 장치
  • OSI 참조 모델물리 계층에서 동작하는 장비
  • 전송 거리의 연장 또는 배선의 자유도를 높이기 위한 용도로 사용된다.

 

브리지(Bridge)

  • LAN과 LAN을 연결하거나, LAN 안에서 컴퓨터 그룹을 연결하는 장치
  • 네트워크의 수많은 단말기들에 의해 발생되는 트래픽 병목 현상을 줄일 수 있다.
  • 네트워크를 분석적으로 구성할 수 있어 보안성을 높일 수 있다.
  • 브리지를 이용한 서브넷(Subnet) 구성 시, 전송 가능한 회선 수는 브리지가 n개일 때 n(n-1)/2이다.

 

스위치(Switch)

  • 브리지와 같이 LAN과 LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
  • 하드웨어를 기반으로 처리하므로 전송 속도가 빠르다.
  • 포트마다 서로 다른 전송 속도를 지원하게 제어할 수 있다.
  • 수십에서 수백 개의 포트를 제공한다.
  • OSI 참조 모델데이터 링크에서 사용된다.

 

라우터(Router)

  • 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택하는 기능이 추가된 장치
  • 서로 다른 LAN 또는 LAN과 WAN을 연결하는 기능도 한다.
  • OSI 참조 모델네트워크 계층에서 동작하는 장비이다.
  • 3계층, 즉 네트워크 계층까지의 프로토콜 구조가 다른 네트워크 간의 연결을 위해 프로토콜 변환 기능을 수행한다.

 

게이트웨이(Gateway)

  • OSI 전 계층의 프로토콜 구조가 다른 네트워크를 연결하는 장치
  • LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할을 한다.
  • 세션 계층, 표현 계층, 응용 계층 간을 연결하여 데이터 형식 변환, 주소 변환, 프로토콜 변환 등을 수행한다.

 

 

(16) TCP/IP

프로토콜(Protocol)

  • 서로 다른 기기들 간의 데이터 교환을 원할하게 수행할 수 있도록 표준화시켜 놓은 통신 규약
  • 프로토콜의 기본 요소
구문(Syntax) 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정함.
의미(Semantics) 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항과 오류 관리를 위한 제어 정보를 규정함.
시간(Timing) 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정함.
  • 프로토콜의 기능 : 단편화와 재결합, 캡슐화, 흐름 제어, 오류 제어, 동기화, 순서 제어, 주소 지정, 다중화, 경로 제어, 전송 서비스 등

 

TCP/IP(Transmission Control Protocol/Internet Protocol)

  • 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜
프로토콜 내용
TCP
(Transmission Control Protocol)
- OSI 7계층전송 계층에 해당함.
- 신뢰성 있는 연결형 서비스를 제공함.
- 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공함.
IP
(Internet Protocol)
- OSI 7계층네트워크 계층에 해당함.
- 데이터그램을 기반으로 하는 비연결형 서비스를 제공함.
- 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공함.

 

연결형 통신

  • 송수신 측 간을 논리적으로 연결한 후 데이터를 전송하는 방식
  • 가상 회선 방식이 대표적이다.
  • 데이터 전송의 안정성과 신뢰성이 보장되지만, 연결 설정 지연이 일어나며, 회선 이용률이 낮아질 수 있다.

 

비연결형 통신

  • 송수신 측 간에 논리적 연결 없이 독립적으로 데이터를 전송하는 방식
  • 데이터그램 방식이 대표적이다.

 

TCP/IP의 구조

OSI TCP/IP 기능
응용 계층
표현 계층
세션 계층
응용 계층 - 응용 프로그램 간의 데이터 송수신 제공
- TELNET, FTP, SMTP, SNMP, DNS, HTTP 등
전송 계층 전송 계층 - 호스트들 간의 신뢰성 있는 통신 제공
- TCP, UDP, RTCP
네트워크 계층 인터넷 계층 - 데이터 전송을 위한 주소 지정, 경로 설정을 제공함.
- IP, ICMP, IGMP, ARP, RARP
데이터 링크 계층
물리 계층
네트워크 액세스 계층 - 실제 데이터(프레임)를 송수신하는 역할
- Ethernet, IEEE 802, HDLC, X.25, RS-232C, ARQ 등

*네트워크 액세스 계층물리 계층데이터 링크 계층으로 세분화하여 물리 계층, 데이터 링크 계층, 인터넷 계층, 전송 계층, 응용 계층 이렇게 5계층으로 구분하기도 한다.

 

응용 계층의 주요 프로토콜

프로토콜 내용
FTP
(File Transfer Protocol)
컴퓨터와 컴퓨터 또는 컴퓨터와 인터넷 사이에서 파일을 주고받을 수 있도록 하는 원격 파일 전송 프로토콜
SMTP
(Simple Mail Transfer
Protocol)
전자 우편을 교환하는 서비스
TELNET - 멀리 떨어져 있는 컴퓨터에 접속하여 자신의 컴퓨터처럼 사용할 수 있도록 해주는 서비스
- 프로그램을 실행하는 등 시스템 관리 작업을 할 수 있는 가상의 터미널(Virtual Terminal) 기능을 수행함.
SNMP
(Simple Network
Management Protocol)
TCP/IP 네트워크 관리 프로토콜로, 라우터나 허브 등 네트워크 기기의 네트워크 정보를 네트워크 관리 시스템에 보내는데 사용되는 표준 통신 규약
DNS
(Domain Name System)
도메인 네임을 IP 주소로 매핑(Mapping)하는 시스템
HTTP
(HyperText Transfer
Protocol)
월드 와이드 웹(WWW)에서 HTML 문서를 송수신 하기 위한 표준 프로토콜

 

전송 계층의 주요 프로토콜

프로토콜 내용
TCP
(Transmission Control Protocol)
- 양방향 연결(Full Duplex Connection)형 서비스를 제공함.
- 가상 회선 연결(Virtual Circuit Connection) 형태의 서비스를 제공함.
- 스트림 위주의 전달(패킷 단위)을 함.
- 신뢰성 있는 경로를 확립하고 메시지 전송을 감독함.
- 순서 제어, 오류 제어, 흐름 제어 기능을 함.
- 패킷의 분실, 손상, 지연이나 순서가 틀린 것 등이 발생할 때 투명성이 보장되는 통신을 제공함.
- TCP 프로토콜의 헤더는 기본적으로 20 Byte에서 60 Byte까지 사용할 수 있는데, 선택적으로 40 Byte를 더 추가할 수 있으므로 최대 100 Byte 까지 크기를 확장할 수 있음.
UDP
(User Datagram Protocol)
- 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스를 제공함.
- TCP에 비해 상대적으로 단순한 헤더 구조를 가지므로, 오버헤드가 적고, 흐름 제어나 순서 제어가 없어 전송 속도가 빠름.
- 고속의 안정성 있는 전송 매체를 사용하여 빠른 속도를 필요로 하는 경우, 동시에 여러 사용자에게 데이터를 전달할 경우, 정기적으로 반복해서 전송할 경우에 사용함.
- 실시간 전송에 유리하며, 신뢰성보다는 속도가 중요시되는 네트워크에서 사용됨.
- UDP 헤더에는 Source Port Number, Destination Port Number, Length, Checksum 등이 포함됨.
RTCP
(Real-Time Control Protocol)
- RTP(Real-Time Transport Protocol) 패킷의 전송 품질을 제어하기 위한 제어 프로토콜
- 세션(Session)에 참여한 각 참여자들에게 주기적으로 제어 정보를 전송함.
- 하위 프로토콜은 데이터 패킷제어 패킷다중화(Multiplexing)를 제공함.
- 데이터 전송을 모니터링하고 최소한의 제어와 인증 기능만을 제공함.
- RTCP 패킷은 항상 32비트의 경계로 끝남.

 

인터넷 계층의 주요 프로토콜

프로토콜 내용
IP
(Internet Protocol)
- 전송할 데이터에 주소를 지정하고, 경로를 설정하는 기능을 함.
- 비연결형인 데이터그램 방식을 사용하는 것으로, 신뢰성이 보장되지 않음.
ICMP
(Internet Control Message
Protocol,
인터넷 제어 메시지 프로토콜)
- IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 관리하는 역할을 함.
- 헤더는 8 Byte로 구성됨.
IGMP
(Internet Group
Management Protocol,
인터넷 그룹 관리 프로토콜)
멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용됨.
ARP
(Address Resolution
Protocol,
주소 분석 프로토콜)
호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(Mac Address)로 바꿈.
RARP
(Reverse Address
Resolution Protocol)
ARP와 반대로 물리적 주소 IP 주소로 변환하는 기능을 함.

 

네트워크 액세스 계층의 주요 프로토콜

프로토콜 내용
Ethernet(IEEE 802.3) CSMA/CD 방식의 LAN
IEEE 802 LAN을 위한 표준 프로토콜
HDLC 비트 위주의 데이터 링크 제어 프로토콜
X.25 패킷 교환망을 통한 DTEDCE 간의 인터페이스를 제공하는 프로토콜
RS-232C 공중 전화 교환망(PSTN)을 통한 DTEDCE 간의 인터페이스를 제공하는 프로토콜

 

 

(17) 네트워크 관련 신기술

네트워크 관련 신기술

용어 설명
IoT
(Internet of Things,
사물 인터넷)
정보 통신을 기반으로 실세계(Physical World)가상 세계(Virtual World)의 다양한 사물들을 인터넷으로 서로 연결하여 진보된 서비스를 제공하기 위한 서비스 기반 기술
M2M
(Machine to Machine,
사물 통신)
- 무선 통신을 이용한 기계와 기계 사이의 통신
- 변압기 원격 감시, 전기, 가스 등의 원격 검침, 무선 신용 카드 조회기, 무선 보안 단말기, 버스 운행 시스템, 위치 추적 시스템, 시설물 관리 등을 무선으로 통합하여 상호 작용하는 통신
모바일 컴퓨팅
(Mobile Computing)
휴대용 기기로 이동하면서 자유로이 네트워크에 접속하여 업무를 처리할 수 있는 환경
클라우드 컴퓨팅
(Cloud Computing)
각종 컴퓨터 자원을 중앙 컴퓨터에 두고, 인터넷 기능을 갖는 단말기로 언제 어디서나 인터넷을 통해 컴퓨터 작업을 수행할 수 있는 가상화된 환경
그리드 컴퓨팅
(Grid Computing)
지리적으로 분산되어 있는 컴퓨터를 초고속 인터넷망으로 연결하여 공유함으로써 하나의 고성능 컴퓨터처럼 활용하는 기술
모바일 클라우드 컴퓨팅
(MCC; Mobile Cloud
Computing)
소비자와 소비자의 파트너가 클라우드 서비스를 이용하여 모바일 기기로 클라우드 컴퓨팅 인프라를 구성하여 여러 가지 정보와 자원을 공유하는 ICT 기술
인터클라우드 컴퓨팅
(Inter-Cloud Computing)
각기 다른 클라우드 서비스를 연동하거나 컴퓨팅 자원의 동적 할당이 가능하도록 여러 클라우드 서비스 제공자들이 제공하는 클라우드 서비스나 자원을 연결하는 기술
메시 네트워크
(Mesh Network)
- 차세대 이동 통신, 홈네트워킹, 공공 안전 등 특수 목적을 위한 새로운 방식의 네트워크 기술
- 대규모 디바이스의 네트워크 생성에 최적화되어 있음.
와이선
(Wi-SUN)
스마트 그리드와 같은 장거리 무선 통신을 필요로 하는 사물 인터넷(IoT) 서비스를 위한 저전력 장거리(LPWA; Low-Power Wide Area) 통신 기술
NDN
(Named Data Networking)
- 콘텐츠 자체의 정보와 라우터 기능만으로 데이터 전송을 수행하는 기술
- 클라이언트와 서버가 패킷의 헤더에 내장되어 있는 주소 정보를 이용하여 연결되던 기존의 IP(Internet Protocol)망을 대체할 새로운 인터넷 아키텍처로 떠오르고 있음.
NGN
(Next Generation Network,
차세대 통신망)
- ITU-T에서 개발하고 있는 유선망 기반의 차세대 통신망
- 유선망뿐 만 아니라 이동 사용자를 목표로 하며, 이동 통신에서 제공하는 완전한 이동성(Full Mobility) 제공을 목표로 개발되고 있음.
SDN
(Software Defined Networking,
소프트웨어 정의 네트워킹)
네트워크를 컴퓨터처럼 모델링하여 여러 사용자가 각각의 소프트웨어로 네트워킹을 가상화하여 제어하고 관리하는 네트워크
NFC
(Near Field Communication,
근거리 무선 통신)
- 고주파(HF)를 이용한 근거리 무선 통신 기술
- 아주 가까운 거리에서 양방향 통신을 지원하는 RFID 기술의 일종
UWB
(Ultra WideBand,
초광대역)
- 짧은 거리에서 많은 양의 디지털 데이터를 낮은 전력으로 전송하기 위한 무선 기술로 무선 디지털 펄스라고도 함.
- 0.5m/W 정도의 저전력으로 많은 양의 데이터를 1km의 거리까지 전송할 수 있을 뿐만 아니라, 땅속이나 벽면 뒤로도 전송이 가능함.
피코넷
(PICONET)
여러 개의 독립된 통신 장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
WBAN
(Wireless Body Area
Network)
웨어러블(Wearable) 또는 몸에 심는(Implant) 형태의 센서나 기기를 무선으로 연결하는 개인 영역 네트워킹 기술
GIS
(Geographic Information
System,
지리 정보 시스템)
- 지리적인 자료를 수집·저장·분석·출력할 수 있는 컴퓨터 응용 시스템
- 위성을 이용해 모든 사물의 위치 정보를 제공해 줌.
USN
(Ubiquitous Sensor Network,
유비쿼터스 센서 네트워크)
- 각종 센서로 수집한 정보를 무선으로 수집할 수 있도록 구성한 네트워크
- 필요한 모든 것에 RFID 태그를 부착하고, 이를 통하여 사물의 인식 정보는 물론 주변의 환경 정보까지 탐지하여 이를 네트워크에 연결하여 정보를 관리함.
SON
(Self Organizing Network,
자동 구성 네트워크)
- 주변 상황에 맞추어 스스로 망을 구성하는 네트워크
- SON의 목적은 통신망 커버리지 및 전송 용량 확장의 경제성 문제를 해결하고, 망의 운영과 관리의 효율성을 높이는 것임.
애드 혹 네트워크
(Ad-hoc Network)
- 재난 현장과 같이 별도의 고정된 유선망을 구축할 수 없는 장소에서 모바일 호스트(Mobile Host)만을 이용하여 구성한 네트워크
- 망을 구성한 후 단기간 사용되는 경우나 유선망을 구성하기 어려운 경우에 적합함.
네트워크 슬라이싱
(Network Slicing)
- 네트워크에서 하나의 물리적인 코어 네트워크 인프라(Infrastructure)를 독립된 다수의 가상 네트워크로 분리하여 각각의 네트워크를 통해 다양한 고객 맞춤형 서비스를 제공하는 것을 목적으로 하는 네트워크 기술
- 3GPP를 포함한 여러 글로벌 이동 통신 표준화 단체가 선정한 5G(IMT-2020)의 핵심 기술 중 하나
저전력 블루투스 기술
(BLE; Blutetooth Low Energy)
일반 블루투스와 동일한 2.4 GHz 주파수 대역을 사용하지만, 연결되지 않은 대기 상태에서는 절전 모드를 유지하는 기술
지능형 초연결망 스마트 시티, 스마트 스테이션 등 4차 산업혁명 시대를 맞아 새로운 변화에 따라 급격하게 증가하는 데이터 트래픽을 효과적으로 수용하기 위해 시행되는 과학기술정보통신부 주관 사업
파장 분할 다중화
(WDM; Wavelength Division
Multiplexing)
- 광섬유를 이용한 통신 기술의 하나로, 파장이 서로 다른 복수의 신호를 보냄으로써 여러 대의 단말기가 동시에 통신 회선을 사용할 수 있도록 하는 것
- 파장이 다른 광선끼리는 서로 간섭을 일으키지 않는 성질을 이용한 기술
소프트웨어 정의 데이터 센터
(SDDC; Software Defined Data
Center)
- 데이터 센터의 모든 자원을 가상화하여 인력의 개입 없이 소프트웨어 조작만으로 관리 및 제어되는 데이터 센터
- 컴퓨팅, 네트워킹, 스토리지, 관리 등을 모두 소프트웨어로 정의함.
- 다양한 소프트웨어 정의 기술이 사용됨.
개방형 링크드 데이터
(LOD; Linked Open Data)
- Linked DataOpen Data의 합성어로, 누구나 사용할 수 있도록 웹상에 공개된 연계 데이터를 의미함.
- 웹상에 존재하는 데이터를 개별 URI(인터넷 식별자)로 식별하고, 각 URI에 링크 정보를 부여함으로써 상호 연결된 웹을 지향하는 모형

 

 

(18) 네트워크 구축

네트워크(Network)

  • 2대 이상의 컴퓨터를 전화선이나 케이블 등으로 연결하여 자원을 공유하는 것
  • 다른 컴퓨터의 데이터, 프로그램, 주변 장치, 인터넷 등을 공유하기 위해 사용한다.
  • 네트워크 설치 구조는 장치들의 물리적 위치에 따라서 성형, 링형, 버스형, 계층형, 망형으로 나누어진다.
  • 네트워크는 사이트들이 분포되어 있는 지리적 범위에 따라 LANWAN으로 분류된다.

 

성형(Star, 중앙 집중형)

  • 중앙에 중앙 컴퓨터가 있고, 이를 중심으로 단말 장치들이 연결되는 중앙 집중식의 네트워크 구성 형태
  • 포인트 투 포인트(Point-to-Point) 방식으로 회선을 연결한다.
  • 단말 장치의 추가와 제거가 쉽다.
  • 하나의 단말 장치가 고장나더라도 다른 단말 장치에는 영향을 주지 않지만, 중앙 컴퓨터가 고장나면 전체 통신망의 기능이 정지된다.

 

링형(Ring, 루프형)

  • 컴퓨터와 단말 장치들을 서로 이웃하는 것끼리 연결시킨 포인트 투 포인트(Point-to-Point) 방식의 구성 형태
  • 단말 장치의 추가/제거 및 기밀 보호가 어렵다.
  • 각 단말 장치에서 전송 지연이 발생할 수 있다.
  • 중계기의 수가 많아진다.
  • 데이터는 단방향 또는 양방향으로 전송할 수 있다.

 

버스형(Bus)

  • 1개의 통신 회선에 여러 대의 단말 장치가 연결되어 있는 형태
  • 단말 장치의 추가와 제거가 용이하다.
  • 단말 장치가 고장나더라도 통신망 전체에 영향을 주지 않기 때문에 신뢰성을 높일 수 있다.
  • 기밀 보장이 어렵다.
  • 통신 회선의 길이에 제한이 있다.

 

계층형(Tree, 분산형)

  • 중앙 컴퓨터와 일정 지역의 단말 장치까지는 하나의 통신 회선으로 연결시키고, 이웃하는 단말 장치는 일정 지역 내에 설치된 중간 단말 장치로부터 다시 연결시키는 형태
  • 분산 처리 시스템을 구성하는 방식

 

망형(Mesh)

  • 모든 지점의 컴퓨터와 단말 장치를 서로 연결한 형태로, 노드의 연결성이 높다.
  • 많은 단말 자잋로부터 많은 양의 통신을 필요로 하는 경우에 유리하다.
  • 통신 회선의 총 경로가 가장 길다.
  • 통신 회선 장애 시, 다른 경로를 통하여 데이터를 전송할 수 있다.
  • 모든 노드를 망형으로 연결하려면 노드의 수n개 일 때, n(n-1)/2 회선이 필요하고, 노드당 n-1포트가 필요하다.
    • 예) 25개의 노드를 망형으로 연결하려고 할 때 필요한 회선의 수와 노드당 필요한 포트의 수는?
      • 회선 수 = n(n-1)/2 = 25(25-1)/2 = 600/2 = 300(개)
      • 포트 수 = n-1 = 24(개)

 

네트워크의 분류

분류 내용
근거리 통신망
(LAN; Local Area Network)
- 회사, 학교, 연구소 등에서 비교적 가까운 거리에 있는 컴퓨터, 프린터, 저장 장치 등과 같은 자원을 연결하여 구성함.
- 주로 자원 공유를 목적으로 사용함.
- 사이트 간의 거리가 짧아 데이터의 전송 속도가 빠르고, 에러 발생율이 낮음.
- 주로 버스형이나 링형 구조를 사용함.
광대역 통신망
(WAN; Wide Area Network)
- 국가와 국가 혹은 대륙과 대륙 등과 같이 멀리 떨어진 사이트들을 연결하여 구성함.
- 사이트 간의 거리가 멀기 때문에 통신 속도가 느리고, 에러 발생률이 높음.
- 일정한 지역에 있는 사이트들을 근거리 통신망으로 연결한 후 각 근거리 통신망을 연결하는 방식을 사용함.

 

LAN의 표준안

  • IEEE 802의 주요 표준 규격
표준 규격 내용
802.1 전체의 구성, OSI 참조 모델과의 관계, 통신망 관리 등에 관한 규약
802.2 논리 링크 제어(LLC) 계층에 관한 규약
802.3 CSMA/CD 방식의 매체 접근 제어 계층에 관한 규약
802.4 토큰 버스 방식의 매체 접근 제어 계층에 관한 규약
802.5 토큰 링 방식의 매체 접근 제어 계층에 관한 규약
802.6 도시형 통신망(MAN)에 관한 규약
802.9 종합 음성/데이터 네트워크에 관한 규약
802.11 무선 LAN에 관한 규약
  • 802.11의 버전
버전 내용
802.11
(초기 버전)
2.4 GHz 대역 전파와 CSMA/CA 기술을 사용해 최고 2Mbps 까지의 전송 속도를 지원함.
802.11a 5 GHz 대역 전파를 사용하며, OFDM 기술을 사용해 최고 5Mbps 까지의 전송 속도를 지원함.
802.11b 802.11 초기 버전의 개선안으로 등장하였으며, 초기 버전의 대역 전파와 기술을 사용해 최고 11 Mbps의 전송 속도로 기존에 비해 5배 이상 빠르게 개선되었음.
802.11e 802.11의 부가 기능 표준으로, QoS 기능이 지원되도록 하기 위해 매체 접근 제어(MAC) 계층에 해당하는 부분을 수정하였음.
802.11g 2.4 GHz 대역의 전파를 사용하지만, 5 GHz 대역의 전파를 사용하는 802.11a와 동일한 최고 54 Mbps 까지의 전송 속도를 지원함.
802.11n 2.4 GHz 대역과 5 GHz 대역을 사용하는 규격으로, 최고 600 Mbps 까지의 전송속도를 지원함.

 

NAT(Network Address Translation, 네트워크 주소 변환)

  • 1개의 정식 IP 주소에 대량의 가상 사설 IP 주소를 할당 및 연결하는 기능
  • 1개의 IP 주소를 사용해서 외부에 접속할 수 있는 노드는 어느 시점에서 1개로 제한되는 문제가 있지만, IP 마스커레이드(Masquerade)를 이용하여 해결할 수 있다.
    • IP 마스커레이드는 리눅스(Linux)의 NAT 기능으로, 리눅스 서버를 통해 다른 네트워크에 접속할 수 있도록 해준다.

 

 

(19) 스위치

스위치(Switch)의 분류

  • 스위치는 브리지와 같이 LAN과 LAN을 연결하여 훨 씬 더 큰 LAN을 만드는 장치이다.
  • 스위치는 OSI 7 계층의 Layer에 따라 L2, L3, L4, L7로 분류된다.
분류 내용
L2 스위치 - OSI 2계층에 속하는 장비
- 일반적으로 부르는 스위치는 L2 스위치를 의미함.
- MAC 주소를 기반으로 프레임을 전송함.
- 동일 네트워크 간의 연결만 가능함.
L3 스위치 - OSI 3계층에 속하는 장비
- L2 스위치라우터 기능이 추가된 것으로, IP 주소를 기반으로 패킷을 전송함.
- 서로 다른 네트워크 간의 연결이 가능함.
L4 스위치 - OSI 4계층에 속하는 장비
- 로드 밸런서가 달린 L3 스위치로, IP 주소TCP/UDP를 기반으로 사용자들의 요구를 서버의 부하가 적은 곳에 배분하는 로드 밸런싱 기능을 제공함.
L7 스위치 - OSI 7계층에 속하는 장비
- IP 주소, TCP/UDP 포트 정보에 패킷 내용까지 참조하여 세밀하게 로드 밸런싱함.

*로드 밸런서(Load Balancer) : 특정 서버에만 부하가 발생하지 않도록 트래픽을 분산시켜주는 장비

*상위 레이어의 스위치는 하위 레이어 스위치의 기능들을 포함한다.

 

스위칭(Switch) 방식

방식 내용
Store and Forwarding 데이터를 모두 받은 후 스위칭하는 방식
Cut-through 데이터의 목적지 주소만을 확인한 후 바로 스위칭하는 방식
Fragment Free Store and Forwarding Cut-through 방식의 장점을 결합한 방식

 

백본 스위치(Backbone Switch)

  • 네트워크를 연결할 때 중추적 역할을 하는 네트워크를 백본(Backbone)이라 하고, 백본에서 스위칭 역할을 하는 장비를 백본 스위치라고 한다.
  • 모든 패킷이 지나가는 네트워크의 중심에 배치한다.
  • 대규모 트래픽을 처리하려면 고성능의 백본 스위치를 사용해야 한다.
  • 주로 L3 스위치백본 스위치의 역할을 한다.

 

Hierarchical 3 Layer 모델

  • 네트워크 구성 시 사용되는 모델의 한 종류로, 액세스 계층, 디스트리뷰션 계층, 코어 계층으로 나뉜다.
계층 내용
액세스 계층
(Access Layer)
- 사용자가 네트워크에 접속할 때 최초로 연결되는 지점으로, 사용자들로부터 오는 통신을 집약해서 디스트리뷰션 계층으로 전송함.
- 액세스 계층에 배치되는 장비는 성능이 낮아도 되지만, 포트 수는 사용자수 만큼 있어야 함.
- L2 스위치를 사용함.
디스트리뷰션 계층
(Distribution Layer)
- 액세스 계층의 장치들이 연결되는 지점으로, 액세스 계층에서 오는 통신을 집약해서 코어 계층으로 전송함.
- LAN 간에 라우팅 기능을 수행함.
- 라우터, L3 스위치를 사용함.
코어 계층
(Core Layer)
- 디스트리뷰션 계층에서 오는 통신을 집약해 인터넷에 연결하는 계층으로, 백본 계층이라고도 함.
- 전자 우편, 인터넷 접속, 화상 회의 등의 기능을 수행함.
- 백본 스위치를 사용함.

 

 

(20) 경로 제어 / 트래픽 제어

경로 제어(Routing)

  • 송수신 측 간의 전송 경로 중에서 최적 패킷 교환 경로를 결정하는 기능
  • 경로 제어표(Routing Table)를 참조해서 이루어지며, 라우터에 의해 수행된다.
  • 경로 제어 요소
    • 성능 기준
    • 경로의 결정 시간과 장소
    • 정보 발생지
    • 경로 정보의 갱신 시간

 

경로 제어 프로토콜(Routing Protocol)

프로토콜 내용
IGP
(Interior Gateway Protocol,
내부 게이트웨이 프로토콜)
- 하나의 자율 시스템(AS) 내의 라우팅에 사용되는 프로토콜
- RIP(Routing Information Protocol)
▶ 현재 가장 널리 사용되는 라우팅 프로토콜로, 거리 벡터 라우팅 프로토콜이라고도 불리며, 최단 경로 탐색Bellman-Ford 알고리즘이 사용됨.
▶ 소규모 동종의 네트워크(자율 시스템, AS) 내에서 효율적인 방법
최대 홉(Hop) 수를 15로 제한하므로, 15 이상의 경우는 도달할 수 없는 네트워크를 의미하는데 이것은 대규모 네트워크에서는 RIP를 사용할 수 없음을 의미함.
▶ 라우팅 정보를 30초마다 네트워크 내의 모든 라우터에 알리며, 180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 이상 상태로 간주함.
- OSPF(Open Shortest Path First protocol)
RIP의 단점을 해결하여 새로운 기능을 지원하는 인터넷 프로토콜로, 대규모 네트워크에서 많이 사용됨.
▶ 인터넷 망에서 이용자가 최단 경로를 선정할 수 있도록 라우팅 정보에 노드 간의 거리 정보, 링크 상태 정보를 실시간으로 반영하여 최단 경로로 라우팅을 지원함.
▶ 최단 경로 탐색에 다익스트라(Dijkstra) 알고리즘을 사용함.
▶ 라우팅 정보에 변화가 생길 경우, 변화된 정보만 네트워크 내의 모든 라우터에 알림.
▶ 하나의 자율 시스템(AS)에서 동작하면서 내부 라우팅 프로토콜의 그룹에 도달함.
EGP
(Exterior Gateway Protocol,
외부 게이트웨이 프로토콜)
자율 시스템(AS) 간의 라우팅, 즉 게이트웨이 간의 라우팅에 사용되는 프로토콜
BGP
(Border Gateway Protocol)
- 자율 시스템(AS) 간의 라우팅 프로토콜로, EGP의 단점을 보완하기 위해 만들어졌음.
- 초기에 BGP 라우터들이 연결될 때에는 전체 경로 제어표(라우팅 테이블)를 교환하고, 이후에는 변화된 정보만을 교환함.

*최적 패킷 교환 경로는 어느 한 경로에 데이터의 양이 집중되는 것을 피하면서, 최저의 비용으로 최단 시간에 송신할 수 있는 경로를 의미한다.

*경로 제어표(Routing Table)는 일반적으로 라우팅 테이블이라고 하며, 다음 홉 주소, 메트릭(Metric), 목적지(수신지) 주소 가 저장된다.

*자율 시스템(AS; Autonomous System)은 하나의 도메인에 속하는 라우터들의 집합을 의미한다. 하나의 자율 시스템에 속한다는 것은 하나의 도메인에 속한다는 것과 같은 의미이다.

*홉(Hop)이란 데이터가 목적지까지 전달되는 과정에서 거치는 네트워크의 수를 의미한다.

 

트래픽 제어(Traffic Control)

  • 네트워크의 보호, 성능 유지, 네트워크 자원의 효율적인 이용을 위해 전송되는 패킷의 흐름 또는 그 양을 조절하는 기능
  • 종류
    • 흐름 제어
    • 폭주(혼합) 제어
    • 교착 상태 방지

 

흐름 제어(Flow Control)

  • 네트워크 내의 원할한 흐름을 위해 송수신 측 사이에 전송되는 패킷의 양이나 속도를 규제하는 기능
    • 수신 측에서는 수신된 데이터를 버퍼에 저장한 후 순차적으로 처리해서 상위 계층으로 전달하는데, 송신 측의 속도가 수신 측보다 빠르면 수신된 데이터양이 제한된 버퍼를 초과할 수 있으며, 이로 인해 이후 수신 데이터가 손실될 수 있다.
    • 이러한 상황은 송신 측수신 측의 전송 속도를 적절히 조절하여 예방할 수 있는데, 이것을 흐름 제어라고 한다.
기법 내용
정지-대기
(Stop-and-Wait)
- 수신 측의 확인 신호(ACK)를 받은 후에 다음 패킷을 전송하는 방식
- 한 번에 하나의 패킷만을 전송할 수 있음.
슬라이딩 윈도우
(Sliding Window)
- 확인 신호, 즉 수신 통지를 이용하여 송신 데이터의 양을 조절하는 방식
- 수신 측의 확인 신호를 받지 않더라도 미리 정해진 패킷의 수만큼 연속적으로 전송하는 방식으로, 한 번에 여러 개의 패킷을 전송할 수 있어 전송 효율이 좋음.
- 송신 측은 수신 측으로부터 확인 신호(ACK) 없이도 보낼 수 있는 패킷의 최대치를 미리 약속받는데, 이 패킷의 최대치가 윈도우 크기(Window Size)를 의미함.
- 윈도우 크기(Window Size)는 상황에 따라 변함. 즉, 수신 측으로부터 이전에 송신한 패킷에 대한 긍정 수신 응답(ACK)이 전달된 경우 윈도우 크기는 증가하고, 수신 측으로부터 이전에 송신한 패킷에 대한 부정 수신 응답(NAK)이 전달된 경우 윈도우 크기는 감소함.

 

폭주 제어(Congestion Control)

  • 흐름 제어(Flow Control)가 송수신 측 사이의 패킷 수를 제어하는 기능이라면, 폭주 제어는 네트워크 내의 패킷 수를 조절하여 네트워크의 오버플로(Overflow)를 방지하는 기능을 한다.
    • 송신 측에서 전송한 데이터는 수신 측에 도착할 때까지 여러 개의 라우터를 거치는데, 데이터의 양이 라우터가 처리할 수 있는 양을 초과하면 초과된 데이터는 라우터가 처리하지 못한다.
    • 송신 측에서는 라우터가 처리하지 못한 데이터를 손실 데이터로 간주하고 계속 재전송하게 되므로 네트워크는 더욱 더 혼잡하게 된다. 이러한 상황은 송신 측의 전송 속도를 적절히 조절하여 예방할 수 있는데 이것을 폭주 제어라고 한다.
기법 내용
느린 시작
(Slow Start)
- 윈도우의 크기를 1, 2, 4, 8, ... 과 같이 2배씩 지수적으로 증가시켜 초기에는 느리지만 갈수록 빨라짐.
- 전송 데이터의 크기가 임계값에 도달하면 혼잡 회피 단계로 넘어감.
혼잡 회피
(Congestion Avoidance)
느린 시작(Slow Start)의 지수적 증가가 임계값에 도달하면 혼잡으로 간주하고 회피를 위해 윈도우의 크기를 1씩 선형적으로 증가시켜 혼잡을 예방하는 방식

 

 

(21) SW 관련 신기술

SW 관련 신기

용어 설명
인공지능
(AI; Artificial Intelligence)
- 인간의 두뇌와 같이 컴퓨터 스스로 추론, 학습, 판단 등 인간지능적인 작업을 수행하는 시스템
- 인공지능의 응용 분야 : 패턴 인식, 전문가 시스템, 로봇 공학 등
뉴럴링크
(Neuralink)
- 미국의 전기자동차 회사 테슬라(Tesla)의 CEO 일론 머스크(Elon Musk)가 사람의 뇌와 컴퓨터를 결합하는 기술을 개발하기 위해 2017년 3월 설립한 회사
- 뉴럴링크가 개발하고 있는 기술은 '신경 레이스(Neural Lace)'로, 작은 전극을 뇌에 이식함으로써 생각을 업로드하고 다운로드하는 것을 목표로 삼고 있음.
딥 러닝
(Deep Learning)
인간의 두뇌를 모델로 만들어진 인공 신경망(ANN; Artificial Neural Network)을 기반으로 하는 기계 학습 기술
전문가 시스템
(Expert System)
의료 진단 등과 같은 특정 분야의 전문가가 수행하는 고도의 업무를 지원하기 위한 컴퓨터 응용 프로그램
증강현실
(AR; Augmented Reality)
실제 촬영한 화면에 가상의 정보를 부가하여 보여주는 기술로, 혼합 현실(MR; Mixed Reality)이라고도 부름.
블록체인
(Blockchain)
P2P 네트워크를 이용하여 온라인 금융 거래 정보를 온라인 네트워크 참여자(Peer)의 디지털 장비에 분산 저장하는 기술
분산 원장 기술
(DLT; Distributed Ledger Technology)
중앙 관리자나 중앙 데이터 저장소가 존재하지 않고, P2P 망내의 참여자들에게 모든 거래 목록이 분산 저장되어 거래가 발생할 때마다 지속적으로 갱신되는 디지털 원장
해시
(Hash)
임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
양자 암호키 분해
(QKD; Quantum Key Distribution)
- 양자 통신을 위해 비밀키를 분배하여 관리하는 기술
- 두 시스템이 암호 알고리즘 동작을 위한 비밀키를 안전하게 공유하기 위해 양자 암호키 분배 시스템을 설치하여 운용하는 방식으로 활용됨.
프라이버시 강화 기술
(PET; Privacy Enhancing Technology)
- 개인정보 침해 위협을 관리하기 위한 핵심 기술
- 암호화, 익명화 등 개인정보를 보호하는 기술에서 사용자가 직접 개인정보를 통제하기 위한 기술까지 다양한 사용자 프라이버시 보호 기술을 통칭함.
공통 평가 기준
(CC; Common Criteria)
- 1996년 6월 8일 ISO 15408 표준으로 채택된 정보 보호 제품 평가 기준
- 정보화 순기능 역할을 보장하기 위해 정보화 제품의 정보 보호 기능과 이에 대한 사용 환경 등급을 정한 기준
개인정보 영향평가 제도
(PIA; Privacy Impact Assessment)
개인 정보를 활용하는 새로운 정보시스템의 도입 및 기존 정보시스템의 중요한 변경 시 시스템의 구축·운영이 기업의 고객은 물론 국민의 사생활에 미칠 영향에 대해 미리 조사·분석·평가하는 제도
그레이웨어
(Grayware)
소프트웨어를 제공하는 입장에서는 악의적이지 않은 유용한 소프트웨어라고 주장할 수 있지만, 사용자 입장에서는 유용할 수도 있고 악의적일 수도 있는 애드웨어, 트랙웨어, 기타 악성 코드악성 공유웨어를 말함.
매시업
(Meshup)
웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술. 즉 다수의 정보원이 제공하는 콘텐츠를 조합하여 하나의 서비스로 제공하는 웹 사이트 또는 애플리케이션을 말함.
리치 인터넷 애플리케이션
(RIA; Rich Internet Application)
플래시 애니메이션 기술과 웹 서버 애플리케이션 기술을 통합하여 기존 HTML 보다 역동적이고 인터랙티브한 웹 페이지를 제공하는 신개념의 플래시 웹 페이지 제작 기술
시멘틱 웹
(Semantic Web)
컴퓨터가 사람을 대신하여 정보를 읽고 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록 이해하기 쉬운 의미를 가진 차세대 지능형 웹 
증발품
(Vaporware)
판매 계획 또는 배포 계획은 발표되었으나, 실제로 고객에게 판매되거나 배포되지 않고 있는 소프트웨어
오픈 그리드 서비스 아키텍처
(OGSA; Open Grid Service Architecture)
애플리케이션 공유를 위한 웹 서비스를 그리드 상에서 제공하기 위해 만든 개방형 표준
서비스 지향 아키텍처
(SOA; Service Oriented Architecture)
- 기업의 소프트웨엉 인프라인 정보 시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보 기술 아키텍처
- SOA 기반 애플리케이션 구성 계층
▶ 표현(Presentation) 계층
▶ 업무 프로세스(Biz-Process) 계층
▶ 서비스 중간(Service Intermediary) 계층
▶ 애플리케이션(Application) 계층
▶ 데이터 저장(Persistency) 계층
서비스형 소프트웨어
(SaaS; Software as a Service)
소프트웨어의 여러 기능 중에서 사용자가 필요로 하는 서비스만 이용할 수 있도록 한 소프트웨어
소프트웨어 애스크로
(Software Escrow)
소프트웨어 개발자의 지식재산권을 보호하고, 사용자는 저렴한 비용으로 소프트웨어를 안정적으로 사용 및 유지보수 할 수 있도록 소스 프로그램과 기술 정보 등을 제 3의 기관에 보관하는 것
복잡 이벤트 처리
(CEP; Complex Event Processing)
실시간으로 발생하는 많은 사건들 중 의미가 있는 것만을 추출할 수 있도록 사건 발생 조건을 정의하는 데이터 처리 방법
디지털 트윈
(Digital Twin)
- 현실 속의 사물을 소프트웨어로 가상화한 모델
- 자동차, 항공, 에너지, 국방, 헬스케어 등 여러 분야에서 주목 받고 있음.
- 실제 물리적인 자산을 소프트웨어로 가상화함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있음.
- 자산 최적화, 돌발 사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있음.

 

 

(22) 소프트웨어 개발 보안

소프트웨어 개발 보안

  • 소프트웨어 개발 과정에서 발생할 수 있는 보안 취약점을 최소화하여 보안 위협으로부터 안전한 소프트웨어를 개발하기 위한 일련의 보안 활동
  • 소프트웨어 개발 보안은 데이터의 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)을 유지하는 것을 목표로 한다.

 

소프트웨어 개발 보안 관련 기관

활동 주체 역할
행정안전부 - 소프트웨어 개발 보안 정책을 총괄함.
- 소프트웨어 개발 보안 관련 법규, 지침, 제도를 정비함.
- 소프트웨어 보안 약점을 진단하는 사람의 양성 및 관련 업무를 수행함.
한국인터넷진흥원(KISA) - 소프트웨어 개발 보안 정책 및 가이드를 개발함.
- 소프트웨어 개발 보안에 대한 기술을 지원하고, 교육 과정 및 자격 제도를 운영함.
발주 기관 - 소프트웨어 개발 보안의 계획을 수립
- 소프트웨어 개발 보안 사업자 및 감리법인을 선정함.
- 소프트웨어 개발 보안의 준수 여부를 점검함.
사업자 - 소프트웨어 개발 보안 관련 기술 수준 및 적응 계획을 명시함.
- 소프트웨어 개발 보안 관련 인력을 대상으로 교육을 실시함.
- 소프트웨어 개발 보안 가이드를 참조하여 개발함.
- 자체적으로 보안 약점을 진단하고 제거함.
- 소프트웨어 보안 약점과 관련된 사정 요구사항을 이해함.
감리법인 - 감리 계획을 수립하고 협의함.
- 소프트웨어 보안 약점의 제거 여부 및 조치 결과를 확인함.

 

소프트웨어 개발 직무별 보안 활동

  • 안전한 소프트웨어 개발을 위해서는 프로젝트 관련자들이 보안 활동을 수행할 수 있도록 직무(Role)별로 수행해야 할 보안 활동을 정의해야 한다.
직무 보안 활동
프로젝트 관리자
(Project Manager)
- 응용 프로그램에 대한 보안 전략을 조직 구성원들에게 전달함.
- 조직 구성원들에게 응용 프로그램 보안 영향을 이해시킴.
요구사항 분석가
(Requirement Specifier)
- 아키텍트가 고려해야 할 보안 관련 비즈니스 요구사항을 설명함.
- 프로젝트 팀이 고려해야 할 구조 정의 및 해당 구조에 존재하는 자원에 대한 보안 요구사항을 정의함.
아키텍트
(Architect)
- 보안 오류가 발생하지 않도록 보안 기술 문제를 충분히 이해함.
- 시스템에 사용되는 모든 리소스 정의 및 각 리소스별로 적절한 보안 요구사항을 정의함.
설계자
(Designer)
- 특정 기술에 대해 보안 요구사항의 만족성 여부를 확인함.
- 문제 발생 시 최선의 문제 해결 방법을 결정함.
구현 개발자
(Implementer)
구조화된 소프트웨어 개발 환경에서 프로그램을 원할히 구현할 수 있도록 시큐어 코딩 표준을 준수하여 개발함.
테스트 분석가
(Test Analyst)
소프트웨어 개발 요구사항과 구현 결과를 반복적으로 확인함.
보안 감사자
(Security Auditor)
- 소프트웨어 개발 프로젝트의 현재 상태의 보안을 보장함.
- 요구사항 검토 시 요구사항의 적합성 완전성을 확인함.

 

 

(23) 소프트웨어 개발 보안 활동 관련 법령 및 규정

개인정보 보호 관련 법령

  • 개인정보 보호법 : 개인정보의 처리 및 보호에 관한 사항을 정함으로써 개인의 자유와 권리를 보호함.
  • 정보통신망 이용촉진 및 정보보호 등에 관한 법률 : 정보통신망의 이용 촉진 및 정보 통신 서비스를 이용하는 이용자들의 개인정보를 보호함.
  • 신용정보의 이용 및 보호에 관한 법률 : 개인 신용정보의 효율적 이용과 체계적인 관리를 통해 정보의 오남용을 방지함.
  • 위치정보의 보호 및 이용 등에 관한 법률 : 개인 정보의 안전한 이용 환경을 조성하여 정보의 유출이나 오남용을 방지함.
  • 표준 개인정보 보호 지침 : 개인정보의 처리에 관한 기준, 개인정보 침해의 유형 및 예방조치 등에 관한 세부사항을 규정함.
  • 개인정보의 안전성 확보 조치 기준 : 개인정보 처리자가 개인정보를 처리하는 데 있어 개인정보가 분실, 도난, 유출, 위조, 변조, 훼손되지 않도록 안정성 확보에 필요한 기술적, 관리적, 물리적 안전 조치에 관한 최소한의 기준을 규정함.
  • 개인정보 영향평가에 관한 고시 : 개인정보 영향평가를 위한 평가기관의 지정, 영향평가의 절차 등에 관한 세부기준을 규정함.

 

IT 기술 관련 규정

  • RFID 프라이버시 보호 가이드라인 : RFID 시스템의 이용자들의 프라이버시를 보호하고 안전한 RFID 이용 환경을 조성하기 위한 가이드라인
  • 위치정보의 보호 및 이용 등에 관한 법률 : 개인위치정보의 유출 및 오남용을 방지하기 위한 법률
  • 위치정보의 관리적, 기술적 보호조치 권고 해설서 : 개인 위치정보의 누출, 변조, 훼손 등을 방지하기 위해 위치정보 사업자 및 위치기반 서비스 사업자가 준수해야 하는 관리적, 기술적 보호조치의 구체적인 기준
  • 바이오정보 보호 가이드라인 : 개인 바이오정보의 보호와 안전한 활용을 위한 원칙 및 조치사항
  • 뉴미디어 서비스 개인정보 보호 가이드라인 : 뉴미디어 서비스 이용 및 제공 시 개인 정보의 침해사고를 예방하기 위한 준수사항

 

 

(24) HW 관련 기술

HW 관련 기술

용어 설명
고가용성
(HA; High Availability)
긴 시간동안 안정적인 서비스 운영을 위해 장애 발생 시 즉시 다른 시스템으로 대체 가능한 환경을 구축하는 메커니즘
3D Pinting
(Three Dimension Printing)
- 대상을 평면에 출력하는 것이 아니라 손으로 만질 수 있는 실체 물체로 만들어내는 것
- 아주 얇은 두께로 한층한층 쌓아 하나의 형태를 만들어 내는 기술을 이용함.
4D Printing
(Four Dimension Printing)
특정 기능이나 환경 조건이 갖추어지면 스스로 형태를 변화시키거나 제조되는 자가 조립(Self-Assembly) 기술이 적용된 제품을 3D Printing 하는 기술
RAID
(Redundant Array of Inexpensive Disk,
Redundant Array of Independent Disk)
여러 개의 하드디스크로 디스크 배열을 구성하여 파일을 구성하고 있는 데이터 블록들을 서로 다른 디스크들에 분산 저장할 경우, 그 블록들을 여러 디스크에서 동시에 읽거나 쓸 수 있으므로, 디스크의 속도가 매우 향상되는데, 이 기술을 RAID라고 함.
4K 해상도 - 차세대 고화질 모니터의 해상도를 지칭하는 용어
- 가로 픽셀 수가 3840이고, 세로 픽셀 수가 2160인 영상의 해상도를 말하는데, 이는 Full HDTV(1920*1080)의 가로·세로 2배, 총 4배에 해당하는 초고화질 영상임.
앤 스크린
(N-Screen)
N개의 서로 다른 단말기에서 동일한 컨텐츠를 자유롭게 이용할 수 있는 서비스
컴패니언 스크린
(Companion Screen)
- TV 방송 시청 시 방송 내용을 공유하여 추가적인 기능을 수행할 수 있는 스마트폰, 태블릿PC 등을 의미함.
- 앤 스크린(N Screen)의 한 종류로, 세컨드 스크린(Second Screen)이라고도 불림.
신 클라이언트 PC
(Thin Client PC)
- 하드디스크나 주변 장치 없이 기본적인 메모리만 갖추고 서버와 네트워크로 운용되는 개인용 컴퓨터
- 서버 기반 컴퓨팅과 관계가 깊음.
패블릿
(Phablet)
폰(Phone)태블릿(Tablet)의 합성어로, 태블릿 기능을 포함한 5인치 이상의 대화면 스마트폰
C형 유에스비
(Universal Serial Bus Type-C,
USB Type-C, USB-C)
- 범용 인터페이스 규격인 USB(Universal Serial Bus)의 표준 중 하나
- 기존 A형에 비하여 크기가 작고, 24핀으로 위아래의 구분이 없어 어느 방향으로든 연결이 가능함.
멤스
(MEMS; Micro-Electro Mechanical Systems)
초정밀 반도체 제조 기술을 바탕으로 센서, 액추에이터(Actuator) 등 기계 구조를 다양한 기술로 미세 가공하여 전기기계적 동작을 할 수 있도록 한 초미세 장치
트러스트존 기술
(TrustZone Technology)
하나의 프로세서(Processor) 내에 일반 애플리케이션을 처리하는 일반 구역(Normal World)과 보안이 필요한 애플리케이션을 처리하는 보안 구역(Secure World)으로 분할하여 관리하는 하드웨어 기반의 보안 기술
엠디스크
(M-DISC, Millennial DISC)
- 한 번의 기록만으로 자료를 영구 보관할 수 있는 광 저장장치
- 디스크 표면의 무기물층에 레이저를 이용해 자료를 조각해서 기록함.
- 시간이 지나도 변하지 않는 금속 활자처럼 빛, 열, 습기 등의 외부 요인에 영향을 받지 않음.
멤리스터
(Memristor)
 - 메모리(Memory)레지스터(Register)의 합성어로, 전류의 방향과 양 등 기존의 경험을 모두 기억하는 특별한 소자
- 레지스터(Register), 커패시터(Capacitor), 인덕터(Inductor)에 이어 네 번째 전자회로 구성 요소라 불리고 있음.

 

 

(25) Secure OS

Secure OS

  • 기존의 운영체제(OS)에 내재된 보안 취약점을 해소하기 위해 보안 기능을 갖춘 커널을 이식하여 외부의 침입으로부터 시스템 자원을 보호하는 운영체제
  • 보안 커널은 보안 기능을 갖춘 커널을 의미하며, TCB를 기반으로 참조 모니터의 개념을 구현하고 집행한다.
    • TCB(Trusted Computing Base) : 운영체제(OS), 하드웨어, 소프트웨어, 펌웨어 등 컴퓨터 시스템 내의 모든 장치가 보안 정책을 따르도록 설계한 보호 메커니즘
  • 보호 방법을 구현하기 복잡한 것부터 차례로 분류하면 다음과 같다.
    • 암호적 분리(Cryptogaphic Separation) : 내부 정보를 암호화 하는 방법
    • 논리적 분리(Logical Separation) : 프로세스의 논리적 구역을 지정하여 구역을 벗어나는 행위를 제한하는 방법
    • 시간적 분리(Temporal Separation) : 동일 시간에 하나의 프로세스만 수행되도록 하여 동시 실행으로 발생하는 보안 취약점을 제거하는 방법
    • 물리적 분리(Physical Separation) : 사용자별로 특정 장비만 사용하도록 제한하는 방법
  • Secure OS의 보안 기능
    • 식별 및 인증
    • 임의적/강제적 접근 통제
    • 객체 재사용 보호
    • 완전한 조정
    • 신뢰 경로
    • 감사 및 감사기록 축소 등

 

참조 모니터(Reference Monitor)

  • 보호 대상 객체에 대한 접근통제를 수행하는 추상 머신이며, 이것을 실제로 구현한 것이 보안 커널이다.
  • 보안 커널 데이터베이스(SKDB; Security Kernel Database)를 참조하여 객체에 대한 접근 허가 여부를 결정한다.
  • 참조 모니터와 보안 커널의 특징
격리성(Isolation) 부정 조작이 불가능해야 함.
검증가능성(Verifiability) 적절히 구현되었다는 것을 확인할 수 있어야 함.
완전성(Completeness) 우회가 불가능해야 함.

 

 

(26) DB 관련 신기술

DB 관련 신기술

용어 설명
빅데이터
(Big Data)
- 기존의 관리 방법이나 분석 체계로는 처리하기 어려운 막대한 양의 정형 또는 비정형 데이터 집합
- 빅데이터가 주목하고 있는 이유는 기업이나 정부, 포털 등이 빅데이터를 효과적으로 분석함으로써 미래를 예측해 최적의 대응 방안을 찾고, 이를 수익으로 연결하여 새로운 가치를 창출하기 때문임.
브로드 데이터
(Broad Data)
다양한 채널에서 소비자와 상호 작용을 통해 생성된 것으로, 기업 마케팅에 있어 효율적이고 다양한 데이터이며, 이전에 사용하지 않거나 알지 못했던 새로운 데이터나 기존 데이터에 새로운 가치가 더해진 데이터
메타 데이터
(Meta Data)
- 일련의 데이터를 정의하고 설명해 주는 데이터
- 컴퓨터에서는 데이터 사전의 내용, 스키마 등을 의미함.
- HTML 문서에서는 메타 태그 내의 내용이 메타 데이터임.
디지털 아카이빙
(Digital Archiving)
- 디지털 정보 자원을 장기적으로 보존하기 위한 작업
- 아날로그 콘텐츠는 디지털로 변환한 후 압축해서 저장하고, 디지털 콘텐츠도 체계적으로 분류하고 메타 데이터를 만들어 DB화하는 작업임.
하둡
(Hadoop)
- 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼
- 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발 된 자바 소프트웨어 프레임워크
- 구글, 야후 등에 적용되고 있음.
맵리듀스
(MapReduce)
- 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델
- 흩어져 있는 데이터를 연관성 있는 데이터 분류로 묶는 Map 작업을 수행한 후, 중복 데이터를 제거하고 원하는 데이터를 추출하는 Reduce 작업을 수행함.
- Google에 의해 고안되었으며, 대표적인 대용량 데이터 처리를 위한 병렬 처리 기법으로 많이 사용되고 있음.
타조
(Tajo)
오픈 소스 기반 분산 컴퓨팅 플랫폼인 아파치 하둡(Apache Hadoop) 기반의 분산 데이터 웨어하우스 프로젝트
데이터 다이터트
(Data Diet)
데이터를 삭제하는 것이 아니라 압축하고, 중복된 정보는 중복을 배제하고, 새로운 기준에 따라 나누어 작업하는 방법
데이터 마이닝
(Data Mining)
대량의 데이터를 분석하여 데이터에 내재된 변수 사이의 상호 관계를 규명하여 일정한 패턴을 찾아내는 기법
OLAP
(Online Analytical Processing)
- 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사 결정에 활용하는 방식
- OLAP 연산 : Roll-up, Drill-down, Drill-through, Drill-across, Pivoting, Slicing, Dicing

*데이터 웨어하우스(Data Warehouse) : 정보(Data)창고(Warehouse)의 합성어로, 기업의 의사 결정 과정에 효과적으로 사용될 수 있도록 여러 시스템에 분산되어 있는 데이터를 주제별로 통합·축적해 놓은 데이터베이스

 

 

(27) 회복 / 병행 제어

회복(Recovery)

  • 트랜잭션들을 수행하는 도중 장애가 발생하여 데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업
  • 회복 기법의 종류
회복 기법 설명
연기 갱신 기법
(Deferred Update)
- 트랜잭션이 성공적으로 완료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 방법
- 트랜잭션이 수행되는 동안 갱신된 내용은 일단 로그(Log)에 보관됨.
- 트랜잭션의 부분 완료 시점에 로그에 보관한 갱신 내용을 실제 데이터베이스에 기록함.
- Redo 작업만 가능함.
즉각 갱신 기법
(Immediate Update)
- 트랜잭션이 데이터를 갱신하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법
- 장애가 발생하여 회복 작업 할 경우를 대비하여 갱신된 내용들은 로그에 보관시킴.
- RedoUndo 모두 사용 가능함.
그림자 페이지 대체 기법
(Shadow Paging)
갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여 각 페이지마다 복사본인 그림자 페이지를 별도 보관해 놓고, 실제 페이지를 대상으로 갱신 작업을 수행하다가 장애가 발생하여 트랜잭션 작업을 Rollback 시킬 때는 갱신 이후의 실제 페이지 부분을 그림자 페이지로 대체하여 회복시키는 기법
검사점 기법
(Check Point)
트랜잭션 실행 중, 특정 단계에서 재실행할 수 있도록 갱신 내용이나 시스템에 대한 상황 등에 관한 정보와 함께 검사점을 로그에 보관해 두고, 장애 발생 시 트랜잭션 전체를 철회하지 않고 검사점부터 회복 작업을 수행하여 회복 시간을 절약하도록 하는 기법

 

재시도(Redo)

  • 덤프로그를 이용하여 가장 최근의 정상적인 데이터베이스로 회복시킨 후, 트랜잭션을 재실행 시키는 것
    • 덤프(Dump) : 주기적으로 데이터베이스 전체를 복사해 두는 것
    • 로그(Log) : 갱신되기 전후의 내용을 기록하는 별도의 파일로, 저널(Journal)이라고도 함.

 

병행 제어(Concurrency Control)

  • 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 것
    • 다중 프로그래밍의 이점
      • 프로세서의 이용률 증가
      • 전체 트랜잭션의 작업 처리율 향상
  • 병행 제어 없이 트랜잭션들이 데이터베이스에 동시에 접근하도록 허용할 경우, 갱신 분실, 비완료 의존성, 모순성, 연쇄 복귀 등의 문제가 발생한다.
    • 갱신 분실(Lost Update) : 2개 이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상
    • 비완료 의존성(Uncommitted Dependency) : 하나의 트랜잭션 수행이 실패한 후, 회복되기 전에 다른 트랜잭션이 실패한 갱신 결과를 참조하는 현상
    • 연쇄 복귀(Cascading Rollback) : 병행 수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 Rollback 하는 경우, 다른 트랜잭션도 함께 Rollback 되는 현상
  • 병행 제어 기법의 종류
기법 설명
로킹(Locking) - 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스할 수 있도록 하는 기법
- 주요 데이터의 액세스를 상호 배타적으로 함.
타임 스탬프 순서
(Time Stamp Ordering)
- 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 하기 전에 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
- 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법
최적 병행 수행
(검증 기법, 확인 기법,
낙관적 기법)
병행 수행하고자 하는 대부분의 트랜잭션이 판독 전용(Read Only) 트랜잭션일 경우, 트랜잭션 간의 충돌률이 매우 낮아서 병행 제어 기법을 사용하지 않고 실행되어도 이 중의 많은 트랜잭션은 시스템 상태를 일관성 있게 유지한다는 점을 이용한 기법
다중 버전 기법 - 타임 스탬프의 개념을 이용하는 기법
- 다중 버전 타임 스탬프 기법이라고도 함.
- 타임 스탬프 기법은 트랜잭션 및 데이터들이 이용될 때의 시간을 시간표로 관리하지만, 다중 버전 기법은 갱신될 때 마다 버전을 부여하여 관리함.

 

로킹 단위(Locking Granularity)

  • 병행 제어에서 한꺼번에 로킹할 수 있는 객체의 크기
  • 데이터베이스, 파일, 레코드, 필드 등이 로킹 단위가 될 수 있다.
  • 로킹 단위가 크면, 로크 수가 작아 관리하기 쉽지만, 병행성 수준은 낮아진다.
  • 로킹 단위가 작으면, 로크 수가 많아 관리하기 복잡해 오버헤드가 증가하지만, 병행성 수준이 높아진다.
    • 병행성 수준
      • 병행성 수준이 낮다는 것은 데이터베이스 공유도가 감소한다는 의미이다.
      • 병행성 수준이 높다는 것은 데이터베이스 공유도가 증가한다는 의미이다.

 

 

(28) 교착 상태

교착 상태(Dead Lock)

  • 상호 배제에 의해 나타나는 문제점
  • 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상

 

교착 상태 발생의 필요 충분 조건

  • 교착 상태가 발생하기 위해서는 다음의 4가지 조건이 모두 충족되어야 한다.
    • 이 4가지 조건 중 하나라도 충족되지 않으면, 교착 상태가 발생하지 않는다.
기법 설명
상호 배제
(Mutual Exclusion)
한 번에 한 개의 프로세스만이 공유 자원을 사용할 수 있어야 함.
점유와 대기
(Hold and Wait)
최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함.
비선점
(Non-preemption)
다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함.
환형 대기
(Circular Wait)
공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어, 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함.

 

교착 상태의 해결 방법

기법 설명
예방 기법
(Prevention)
- 교착 상태가 발생하지 않도록 사전에 시스템을 제어하는 방법
- 교착 상태 발생의 4가지 조건 중에서 어느 하나를 제거함으로써 수행됨.
- 자원의 낭비가 가장 심한 기법
회피 기법
(Avoidance)
- 교착 상태가 발생할 가능성을 배제하지 않고, 교착 상태가 발생하면 적절히 피해나가는 방법
- 주로 은행원 알고리즘(Banker's Algorithm)이 사용됨.
- 은행원 알고리즘(Banker's Algorithm) : E. J. Dijkstra가 제안한 것으로, 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는 데서 유래한 기법
발견 기법
(Detection)
- 시스템에 교착 상태가 발생했는지 점검하여 교착 상태에 있는 프로세스와 자원을 발견하는 것
- 교착 상태 발견 알고리즘자원 할당 그래프 등을 사용할 수 있음.
회복 기법
(Recovery) 
교착 상태를 일으킨 프로세스를 종료하거나 교착 상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것

 

 

(29) 데이터 표준화

데이터 표준화

  • 시스템을 구성하는 데이터 요소의 명칭, 정의, 형식, 규칙에 대한 원칙을 수립하고 적용하는 것
  • 데이터 표준화 작업을 통해 사용자가 데이터를 정확히 이해하고 활용할 수 있도록 표준 항목명이 부여된다.
  • 데이터 표준화 작업을 통해 엔티티, 속성, 테이블, 컬럼 등 데이터 요소에 쓰일 단어에 대해 일정한 규칙이 적용된다.

 

데이터 표준화 구성 요소

구성 요소 설명
데이터 표준 - 데이터 모델이나 DB에서 정의할 수 있는 모든 오브젝트를 대상으로 데이터 표준화를 수행함.
- 데이터 표준의 종류
표준 단어 : 업무에서 사용하고 일정한 의미를 가진 최소 단위의 단어
표준 도메인 : 문자형, 숫자형, 날짜형, 시간형과 같이 컬럼을 성질에 따라 묶은 것
표준 코드 : 선택할 수 있는 값을 정형화하기 위해 기준에 맞게 정의된 코드 값으로, 도메인의 한 유형임.
표준 용어 : 단어, 도메인, 코드 표준이 정의되면 이를 바탕으로 표준 용어를 구성함.
데이터 관리 조직 - 데이터 표준 원칙이나 데이터 표준 준수 여부 등을 관리하는 사람들로, 대표적으로 데이터 관리자가 있음.
- 데이터 관리자는 조직 내의 데이터에 대한 정의, 체계화, 감독 등의 업무를 담당함. 
데이터 표준화 절차 데이터 표준화 요구사항 수집, 데이터 표준 정의, 데이터 표준 확정, 데이터 표준 관리 순으로 진행됨.

 

 

 

데이터 표준화의 대상

대상 설명
데이터 명칭 데이터를 유일하게 구분할 수 있는 유일성, 의미 전달의 충분성, 그리고 업무적 보편성을 갖는 이름으로 정의해야 함.
데이터 정의 데이터를 제3자의 입장에서도 쉽게 이해할 수 있도록 해당 데이터가 의미하는 범위 및 자격 요건 등을 규정함.
데이터 형식 업무 규칙 및 사용 목적과 유사한 데이터에 대해 일관되게 데이터 형식을 정의함으로써 데이터 입력 오류, 통제 위험 등을 최소화함.
데이터 규칙 기본값, 허용값, 허용 범위 등과 같이 발생할 수 있는 데이터 값을 사전에 지정함으로써 데이터의 정합성완전성을 향상시킴.

 

 

 

 

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖