[정보처리기사 실기] 10장 요약 _ 응용 SW 기초 기술 활용

딱지의겨울

·

2021. 4. 22. 21:56

[10] 응용 SW 기초 기술 활용

 

10.1 운영체제의 개념

 

운영체제의 정의

- 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임. 

- 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종

- 다른 응용 프로그램이 유용한 작업을 할 수 있는 환경을 제공해 줌. 

 

 

운영체제의 목적

- 운영체제의 성능을 평가하는 기준.

- 처리 능력: 일정 시간 내 시스템이 처리하는 일의 양. 

- 반환 시간: 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간

- 사용 가능도: 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도

- 신뢰도: 시스템이 주어진 문제를 정확하게 해결하는 정도

 

 

운영체제의 기능

- 프로세서(처리기, Processor), 기억장치(주기억장치, 보조기억장치), 입출력장치, 파일 및 정보 등의 자원을 관리함. 

- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공함. 

- 사용자와 시스템 간의 편리한 인터페이스를 제공함. 

- 시스템의 각종 하드웨어나 네트워크를 관리, 제어함. 

- 데이터를 관리하고 데이터 및 자원의 공유 기능을 제공함. 

- 시스템의 오류를 검사하고 복구함. 

- 자원 보호 기능을 제공함. 

- 입출력에 대한 보조 기능을 제공함. 

- 가상 계산기(한 대의 컴퓨터를 여러 대의 컴퓨터처럼 보이게 하는 가상 컴퓨터 운영체제에 의해 만들어짐.) 기능을 제공함. 

 

 

운영체제의 주요 자원 관리

- 프로세스 관리 

  • 프로세스 스케쥴링 및 동기화 관리 담당
  • 프로세스 생성과 제거, 시작과 정지, 메시지 전달 등의 기능 담당

- 기억장치 관리

  • 프로세스에게 메모리 할당 및 회수 관리 담당

- 주변장치 관리

  • 입출력장치 스케줄링 및 전반적인 관리 담당

- 파일 관리

  • 파일의 생성과 삭제, 변경, 유지 등의 관리 담당

- 운영 체제 계층 구조: 하드웨어 > CPU 관리 > 기억 장치 관리 > 프로세스 관리 > 주변 장치 관리 > 파일 시스템 관리 > 사용자 프로세스

 

 

운영체제의 종류

- 운영 체제의 종류: Windows, UNIX, LINUX, MacOS, MS_DOS 등

- 단일 작업 처리 시스템: MS-DOS

- 다중 작업 처리 시스템: Windows, LINUX, UNIX, MacOS

- 개인 운영체제: Windos, MacOS, MS-DOS

- 서버 운영체제: LINUX, UNIX

 

 

10.2 운영체제의 종류

 

Windows의 개요 및 특징

- 1990년대 마이크로소프트 사가 개발한 운영체제. 

- 그래픽 사용자 인터페이스(GUI): 키보드로 명령어를 직접 입력하지 않고, 마우스로 아이콘이나 메뉴를 선택하여 모든 작업을 수행하는 방식. 

- 선점형 멀티태스킹동시에 여러 개의 프로그램을 실행하는 멀티태스킹을 하면서 운영체제가 각 작업의 CPU 이용 시간을 제어하여 응용 프로그램 실행 중 문제가 발생하면 해당 프로그램을 강제 종료 시키고 모든 시스템 자원을 반환하는 방식. 

- PnP(Plug and Play, 자동 감지 기능): 컴퓨터 시스템에 프린터나 사운드 카드 등의 하드웨어를 설치했을 때, 해당 하드웨어를 사용하는 데 필요한 시스템 환경을 운영체제가 자동으로 구성해주는 기능. 

- OLE(Object Linking and Embedding): 다른 여러 응용 프로그램에서 작성된 문자나 그림 등의 개체를 현재 작성 중인 문서에 자유롭게 연결하거나 삽입하여 편집할 수 있게 해주는 기능

- 255자의 긴 파일명Windows에서 파일 이름은 \ / * ? < > | 를 제외한 모든 문자 및 공백을 사용하여 최대 255자까지 지정할 수 있음

- Single-User 시스템컴퓨터 한 대를 한 사람만이 독점해서 사용함. 

 

UNIX의 개요 및 특징

- 1960년대 AT&T 벨 연구소, MIT, General Electric이 공동 개발한 운영체제. 

- 시분할 시스템(여러명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아가면서 처리해줌으로써 각 사용자에게 독립된 컴퓨터를 사용하는 느낌을 주는 것)을 위해 설계된 대화식 운영체제로 소스가 공개된 개방형 시스템

- 대부분 C 언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높음. 

- 크기가 작고 이해하기 쉬움. 

- 다중 사용자, 다중 작업을 지원함. 

- 많은 네트워킹 기능을 제공하므로 통신망 관리용 운영체제로 적합함. 

- 트리 구조의 파일 시스템. 

- 전문적인 프로그램 개발에 용이. 

- 다양한 유틸리티 프로그램들이 존재함. 

 

UNIX 시스템의 구성

- 커널

  • UNIX의 가장 핵심적인 부분. 
  • 컴퓨터가 부팅될 때 주기억장치에 적재된 후 상주하면서 실행됨. 
  • 하드웨어를 보호하고, 프로그램과 하드웨어 간의 인터페이스 역할을 담당. 
  • 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 기능 수행. 

-

  • 사용자가 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기.
  • 시스템과 사용자 간의 인터페이스를 담당. 
  • DOS의 COMMAND.COM 과 같은 기능을 수행. 
  • 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조 기억장치에서 교체 처리가 가능함. 
  • 파이프라인(둘 이상의 명령을 함께 묶어 처리한 결과를 다른 명령의 입력으로 전환하는 기능) 기능을 지원하고 입출력 재지정을 통해 출력과 입력의 방향을 변경할 수 있음. 
  • 공용 Shell 이나 사용자 자신이 만든 Shell을 사용할 수 있음.

- 유틸리티 프로그램

  • 일반 사용자가 작성한 응용 프로그램을 처리하는데 사용함. 
  • DOS에서의 외부 명령어에 해당됨. 
  • 유틸리티 프로그램에는 에디터, 컴파일러, 인터프리터, 디버거 등이 있음. 

 

LINUX의 개요 및 특징

- 1991년 리누즈 토발즈가 UNIX를 기반으로 개발한 운영체제. 

- 프로그램 소스 코드가 무료로 공개되어 있기 때문에 프로그래머가 원하는 기능을 추가할 수 있고 다양한 플랫폼에 설치하여 사용이 가능하며, 재배포가 가능함. 

- UNIX와 완벽 호환. 

- 대부분의 특징이 UNIX와 동일.

 

MacOS의 개요 및 특징

- 1980년대 애플 사가 UNIX를 기반으로 개발한 운영체제.

- 아이맥과 맥북 등 애플 사에서 생산하는 제품에서만 사용이 가능. 

- 드라이버 설치 및 install uninstall 과정이 단순. 



10.3 운영체제의 기본 명령어

 

운영체제 기본 명령어의 개요

- 운영체제를 제어하는 방법은 크게 CLI와 GUI로 구분할 수 있음. 

- CLI (Command Line Interface): 키보드로 직접 명령어를 입력하여 작업을 수행하는 사용자 인터페이스.

- GUI (Graphic User Interface): 마우스로 아이콘이나 메뉴를 선택하여 작업을 수행하는 그래픽 사용자 인터페이스

 

 

Window 기본 명령어

- CLI 기본 명령어: 명령 프롬프트 창에 명령어를 입력하여 작업을 수행하는 것

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

 

  • COPY: 파일 복사 copy abc.txt gilbut  abc.txt 파일을 gilbut 디렉토리로 복사
  • DEL: 파일 삭제  del abc.txt
  • TYPE: 파일의 내용 표시 type abc.txt
  • REN: 파일의 이름 변경 ren abc.txt 123.txt
  • MD: 디렉토리 생성 md gilbut
  • CD: 동일한 드라이브에서 디렉터리 위치 변경 cd gilbut
  • CLS: 화면의 내용을 지움
  • ATTRIB: 파일의 속성을 변경 attrib +r abc.txt
R 읽기 전용 속성
A 저장/백업 속성
S 시스템 파일 속성
H 숨김 파일
  속성을 지정할 때는 속성 앞에 +, 속성을 해제할 때는 속성 앞에 -를 입력

 

  • FIND: 파일에서 문자열 찾음 find "123" abc.txt
  • CHKDSK: 디스크 상태 점검
  • FORMAT: 디스크 표면을 트랙과 섹터로 나누어 초기화 함. format c: c 드라이브를 초기화
  • MOVE: 파일을 이동 move abc.txt gilbut

- GUI 기본 명령어: 바탕화면이나 Windows 탐색기에서 마우스로 아이콘을 더블 클릭하여 프로그램 실행, 파일의 복사 및 이동, 제어판의 기능 실행 등이 GUI 명령어에 해당됨. 

 

 

UNIX/LINUX 기본 명령어

- CLI 기본 명령어: 에 명령어를 입력하여 작업을 수행.

  • cat: 파일 내용을 화면에 표시 cat abc.txt
  • cd: 디렉토리 위치 변경 cd gilbut
  • chmod: 파일의 보호 모드를 설정하여 파일의 사용 허가를 지정함.  chmod u=rwx abc.txt
사용자 u: user (소유자)
g: group(그룹)
o: other (다른 사용자)
a: all (모두)
설정 기호 + : 권한 추가
- : 권한 삭제
= : 권한 부여
권한 r: read (읽기)
w: write (쓰기)
x: execute (실행)

 

  • chown: 파일의 소유자와 그룹을 변경  chown  member1 abc.txt 
  • cp: 파일 복사  cp abc.txt gilbut/abc2.txt 
  • rm: 파일 삭제  rm abc.txt 
  • find: 파일 찾기  find abc.txt
  • fsck: 파일 시스템 검사하고 보수  fsck /dev/sda 
  • kill: PID를 이용하여 프로세스 종료  kill 1234 
  • killall: 프로세스 이름을 이용하여 프로세스 종료  killall gilbut 
  • Is: 현재 디렉토리 파일 목록 표시 
  • mkdir: 디렉토리 생성 mkdir gilbut 
  • rmdir: 디렉토리 삭제 rmdir gilbut 
  • mv: 파일을 이동 mv abc.txt gilbut/abc2.txt 
  • ps: 현재 실행중인 프로세스 표시
  • pwd: 현재 작업중인 디렉토리 경로를 화면에 표시
  • top: 시스템의 프로세스와 메모리 사용 현황 표시
  • who: 시스템에 접속해있는 사용자 표시

- GUI 기본 명령어: UNIX와 LINUX는 기본적으로 CLI를 기반으로 운용되는 시스템이지만 X Window라는 별도의 프로그램을 설치하여 GUI방식으로 운영할 수 있음. 



10.4 기억장치 관리

 

기억장치의 관리 전략의 개요

- 보조기억장치의 프로그램이나 데이터를 주 기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것. 

- 기억장치 관리 전략의 종류: 반입 전략, 배치 전략, 교체 전략

 

 

반입(Fetch) 전략

- 보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지 결정하는 전략. 

- 요구 반입(Demand Fetch): 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법.

- 예상 반입(Anticipatory Fetch): 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상하여 적재하는 방법. 

 

 

배치(Placement) 전략

- 새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 지 결정하는 전략. 

- 최초 적합(First Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시키는 방법. 

- 최적 적합(Best Fit): 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화(주기억장치의 분할된 영역이 프로그램이나 데이터보다 작거나 커서 생기는 빈 기억 공간)를 가장 작게 남기는 분할 영역에 배치시키는 방법.

- 최악 적합(Worst Fit):  프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법.

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

- First Fit: 2, Best Fit: 4, Worst Fit: 5

 

 

교체(Replacement) 전략

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

- 종류: FIFO, OPT, LRU, NUR, SCR

 

 

Windows 메모리 관리 방법

-  Windows에서는 ‘작업관리자’를 이용하여 메모리 상태를 확인 및 관리할 수 있음. 

- 메모리가 부족할 경우 불필요한 응용프로그램이나 프로세스를 종료

- 프로세스의 원활한 작업을 위해 프로세스의 우선순위를 설정함. 

 

LINUX 메모리 관리 방법

- LINUX에서는 meminfo 명령어를 이용해 메모리 상태를 확인함. 

- 메모리가 부족할 경우 Swapping 기법이나 min_free_kbytes 명령어를 사용하여 메모리를 확보함. 

- 스와핑(Swapping)

  • 프로그램에 할당된 메모리의 일부를 보조기억장치(하드디스크)에 저장하는 기법
  • (예) dd(블록 단위로 파일을 변환하거나 복사할 때 사용하는 명령어)를 이용하여 1Gbyte 스왑 파일 생성 [파일명][용량][반복횟수]
dd if-/dev/zero of=swapfile bs=1M count=1024
  • (예) fallocate(비어있는 파일을 생성하는 명령어)을 이용하여 1Gbyte 스왑 파일 생성 [옵션][용량][파일명]
fallocate --length 1G /swapfile

- min_free_kbytes 커널 파라미터

  • 최소한의 가용 메모리 크기를 KByte 단위로 설정함.
  • 커널 파라미터: LINUX에서 시스템의 최적화를 위한 커널 변수 값으로 /proc/sys 디렉터리에 있음. 
  • (예)가용 메모리 크기를 20,480KByte로 생성
/proc/sys/ym/min_free_kbytes = 20480



10.5 프로세스 관리

 

프로세스의 정의

- 프로세스는 일반적으로 프로세서(처리기, CPU)에 의해 처리되는 실행중인 프로그램을 의미하며, 작업(Job), 데스크(Task)라고도 함. 

- 프로세스 다음과 같은 형태로 정의할 수 있음. 

  • PCB를 가진 프로그램
  • 실기억장치에 저장된 프로그램
  • 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
  • 프로시저가 활동중인 것
  • 비동기적 행위를 일으키는 주체
  • 지정된 결과를 얻기 위한 일련의 계통적 동작
  • 목적 또는 결과에 따라 발생되는 사건들의 과정
  • 운영체제가 관리하는 실행 단위

 

프로세스 상태 전이

- 프로세스가 시스템 내에 존재하는 동안 프로세스의 상태가 변하는 것을 의미함. 

- 프로세스의 상태 전이도

- 제출(Submit)

  • 작업을 처리하기 위해 사용자가 작업을 시스템에 제출한 상태

- 접수(Hold)

  • 제출된 작업이 스풀 공간인 디스크의 할당 위치에 저장된 상태
  • 스풀링: 입출력 장치의 공유 및 상대적으로 느린 입출력장치의 처리 속도를 보완하고 다중 프로그래밍 시스템의 성능을 향상시키기 위해, 입출력할 데이터를 직접 입출력장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정.

- 준비(Ready)

  • 프로세스가 프로세서를 할당받기 위해 기다리고 있는 상태. 
  • 프로세스는 준비 상태 큐(여러 프로세스가 프로세서를 할당 받기 위해 기다리는 장소)에서 실행을 준비하고 있음. 
  • 접수 상태에서 준비 상태로의 전이는 Job 스케줄러에 의해 수행됨

- 실행(Run)

  • 준비상태 큐에 있는 프로세스가 프로세서를 할당받아 실행 되는 상태. 
  • 프로세스 수행이 완료되기 전에 프로세스에게 주어진 프로세서 할당 시간이 종료되면 프로세스는 준비 상태로 전이됨. 
  • 실행중인 프로세스에 입출력 처리가 필요하면 실행중인 프로세스는 대기 상태로 전이됨. 
  • 준비상태에서 실행상태로의 전이는 CPU 스케줄러에 의해 수행됨.
  • Dispatch: 준비 상태에서 대기하고 있는 프로세스 중 하나가 프로세서를 할당받아 실행 상태로 전이되는 과정

- 대기(Wait), 보류, 블록(Block)

  • 프로세스에 입출력 처리가 필요하면 현재 실행중인 프로세스가 중단되고 입출력 처리가 완료될 때까지 대기하고 있는 상태.
  • Wake up: 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정

- 종료(Terminate, Exit)

  • 프로세스의 실행이 끝나고 프로세스 할당이 해제된 상태

 

Windows 프로세스 관리 방법

- 작업관리자를 이용하여 프로세스의 상태를 확인 및 관리를 할 수 있음. 

- 프로세스의 원활한 작업을 위패 프로세스의 우선순위를 설정함. 

- 우선순위 설정: CPU가 프로세스를 처리할 때 프로세스에 설정된 우선 순위에 따라 처리하도록 하는 기능으로 우선 순위를 높게 설정하면 CPU 사용률이 높아져 작업 속도가 높아짐. 우선 순위를 높이려면 실시간, 높음, 높은 우선순위 중에서 선택하고, 낮추려면 낮은 우선순위, 낮음을 선택.  

 

LINUX 프로세스 관리 방법

- LINUX 시스템에서 실행되고 있는 프로세스 정보는 proc 디렉토리(보조기억장치에 실제 존재하는 파일이 아닌 메모리에 저장되어 있는 데이터를 확인할 수 있는 가상 디렉토리)에서 확인 할 수 있음. 

- 프로세스의 세부 정보는 ps 명령어를 이용하여 PID(프로세스 고유 번호)를 확인한 후 proc 디렉터리에서 PID에 해당하는 디렉터리로 이동하여 ls 명령어를 통해 확인할 수 있음

- top 명령어를 이용하여 현재 시스템의 CPU와 메모리 사용률을 모니터링 할 수 있음. 

- 특정 프로세스를 종료하려면 kill 명령어를 사용 (PID)



10.6 데이터베이스 개념

 

데이터베이스(Database)

- 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임. 

- 통합된 데이터: 검색의 효율성을 위해 중복이 최소화된 데이터의 모임. 

- 저장된 데이터: 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터. 

- 운영 데이터: 조직의 고유한 업무를 수행하는데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 데이터.

- 공용 데이터: 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터. 

 

DBMS(데이터베이스 관리 시스템)

- 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어

- 기존의 파일 시스템이 갖는 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템으로, 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해줌. 

- 데이터베이스의 구성, 접근 방법, 유지 관리에 대한 모든 책임을 짐. 

- DBMS의 필수 기능

  • 정의 기능: 모든 응용프로그램들이 요구하는 데이터 구조를 지원하기 위해 데이터베이스에 저장될 데이터의 형과 구조에 대한 정의, 이용 방식, 제약 조건 등을 명시하는 기능.
  • 조작 기능: 데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의 인터페이스 수단을 제공하는 기능.
  • 제어 기능: 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어하는 기능. 

 

DBMS의 종류

- 계층형 DBMS

  • 트리 구조를 이용해서 데이터의 상호관계를 계층적으로 정의한 DBMS
  • 개체 타입 간에는 상위와 하위 관계가 존재하며 일 대 다 대응관계만 존재함. 
  • 종류: IMS, System2000 등

- 망형 DBMS

  • 그래프를 이용하여 데이터 논리 구조를 표현한 DBMS
  • 상위와 하위 레코드 사이에서 1:1, 1:N, N:M 대응 관계를 모두 지원함. 
  • 종류: IDS, TOTAL, IDMS 등

- 관계형 DBMS

  • 가장 널리 사용되는 DBMS로, 계층형 DBMS와 망형 DBMS의 복잡한 구조를 단순화시킨 DBMS
  • 파일 구조처럼 구성한 2차원적인 표를 하나의 DB로 묶어서 테이블 내에 있는 속성들의 관계를 설정하거나 테이블 간의 관계를 설정하여 이용.
  • 종류: Oracle, SQL Server, MySQL 등

- 비관계형 DBMS(NoSQL)

  • 데이터간의 관계를 정의하지 않고 비구조적인 데이터를 저장하기 위한 시스템으로 최근 빅데이터를 처리하기 위한 시스템으로 각광받고 있음. 
  • 수평적 확장 및 분산 저장이 가능. 
  • 저장되는 데이터 구조에 따라 Key-Value DBMS, Document DBMS, Graph DBMS 등으로 분류

 

DBMS의 장단점

- 장점

  • 데이터의 논리적, 물리적 독립성이 보장됨. 
  • 데이터의 중복을 피할 수 있어 기억 공간이 절약됨. 
  • 저장된 자료를 공동으로 이용할 수 있음. 
  • 데이터의 일관성을 유지할 수 있음. 
  • 데이터의 무결성을 유지할 수 있음. 
  • 보안을 유지할 수 있음.
  • 데이터를 표준화할 수 있음.
  • 데이터를 통합하여 관리할 수 있음. 
  • 항상 최신의 데이터를 유지함. 
  • 데이터의 실시간 처리가 가능함. 

- 단점

  • 데이터베이스의 전문가가 부족함. 
  • 전산화 비용이 증가함. 
  • 대용량 디스크로의 집중적인 Access로 과부하가 발생함. 
  • 파일의 백업과 회복이 어려움.
  • 시스템이 복잡함. 

 

 

 

10.7 ER(Entity Relationship)의 개념

 

ER 모델

- ER 모델은 개념적 데이터 모델의 가장 대표적인 것으로, 1976년 피터 첸에 의해 제안되었음. 

- ER 모델은 개체, 속성, 관계 등에 대하여 용이하게 표현할 수 있는 ER 도형(ERD: Entity Relationship Diagram)을 정의하고 있음.

 

 

ER 도형

- ER 모델은 몇가지 도형들을 이용하여 현실 세계를 표현함. 

ER 도형

- ISA 관계: 특정 개체는 서로 구별되는 여러 하위 개체로 나누어 질 수 있다. ISA 관계는 이러한 상위 개체와 하위 개체 간의 관계를 의미한다. 예를 들어 학생 개체는 내부적으로 재학생, 휴학생, 졸업생 개체로 구별됨. 

 

(예) 학생 개체와 교수 개체에 대한 ER 도형

  • 개체: 학생, 교수
  • 속성: 학번, 이름, 학과, 교수번호, 이름, 학점
  • 학생의 기본키: 학번
  • 교수의 기본키: 교수번호
  • 관계: 교수와 학생 간에는 1:N의 지도 관계가 존재. 한명의 교수가 여러명의 학생을 지도할 수 있고, 학생은 한 명의 교수에게만 지도를 받을 수 있음.

 

개체 및 개체 타입

- 개체는 현실 세계의 객체로서의 유형 또는 무형의 정보 대상으로 존재하며 서로 구별될 수 있는 것을 뜻하고 개체의 특성을 나타내는 속성을 가짐.

- 개체 어커런스(개체 인스턴스): 하나의 개체

- 개체 타입: 개체 어커런스들의 집합에 대한 공통의 특성들을 갖는 개체 클래스

(예) 개체 타입: 이름과 학과명을 갖는 ‘교수’ / 개체 어커런스: 이름이 ‘홍길동’이고 학과가 ‘컴퓨터공학과’인 교수 데이터. 

 

 

관계 및 관계 타입

- 관계: 2개 이상의 개체 사이에 존재하는 연관성. 

- 관계 타입: 같은 관계들의 집합 또는 틀

- 관계의 종류: 차수에 따른 관계(관계에 참여하는 개체 타입의 개수), 대응 카디널리티(관계에 참여하는 개체 어커런스의 개수)에 따른 관계

- 차수에 따른 관계의 종류(개체 타입의 수)

  • 단항 관계: 관계에 참여하고 있는 개체 타입이 1개
  • 이항 관계: 관계에 참여하고 있는 개체 타입이 2개
  • 삼항 관계: 관계에 참여하고 있는 개체 타입이 3개
  • n항 관계: 관계에 참여하고 있는 개체 타입이 n개

  • (예) 단항 관계: 어떤 사원이 상사의 관리를 받는 경우 상사도 사원이라는 개체에 속하기 때문에 사원은 상사와 ‘관리’ 관계를 갖는 단항 관계로 표현함. 
  • (예) 이항 관계: 사원이 부서에 소속되어 있는 경우 부서는 여러개로 나뉘어 있으므로 사원은 특정 부서에 속함. 그러므로 사원과 부서는 ‘소속’의 이항 관계로 표현. 
  • (예) 삼항 관계: 공급자가 프로젝트를 위해 부품을 공급하는 경우, 공급자, 프로젝트, 부품 간에는 ‘공급’이라는 삼항 관계로 표현함. 

- 대응 카디널리티에 따른 관계의 종류(개체 어커런스의 수)

  • 1:1 관계: 관계에 참여하고 있는 두 개체 타입이 모두 하나씩의 개체 어커런스를 갖는 관계.

  • 1:N 관계: 관계에 참여하고 있는 개체 타입 중 한 개체 타입은 여러개의 개체 어커런스를 가질 수 있고 다른 한 개체 타입은 하나의 개체 어커런스를 갖는 관계

  • N:M 관계: 관계에 참여하고 있는 두 개체 타입 모두 여러 개의 개체 어커런스를 가질 수 있는 관계

 

 

속성

- 개체의 특성이나 상태를 기술 한 것. 관계 역시 개체와 마찬가지로 속성을 가질 수 있음. 

- 속성이 가질 수 있는 모든 가능한 값들의 집합도메인이라 함.

(예) 학생 개체가 성별 속성을 가지는 경우, 성별 속성의 도메인은 ‘남’과 ‘여’로 제한 할 수 있음. 

- 모든 개체 타입은 그 개체를 유일하게 식별해주는 기본키에 속하는 속성을 포함함.

(예) 학번 속성을 이용하여 학생 개체를 유일하게 식별할 수 있음. 

- 속성에는 더 이상 다른 속성으로 나눌 수 없는 단순 속성2개 이상의 속성들로 분해할 수 있는 복합 속성이 있음. 

(예) 단순 속성의 예로는 ‘나이’ 가 있고 복합 속성의 예로는 ‘주소’로 ‘시’, ‘군’, ‘구’ 등으로 나눌 수 있다. 

 

요구 사항을 이용하여 ERD 만들기

- 요구 조건 분석의 결과로 나온 요구 조건 명세를 기본으로 ERD를 만듬. 

(예) 은행 업무에 대한 요구사항을 바탕으로 ERD를 만드시오.

- 은행은 예금 서비스를 고객에게 제공함. 
- 은행은 여러 지점으로 구성되고, 각 지점은 특정 도시에 위치해 있음. 
- 각 지점은 고유의 지점명이 부여되며, 추가로 도시, 자산, 영문 지점명, 지점 개설일, 전화번호 등의 정보를 가짐. 
- 고객은 고유의 고객 번호를 가지며, 추가로 이름, 주소, 생년 월일 등의 정보를 가짐. 
- 예금 계좌는 예금 번호로 유일하게 식별되고, 예금 계좌의 잔고와 입출금 내역이 관리됨. 
- 한 명의 고객은 여러개의 예금 계좌에 예금할 수 있고, 하나의 예금 계좌에는 여러명의 고객이 예금할 수 있음. 
- 지점은 여러개의 예금 계좌를 관리함. 

 

 

10.8 관계형 데이터 모델

 

관계형 데이터 구조: 릴레이션

- 관계형 데이터 모델: 데이터를 테이블 또는 릴레이션의 구조로 표현하는 논리적 데이터 모델

- 릴레이션: 관계형 데이터 모델에서 데이터를 원자 값으로 갖는 이차원의 테이블

- 릴레이션의 구조는 물리적인 저장 구조를 나타내는 것이 아닌 논리적인 구조이므로 다양한 정렬 기준을 통하여 릴레이션을 표현할 수 있음. 

- 릴레이션의 구성 요소

  • 릴레이션 스키마: 릴레이션의 이름, 각 속성의 이름과 타입, 속성 값의 도메인을 정의하는 . 릴레이션 스킴 또는 릴레이션 내포라고도 함. 
  • 릴레이션 인스턴스: 어느 시점의 릴레이션에 들어있는 튜플들의 집합. 릴레이션 인스턴스를 단순히 릴레이션 또는 릴레이션 외연이라고도 함. 

- 릴레이션의 열을 속성이라고 하고, 행을 튜플이라고 함. 

- 릴레이션에서 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합도메인이라고 함. 도메인은 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는 데에도 이용될 수 있음. 

 

ER 모델을 관계형 데이터 모델로 변환

- 개념적 데이터 모델인 ER 모델을 논리적 데이터 모델인 릴레이션 스키마로 변환하는 것으로, 매핑 룰이라고도 함.

ER 모델 관계형 데이터 모델
개체 개체 릴레이션
관계 관계 릴레이션
속성 칼럼
식별자 기본키
릴레이션간의 관계 기본키와 이를 참조하는 외래키를 이용하여 표현

 

- 개체 A, B와 관계 Y로 이루어진 ER 모델을 관계형 데이터 모델에서의 릴레이션 스키마로 변환하는 과정. 

  • 개체 A, B는 각각 독립적인 릴레이션 A, B로 표현됨. 
  • 관계 Y가 1:1 관계 일 때: 릴레이션 A의 기본키를 릴레이션 B의 외래키로 추가하거나 릴레이션 B의 기본키를 릴레이션 A의 외래키로 추가하여 표현함. 
  • 관계 Y가 1:N 관계 일 때: 릴레이션 A의 기본키를 릴레이션 B의 외래키로 추가하여 표현함. 
  • 관계 Y가 N:M 관계 일 때: 릴레이션 A와 B의 기본키를 모두 포함한 별도의 릴레이션으로 표현함. 이때 생성된 별도의 릴레이션을 교차 릴레이션 또는 교차 엔티티라고 함. 

(예1) 교수, 과목 개체 간의 1:1 관계를 표현한 ER 도형을 릴레이션 스키마로 변환하시오. 

 

(예2) 교수, 학생 개체 간의 1:N 관계를 표현한 ER 도형을 릴레이션 스키마로 변환하시오. 

(예3) 교수, 학생 개체 간의 N:M 관계를 표현한 ER 도형을 릴레이션 스키마로 변환하시오. 

 

 

릴레이션 스키마의 다른 표현

1. 속성만 기록한 도형으로 표기: 릴레이션 스키마에 표기된 속성만을 세로로 나열 한 후 관계를 나타내는 선 위에 관계 대응 수를 표기. 논리 개체 관계도 또는 논리 개체 관계 모델

2. 속성에 자료의 형과 크기를 표시한 도형으로 표기 : 릴레이션 스키마의 속성에 대한 자료의 형이나 크기, 제약 사항 등을 표기하고 관계를 나타내는 선 위에 관계의 대응 수를 표기. 물리 개체 관계도 또는 물리 개체 관계 모델

3. 정보 공학적 도형을 이용하여 표기: 정보 공학적 그래픽 표기법을 이용. 

  • 논리 개체 관계도: 외래키에 해당하는 속성에 FK를 표기하여 외래키임을 나타냄.  

  • 물리 개체 관계도: 도형의 위쪽 부분에 들어있는 속성은 기본키 속성을 의미. 

  • 정보 공학적 표기 기호

- 기본 기호

- 관계의 표현

 

 

 

10.9 키의 개념 및 종류

 

의 개념

- 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성



슈퍼키

- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

- 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음

- 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못함

- 유일성: 하나의 키 값으로 하나의 튜플만이 유일하게 식별할 수 있어야 함. 

- 최소성: 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함. 그러나 학번이나 주민등록번호가 최소성을 만족한다고 해서 슈퍼키가 아닌 것은 아님. 슈퍼키는 최소성과 관계 없이 튜플을 유일하게 구분할 수 있으면 됨. 슈퍼키 중에서 유일성과 최소성을 만족시키는 것들이 후보키가 되는 것. 

(예) <학생> 릴레이션에서 학번, 주민등록번호, (학번, 주민등록번호), (학번, 주민등록번호, 성명) 등이 슈퍼키. 

 

 

후보키

- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합

- 후보키는 유일성과 최소성을 모두 만족

- 복합키: 두 개 이상의 필드를 조합하여 만든 키

(예) <학생>릴레이션에서 학번이나 주민등록번호는 유일성과 최소성을 만족하므로 후보키가 됨. <수강>에서는 (학번, 과목명)으로 조합해야 유일성과 최소성을 만족하므로 (학번, 과목명)이 후보키가 됨. 

 

 

기본키

- 후보키 중에서 특별히 선정된 키중복된 값을 가질 수 없음

- 기본키는 후보키의 성질을 가짐. 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키. 

- NULL 값을 가질 수 없음. 튜플에서 기본키로 설정된 속성에는 NULL 값이 있어서는 안됨. 

 

 

대체키

- 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미. 

(예) <학생>에서 학번이 기본키로 설정되면 주민등록번호는 대체키가 됨. 

 

 

외래키

- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미. 

- 외래키는 릴레이션간의 관계를 표현할 때 사용. 

- 한 릴레이션에 속한 속성 A 와 참조 릴레이션 기본키인 B가 동일한 도메인 상에서 정의되었을 때 속성 A를 외래키라고 함. 

- 외래키는 참조 릴레이션의 기본키와 동일한 키 속성을 가짐

  • <수강>의 ‘학번’은 <학생>의 기본키인 ‘학번’을 참조하고 있으므로 <수강>에서 ‘학번’은 외래키가 됨. 
  • <수강>의 ‘학번’ 속성에는 <학생>의 ‘학번’ 속성에 없는 값을 입력할 수 없음. 
  • <학번>과 <수강>은 ‘학번’을 기준으로 관계가 설정된 것. 



10.10 무결성

 

무결성의 개념 및 종류

- 데이터베이스에 저장된 데이터 값그것이 표현하는 현실 세계의 실제값이 일치하는 정확성

- 무결성 제약 조건: 데이터베이스에 들어있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건

- 무결성의 종류: 개체 무결성, 도메인 무결성, 참조 무결성, 사용자 정의 무결성, NULL 무결성, 고유 무결성, 키 무결성, 관계 무결성

 

 

개체 무결성

- 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질수 없다는 규정. 

 

 

도메인 무결성

- 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정. 

 

 

참조 무결성

- 외래키 값은 Null 이거나 참조 릴레이션의 기본키의 값과 동일해야 함. 즉, 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정. 

- 외래키와 참조하려는 테이블의 기본키는 도메인과 속성 개수가 같아야 함. 



사용자 정의 무결성

- 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다는 규정. 

 

 

NULL 무결성

- 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정. (NOT NULL)

 

 

고유 무결성

- 고유 무결성 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값들이 서로 달라야 한다는 규정. (UNIQUE)

 

 

키 무결성

- 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정. 

 

 

관계 무결성

- 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정. 



 

10.11 네트워크/인터넷

 

네트워크의 개념

- 두 대 이상의 컴퓨터를 전화선이나 케이블 등으로 연결하여 자원을 공유하는 것. 

- 네트워크는 다른 컴퓨터의 데이터, 프로그램, 주변 장치, 인터넷 등을 공유하기 위해 사용됨. 

- 네트워크는 각 사이트들이 분포되어있는 지리적 범위에 따라 LAN과 WAN으로 분류.

- LAN(근거리 통신망, Local Area Network)

  • 회사, 학교, 연구소 등에서 비교적 가까운 거리에 있는 컴퓨터, 프린터, 저장장치 등과 같은 자원을 연결하여 구성함. 
  • 주로 자원 공유를 목적으로 사용됨. 
  • 사이트 간의 거리가 짧아 데이터의 전송 속도가 빠르고, 에러 발생률이 낮음. 
  • 근거리 통신방에서는 주로 버스형이나 링형 구조를 사용. 

- WAN(광대역 통신망, Wide Area Network)

  • 국가와 국가 혹은 대륙과 대륙 등과 같이 멀리 떨어진 사이트들을 연결하여 구성. 
  • 사이트 간의 거리가 멀기 때문에 통신 속도가 느리고, 에러 발생률이 높음
  • 일정한 지역에 있는 사이트들을 근거리 통신망으로 연결한 후 각 근거리 통신망을 연결하는 방식을 사용. 

 

인터넷의 개요

- TCP/IP 프로토콜(인터넷의 표준 프로토콜)을 기반으로 하여 전 세계 수많은 컴퓨터와 네트워크들이 연결된 광범위한 컴퓨터 통신망

- 미 국방성의 ARPANET에서 시작되었음. 

- 유닉스 운영체제를 기반으로 함. 

- 인터넷에 연결된 모든 컴퓨터는 고유 IP주소를 가짐

- 컴퓨터 또는 네트워크를 서로 연결하기 위해서는 브리지, 라우터, 게이트웨이가 사용됨. 

- 백본: 다른 네트워크 또는 같은 네트워크를 연결하여 중추적 역할을 하는 네트워크로, 보통 인터넷의 주가 되는 기간망을 일컫는 용어

 

 

IP주소

- 인터넷에 연결된 모든 컴퓨터 자원을 구분하기 위한 고유한 주소

- 숫자로 8비트4부분, 총 32비트로 구성되어 있음. 

- IP 주소는 네트워크 부분의 길이에 따라 다음과 같이 총 5 단계로 구성되어 있음. 

  • A 클래스
    • 국가나 대형 통신망에 사용.
    • 0~127로 시작(0번과 127번은 예약어이므로 실질적으로 1~126으로 시작). 
    • 224= 16,777,216개의 호스트 사용 가능
  • B 클래스
    • 중대형 통신망에 사용 
    • 128~191로 시작
    • 216= 65,536개의 호스트 사용 가능
  • C 클래스
    • 소규모 통신망에 사용
    • 192~233으로 시작
    • 28= 256개의 호스트 사용 가능
  • D 클래스
    • 멀티캐스트(한 명 이상의 송신자들이 특정한 한 명 이상의 수신자들에게 데이터를 전송하는 방식으로 인터넷 화상 회의 등에서 사용됨)용으로 사용
    • 224~239로 시작
  • E 클래스
    • 실험적 주소이며 공용되지 않음

 

IPv6

- 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발됨. 

- IPv4에 비해 자료 전송 속도가 빠름

- IPv4와 호환성이 뛰어남

- 인증성(사용자의 식별과 접근 권한 검증), 기밀성(시스템 내의 정보와 자원은 인가된 사용자에게만 접근 허용), 데이터 무결성(시스템 내의 정보는 인가된 사용자만 수정 가능)의 지원으로 보안 문제를 해결할 수 있음. 

- 주소의 확장성, 융통성, 연동성이 뛰어나며, 실시간 흐름 제어로 향상된 멀티미디어 기능을 지원함. 

- 트래픽 클래스(IPv6 패킷의 클래스나 우선순위를 나타내는 필드), 플로우 레이블(네트워크 상에서 패킷들의 흐름에 대한 특성을 나타내는 필드)을 이용하여 등급별, 서비스 별로 패킷을 구분할 수 있어 품질 보장이 용이함. 

- IPv6의 구성

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



도메인 네임

- 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것. 

- 호스트 컴퓨터 이름, 소속 기관 이름, 소속 기관의 종류, 소속 국가명 순으로 구성되며, 왼쪽에서 오른쪽으로 갈수록 상위 도메인을 의미함. 

- 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 역할을 하는 시스템DNS라고 하며 이런 역할을 하는 서버를 DNS 서버라고 함. 



 

10.12 OSI 참조 모델

 

OSI 참조 모델의 개요

- OSI 참조 모델은 다른 시스템 간의 원활한 통신을 위해 ISO(국제 표준화 기구)에서 제안한 통신 규약

- 특정 시스템에 대한 프로토콜의 의존도를 줄이고 장래의 기술 진보 등에 따른 프로토콜의 확장성을 고려해 보편적인 개념과 용어를 사용하여 컴퓨터 통신망의 논리 구조를 규정하고 있음. 

- OS 참조 모델은 통신 회선에 결합된 하나 이상의 개방형 시스템이, 통신망 상에서 특정한 업무를 분산하여 수행하기 위한 시스템 간의 협동적인 동작에 대하여 규정하고 있음. 이 협동적인 동작에는 프로세스간의 통신, 데이터의 기억, 프로세스 및 자원의 관리, 안전 보호 및 프로그램의 지원 등이 있음.

- 개방형 시스템 간의 데이터 통신 시 필요한 장비 및 처리 방법을 7단계로 표준화하여 규정함. 

- OSI 7 계층: 1-3 계층은 하위 계층, 4-7 계층은 상위 계층

  • 하위 계층: 물리 계층 → 데이터 링크 계층 → 네트워크 계층
  • 상위 계층: 전송 계층 → 세션 계층 → 표현 계층 → 응용 계층

 

OSI 참조 모델의 목적

- 서로 다른 시스템 간을 상호 접속하기 위한 개념을 규정함. 

- OSI 규격을 개발하기 위한 범위를 정함. 

- 관련 규정의 적합성을 조절하기 위한 공통적 기반을 제공함. 

 

 

OSI 참조 모델에서의 데이터 단위 

- 프로토콜 데이터 단위(PDU): 동일 계층 에 교환되는 정보의 단위. 

물리 계층 비트
데이터 링크 계층 프레임
네트워크 계층 패킷
전송 계층 세그먼트
세션 계층
표현 계층
응용 계층
메시지

 

- 서비스 데이터 단위(SDU): 서비스 접근점(상위 계층이 자신의 하위 계층으로부터 서비스를 제공 받는 통신 경계점)을 통해 상하위 계층끼리 주고 받는 정보의 단위 

 

 

물리 계층

- 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의. 

- 물리적 전송 매체와 전송 신호 방식을 정의하며, RS-232C, X, 21등 표준이 있음. 

- 관련 장비: 리피터, 허브

 

 

데이터 링크 계층

- 데이터 링크 계층은 두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보를 전송할 수 있도록 함. 

- 데이터 링크 계층의 주요 기능 

  • 흐름 제어: 송신 측과 수신 측의 속도 차이를 해결하기 위한 흐름 제어 기능을 함.
  • 프레임 동기화: 프레임의 시작과 끝을 구분하기 위한 프레임 동기화 기능. 
  • 오류 제어: 오류의 검출과 회복을 위해. 
  • 순서 제어: 프레임의 순서적 전송을 위해. .

- HDLX, LAPB, LLC, MAC, LAPD, PPP 등의 표준이 있음

- 관련 장비: 랜카드, 브리지, 스위치

 

 

네트워크 계층

- 개방 시스템들 간의 네트워크 연결을 관리하는 기능데이터의 교환 및 중계 기능을 함. 

- 네트워크 연결을 설정, 유지, 해제하는 기능을 함. 

- 경로 설정(라우팅), 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송을 수행. 

- X.25, IP 등의 표준이 있음. 

- 관련 장비: 라우터

 

 

전송 계층

- 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로써 종단 시스템 간에 투명한 데이터 전송을 가능하게 함. 

- 전송 계층의 서비스 등급: 전송 계층은 네트워크의 형을 A, B, C 형으로 나누고 서비스 등급을 0-4까지 5등급으로 나누어 네트워크형에 따라 다양한 서비스 품질을 제공함. 

- OSI 7계층 중 하위 3 계층과 상위 3계층의 인터페이스를 담당함. 

- 종단 시스템 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능을 함. 

- 주소 설정, 다중화(분할 및 재조립), 오류 제어, 흐름 제어를 수행. 

- TCP, UDP 등의 표준이 있음. 

- 관련 장비: 게이트웨이

 

 

세션 계층

- 송수신 측 간의 관련성을 유지하고 대화 제어를 담당함. 

- 세션: 두 이용자 사이의 연결을 의미. 연결을 원하는 두 이용자 사이의 세션 설정 및 유지를 가능하게 해 줌으로써 두 이용자 간의 대화를 관리하고, 파일 복구 등의 기능을 지원. 

- 대화 구성 및 동기 제어, 데이터 교환 관리 기능을 함. 

- 동기점: 송수신 측 간의 대화 동기를 위해 전송하는 정보의 일정한 부분에 체크점을 두어 정보의 수신 상태를 체크하는 지점. 오류가 있는 데이터의 회복을 위해 사용하는 것

  • 소동기점: 하나의 대화 단위 내에서 데이터의 전달을 제어하는 역할. 수신측으로부터 확인신호(AOK)를 받지 않음
  • 대동기점: 전송하는 각 데이터의 처음과 끝에 사용하여 전송하는 데이터 단위를 대화 단위로 구성하는 역할을 하며, 수신측으로부터 반드시 전송한 데이터에 대한 확인신호를 받음. 

 

표현 계층

- 응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터는 응용 계층에 맞게 변환하는 기능을 함. 

- 서로 다른 데이터 표현 형태를 갖는 시스템 간의 상호 접속을 위해 필요한 계층. 

- 코드 변환, 데이터 암호화, 데이터 압축, 구문 검색, 정보 형식 변환, 문맥 관리 기능을 함. 

 

 

응용 계층

- 사용자가 OSI 환경에 접근할 수 있도록 서비스를 제공

- 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 등의 서비스를 제공. 

 

 

 

10.13 네트워크 관련 장비

 

네트워크 인터페이스 카드(NIC)

- 컴퓨터와 컴퓨터, 또는 컴퓨터와 네트워크를 연결하는 장치. 

- 정보 전송 시 정보가 케이블을 통해 전송될 수 있도록 정보 형태를 변경함. 

- 이더넷 카드(LAN카드) 혹은 네트워크 어댑터라고도 함. 

- 데이터 링크 계층 관련 장비. 

 

 

허브(Hub)

- 한 사무실이나 가까운 거리의 컴퓨터들을 연결하는 장치

- 각 회선을 통합적으로 관리하며, 신호 증폭 기능을 하는 리피터의 역할도 포함됨. 

- 허브의 종류: 더미 허브, 스위칭 허브 

- 더미 허브

  • 네트워크에 흐르는 모든 데이터를 단순히 연결하는 기능만을 제공. 
  • LAN이 보유한 대역폭컴퓨터 수만큼 나누어 제공
  • 네트워크에 연결된 각 노드의 물리적인 성형 구조로 연결함. 

- 스위칭 허브

  • 네트워크상에 흐르는 데이터의 유무 및 흐름을 제어하여 각각의 노드가 허브의 최대 대역폭을 사용할 수 있는 지능형 허브. 
  • 최근에 사용되는 허브는 대부분 스위칭 허브.

- 물리 계층 관련 장비.

 

 

리피터(Repeater)

- 전송되는 신호가 전송 선로의 특성 및 외부 충격 등의 요인으로 인해 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할을 수행. 

- 물리 계층에서 동작하는 장비

- 근접한 네트워크 사이에 신호를 전송하는 역할로, 전송 거리의 연장 또는 배선의 자유도를 높이기 위한 용도로 사용.

 

 

브리지(Bridge)

- LAN과 LAN을 연결하거나 LAN 안에서의 컴퓨터 그룹(세그먼트)를 연결하는 기능을 수행. 

- 데이터 링크 계층 중 MAC 계층에서 사용되므로 MAC 브리지라고도 함. 

- 네트워크 상의 단말기들에 의해 발생되는 트래픽 병목 현상을 줄일 수 있음

- 네트워크를 분산적으로 구성할 수 있어 보안성을 높일 수 있음

- 브리지를 이용한 서브넷 구성 시 전송 가능한 회선 수는 브리지가 n개일 때, n(n-1)/2 개.

 

 

스위치(Switch)

- LAN과 LAN을 연결하여 더 큰 LAN을 만드는 장치. 

- 하드웨어를 기반으로 처리하므로 전송 속도가 빠름

- 포트마다 각기 다른 전송 속도를 지원하도록 제어할 수 있고, 수십에서 수백개의 포트를 제공.

- 데이터 링크 계층에서 사용. 

- 스위치 분류

L2 스위치 - OSI 2계층에 속하는 장비. 
- 일반적으로 불리는 스위치는 L2 스위치를 의미. 
- MAC 주소(네트워크 어뎁터의 고유 번호)를 기반으로 프레임(패킷)을 전송
- 동일 네트워크 간의 연결만 가능
L3 스위치 - OSI 3계층에 속하는 장비. 
- L2 스위치에 라우터 기능이 추가된 것으로, IP 주소를 기반으로 패킷을 전송함. 
- 서로 다른 네트워크 간의 연결이 가능
L4 스위치 - OSI 4계층에 속하는 장비. 
- 로드밸런서(특정 서버에만 부하가 발생하지 않도록 트래픽을 분산시켜주는 장비)가 달린 L3 스위치로, IP 주소 및 TCP/UDP를 기반으로 사용자들의 요구를 서버의 부하가 적은 곳에 배분하는 로드밸런싱 기능을 제공
L7 스위치 - OSI 7계층에 속하는 장비. 
- IP 주소, TCP/UDP 포트 정보에 패킷 내용까지 참조하여 세밀하게 로드밸런싱.



라우터(Router)

- 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 최적 경로를 선택할 수 있는 기능이 추가된 것으로, 서로 다른 LAN이나 LAN과 WAN의 연결도 수행. 

- 네트워크 계층에서 동작하는 장비. 

- 접속 가능한 경로에 대한 정보를 라우팅 제어표에 저장하여 보관. 

- 네트워크 계층까지의 프로토콜 구조가 다른 네트워크 간의 연결을 위해 프로토콜 변환 기능을 수행. 



게이트웨이(Gateway)

- 전 계층의 프로토콜 구조가 다른 네트워크의 연결을 수행.

- 세션 계층, 표현 계층, 응용 계층 간을 연결하여 데이터 형식 변환, 주소 변환, 프로토콜 변환 등을 수행. 

- LAN에서 다른 네트워크에 데이터를 보내거나 다른 네트워크로부터 데이터를 받아들이는 출입구 역할. 

- 전송 계층에서 사용하는 장비. 



 

10.14 TCP/IP

 

TCP/IP의 개요

- 인터넷에 연결된 서로 다른 기종의 컴퓨터들이 데이터를 주고받을 수 있도록 하는 표준 프로토콜

- UNIX의 기본 프로토콜로 사용되었고, 현재 인터넷 범용 프로토콜로 사용됨. 

- TCP 프로토콜(Transmission Control Protocol)

  • 신뢰성 있는 연결형 서비스를 제공. 
  • 연결형 통신: 송수신 측 간을 논리적으로 연결한 후 데이터를 전송하는 방식으로 가상 회선 방식이 대표적. 데이터 전송의 안정성과 신뢰성이 보장되지만, 연결 설정 지연이 일어나며, 회선 이용률이 낮아질 수 있음. 
  • 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능을 제공. 
  • TCP 헤더에는 Source/Destinatiom Port Number, Sequence Number, Acknowledge Number, Header Length, Window Size, Urgent Pointer, Checksum 등이 포함.

- IP 프로토콜(Internet Protocol)

  • 데이터 그램을 기반으로 하는 비연결형 서비스를 제공. 
  • 연결형(비접속) 통신: 송수신측 간에 논리적 연결 없이 데이터를 독립적으로 전송하는 방식. 데이터 그램방식이 대표적.
  • 패킷의 분해/조립, 주소 지정, 경로 선택 기능을 제공. 
  • 헤더의 길이는 최소 20Byte에서 최대 60Byte.
  • IP 헤더에는 Version, Header Length, Total Packet Length, Header Checksum, Source IP address, Destination IP Address 등이 포함. 

 

프로토콜

-  프로토콜은 서로 다른 기기들 간의 데이터 교환을 원활하게 수행할 수 있도록 표준화시켜 놓은 통신 규약. 

- 프로토콜의 특징: 단편화, 재조립, 캡슐화, 연결 제어, 오류 제어, 동기화, 다중화, 주소 지정 등. 

- 프로토콜의 기본 요소

  • 구문: 전송하고자 하는 데이터의 형식, 부호화, 신호 레벨 등을 규정
  • 의미: 두 기기 간의 효율적이고 정확한 정보 전송을 위한 협조 사항오류 관리를 위한 제어 정보를 규정.
  • 시간: 두 기기 간의 통신 속도, 메시지의 순서 제어 등을 규정. 

 

TCP/IP의 구조

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



응용 계층의 주요 프로토콜

- FTP(File Transfer Protocol)

  • 컴퓨터와 컴퓨터, 또는 컴퓨터와 인터넷 사이에서 파일을 주고받을 수 있는 원격 파일 전송 프로토콜.

- SMTP (Simple Mail Transfer Protocol)

  • 전자 우편을 교환하는 서비스.

- TELNET

  • 멀리 떨어져 있는 컴퓨터에 접속하여 자신의 컴퓨터처럼 사용할 수 있도록 해주는 서비스.
  • 프로그램을 실행하는 등 시스템 관리 작업을 할 수 있는 가상의 터미널 기능을 수행. 

- SNMP (Simple Network Management Protocol)

  • TCP/IP의 네트워크 관리 프로토콜. 
  • 라우터나 허브 등 네트워크 기기의 네트워크 정보를 네트워크 관리 시스템에 보내는 데 사용되는 표준 통신 규약. 

- DNS (Domain Name System)

  • 도메인 네임을 IP 주소로 매핑하는 시스템. 

- HTTP (Hyper Text Transfer Protocol)

  • 월드 와이드 웹(WWW)에서 HTML 문서를 송수신 하기 위한 표준 프로토콜. 

 

전송 계층의 주요 프로토콜

- TCP(Transmission Control Protocol)

  • 양방향 연결형 서비스를 제공. 
  • 가상 회선 연결 형태의 서비스 제공. 
  • 스트림 위주의 전달(패킷 단위)을 함. 
  • 신뢰성 있는 경로를 확립하고 메시지 전송을 감독. 
  • 순서 제어, 오류 제어, 흐름 제어 기능을 함. 
  • 패킷의 분실, 손상, 지연이나 순서가 틀린 것이 발생할 때 투명성이 보장되는 통신을 제공. 
  • TCP를 사용하는 서비스: FTP, SMTP, TELNET, HTTP 등

- UDP(User Datagram Protocol)

  • 데이터 전송 전에 연결을 설정하지 않는 비연결형 서비스 제공. 
  • TCP에 비해 상대적으로 단순한 헤더 구조를 가지므로 오버헤드가 적다
  • 고속의 안정성 있는 전송 매체를 사용하여 빠른 속도를 필요로 하는 경우, 동시에 여러 사용자에게 데이터를 전달하는 경우, 정기적으로 반복해서 전송할 경우에 사용됨. 
  • 실시간 전송에 유리하며, 신뢰성 보다는 속도가 중요시 되는 네트워크에서 사용. 
  • UDP 헤더에는 Source Port Number, Destination Port Number, Length, Checksum 등이 포함.

- RTCP(Real-Time Control Protocol)

  • RTP 패킷의 전송 품질을 제어하기 위한 제어 프로토콜.
  • RTP(Real-Time Protocol): 멀티캐스트나 유니캐스트 등의 통신 서비스를 통하여 비디오와 오디오 스트림 또는 시뮬레이션 같은 실시간 특성을 가지는 데이터의 종단간 전송을 제공해주는 UDP 기반의 프로토콜. 
  • 세션에 참여한 각 참여자들에게 주기적으로 제어 정보를 전송. 
  • 하위 프로토콜은 데이터 패킷과 제어 패킷의 다중화를 제공. 
  • 데이터 전송을 모니터링하고 최소한의 제어와 인증 기능만을 제공. 
  • RTCP 패킷은 항상 32비트의 경계로 끝남. 

- TCP와 UDP 비교

  • TCP는 데이터 전송  시  수신 가능 상태, 수신 여부 등을 지속적으로 확인하기 때문에 신뢰성이 보장되어야하는 전송 작업에 적합
  • UDP는 데이터를 전송만 할 뿐 확인 과정을 거치지 않기 때문에 빠른 데이터 전송 작업에 적합. 
프로토콜  TCP UDP
연결성 연결형 서비스 비연결형 서비스
신뢰성 높음 낮음
속도 느림 빠름
패킷 교환 방식 가상 회선 방식 데이터그램 방식
수신(재전송) 수신함 수신 안함
통신 방식 1:1 1:1, 1:N, N:N
용도 신뢰성 요구 작업 실시간 전송 작업



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

- IP(Internet Protocol)

  • 전송할 데이터에 주소를 지정하고, 경로를 설정하는 기능.
  • 비연결형인 데이터그램 방식을 사용하는 것으로 신뢰성이 보장되지 않음.
  • IP의 비신뢰성: 패킷이 목적지에 성공적으로 도달하는 것을 보장하지 않음. IP는 최선의 서비스를 목적으로 하는 프로토콜로, 신뢰성에 대한 요구는 TCP와 같은 상위 계층에서 제공. 

- ICMP(Internet Control Message Protocol, 인터넷 제어 메시지)

  • IP와 조합하여 통신중에 발생하는 오류의 처리와 전송 경로 변경등을 위한 제어 메시지를 관리하는 역할. 
  • 헤더는 8Byte로 구성

- IGMP(Internet Group Management Protocol, 인터넷 그룹 관리)

  • 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹 유지를 위해 사용.

- ARP(Address Resolution Protocol, 주소 분석)

  • 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC address, 랜 카드 고유 번호)로 바꿈. 

- RARP(Reverse Address Resolution Protocol)

  • APR와 반대로 물리적 주소를 IP주소로 변환

 

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

- Ethernet(IEEE 802.3)

  • CSMA/CD 방식의 LAN

- IEEE 802

  • LAN을 위한 표준 프로토콜

- HDLC

  • 비트 위주의 데이터 링크 제어 프로토콜.

- X.25

  • 패킷 교환망을 통한 DTE와 DCE 간의 인터페이스를 제공하는 프로토콜

- RS-232C

  • 공중 전화 교환망(PSTN)을 통한 DTE와 DCE 간의 인터페이스를 제공하는 프로토콜



10.15 데이터 교환 방식 / 라우팅

 

회선 교환 방식

- 통신을 원하는 두 지점을 교환기를 이용하여 물리적으로 접속시키는 방식. 기존의 음성 대화망이 대표적. 

- 일단 접속이 이루어지면 접속을 해제할 때까지 전용선처럼 사용할 수 있음.

- 데이터 전송 전에 먼저 물리적 통신 회선을 통한 연결이 필요함. 

- 일단 접속이 되고 나면 그 통신 회선은 전용 회선에 의한 통신처럼 데이터가 전달됨. (고정 대역 전송)

- 회선이 접속되더라도 수신 측이 준비되어 있지 않으면 데이터 전송이 불가능함. 

- 데이터 전송에 필요한 전체 시간이 축적 교환 방식에 비해

- 접속된 두 지점이 회선을 독점하기 때문에 접속된 이외의 다른 단말기는 접속 지연을 가지게 됨. 

- 데이터가 전송되지 않는 동안에도 접속이 유지되기 때문에 데이터 전송이 연속적이지 않은 경우 통신 회선이 낭비됨. 

- 일정한 데이터 전송률을 제공하므로 동일한 전송 속도가 유지됨. 

- 전송된 데이터의 오류 제어나 흐름 제어는 사용자에 의해 수행됨. 

- 회선 교환 방식의 종류

  • 공간 분할 교환 방식(SDS): 기계식 접점과 전자 교환기의 전자식 접점 등을 이용하여 교환을 수행하는 방식. 음성 전화용 교환기
  • 시분할 교환 방식(TDS): 전자 부품이 갖는 고속성과 디지털 교환 기술을 이용하여 다수의 디지털 신호를 시분할적으로 동작시켜 다중화하는 방식

 

패킷 교환 방식

- 모든 사용자에게 빠른 응답 시간을 제공하기 위해 메시지를 일정한 길이의 패킷 단위로 분할하여 전송하는 방식 

- 패킷은 장애 발생 시의 재전송을 위해 패킷 교환기에 일시 저장되었다고 곧 전송되며, 전송이 끝난 후 폐기됨. 

- 패킷 교환망은 OSI 7계층 중 네트워크 계층에 속함. 

- X.25: 패킷형 터미널을 위한 DTE와 DCE 사이의 접속 규정

- X.75: 패킷망 상호 간의 접속을 위한 프로토콜.

- X.3: 공중 데이터 통신망에서 패킷의 분해, 조립(PAD: 비패킷형 단말기들을 패킷 교환망에 접속이 가능하도록 데이터를 패킷으로 조립하고, 수신측에서는 분해해주는 것)과 관련된 국제 표준화 기구의 권고안.

- 하나의 회선을 여러 사용자가 공유할 수 있으므로 회선 이용률이 높음

- 수신측에서 분할된 패킷을 재조립해야 함. 

- 응답 시간이 빠르므로 대화형 응용이 가능. 

- 통신량의 제어를 통한 망의 안정성을 높일 수 있음. 

- 전송 시 교환기, 회선 등에 장애가 발생하더라도 다른 정상적인 경로를 선택해서 우회할 수 있음. 

- 음성 전송 보다 데이터 전송이 더 적합

- 패킷 교환 방식의 종류

  • 가상 회선 방식: 단말 장치 상호 간에 논리적인 가상 통신 회선을 미리 설정하여 송신지와 수신지 사이의 연결을 확립한 후에 설정된 경로를 따라 패킷들을 순서적으로 운반하는 방식.
  • 데이터그램 방식: 연결 경로를 설정하지 않고 인접한 노드들의 트래픽(전송량) 상황을 감안하여 각각의 패킷들을 순서에 상관없이 독립적으로 운반하는 방식.

- X.25

  • DTE(데이터 터미널 장치)와 DCE(데이터 회선 종단 장치) 간의 인터페이스를 제공하는 프로토콜. 
  • 통신을 원하는 두 단말 장치가 패킷 교환망을 통해 패킷을 원활히 전달하기 위한 통신을 규정
  • ITU-T에서 제정한 국제 표준 프로토콜로, 우수한 호환성을 가짐. 
  • 강력한 오류 체크 기능으로 신뢰성이 높음. 
  • OSI 하위 계층인 물리 계층, 데이터 링크 계층, 네트워크 계층을 담당. 

- 프레임 릴레이

  • 기존의 X.25가 갖는 오버헤드를 제거하여 고속 데이터 통신에 적합하도록 개선한 프로토콜. 
  • 프레임 릴레이는 데이터 패킷과 제어 패킷이 다른 채널을 통하여 전송되도록 하고, 전체 계층을 두개로 구성함. 
  • 순서 제어, 저장 후 전송, 오류 복구 등의 처리 절차를 생략하는 등 데이터 처리 절차를 단순화함으로써 성능을 향상 시킴. 

 

라우팅(Routing, 경로 제어)의 개요

- 송수신 측 간의 전송 경로 중에서 최적 패킷 교환 경로를 결정하는 기능

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

- 라우팅은 경로 제어표(라우팅 테이블, 다음 홉 주소, 메트릭, 목적지 주소가 저장됨)를 참조해서 이루어지며, 라우터(하나의 도메인에 속하는 네트워크와 네트워크를 연결하고 데이터 전송의 최적 경로를 선택하는 기능을 하는 장치)에 의해 수행됨. 

- 라우팅의 요소: 성능 기준, 경로 결정 시간과 장소, 정보 발생지, 경로 정보의 갱신 시간 등. 

- 대표적인 라우팅 프로토콜

  • RIP(Routing Information Protocol): 현재 가장 널리 사용되는 라우팅 프로토콜. 소규모의 동종 네트워크(자율 시스템, AS) 내에서 효율적인 방법.
  • IGRP(Interior Gateway Routing Protocol): RIP 단점을 보완하기 위해 개발된 것. 네트워크 상태를 고려하여 라우팅. 중규모 네트워크에 적합.
  • OSPF(Open Shortest Path First Protocol): 대규모 네트워크에서 많이 사용되는 라우팅 프로토콜. 라우팅 정보에 변화가 생길 경우 변화된 정보만 네트워크 내의 모든 라우터에 알림.
  • BGF(Border Gateway Protocol): 자율 시스템(AS, 하나의 도메인에 속하는 라우터들의 집합) 간의 라우팅 프로토콜로 EGP(자율 시스템 간의 라우팅에 사용되는 프로토콜)의 단점을 보완하기 위해 개발됨.

 

라우팅 알고리즘

- 데이터가 송신 측에서 수신 측까지 전송되는 과정에서 많은 물리적 장치들을 거치게 되는데, 그 과정에서 목적지까지 도착하기 위한 최적의 경로를 산출하기 위한 것. 

- 거리 벡터 알고리즘

  • 인접해 있는 라우터 간의 거리와 방향에 대한 정보를 이용하여 최적의 경로를 찾고, 그 최적 경로를 이용할 수 없을 경우 다른 경로를 찾는 알고리즘. 
  • 대표적인 프로토콜: RIP, IGRP

- 링크 상태 알고리즘

  • 라우터와 라우터 간의 모든 경로를 파악하여 미리 대체 경로를 마련해 두는 알고리즘. 
  • 거리 벡터 알고리즘의 단점을 보완하기 위해 개발.
  • 대표적인 프로토콜: OSPF

 

라우팅 경로 확인

- Window: 명령 프롬프트 창에서 route print, tracert 명령어를 입력하여 라우팅 설정을 확인할 수 있음.

- LINUX: route 명령어를 입력한 후 라우팅 테이블을 통해 경로를 확인할 수 있음.