본문으로 건너뛰기

"정보처리" 태그로 연결된 23개 게시물개의 게시물이 있습니다.

모든 태그 보기

운영체제

· 약 51분
  • 사용자와 하드웨어 간의 인터페이스 제공

목적

  • 하드웨어를 효율적 사용하도록 성능 향상
  • UI 제공
  • 성능요소
    • 처리율
    • 응답시간
    • 사용가능도
    • 신뢰도

제어프로그램

  • 감시 프로그램
  • 데이터 관리 프로그램
  • 작업 제어 프로그램

처리 프로그램

  • 언어번역 프로그램
  • 서비스 프로그램
  • 문제 프로그램

구성 요소

  • 프로세스 관리
  • 주기억장치 관리
  • 보조기억장치 관리
  • 입출력 관리
  • 파일 관리

프로세스 기능

  • 생성 및 소멸
  • 동기화
  • 일시중지 및 재실행
  • 프로세스 간 통신
  • 보호 시스템
  • 네트워크 관리
  • 명령해석 시스템

종류

  • 일괄처리 시스템
  • 실시간 시스템
  • 시분할 시스템
  • 다중 프로그램 시스템: 여러 개의 프로갦이 동시에 실행되는 것처럼 처리하는 방식
  • 다중 처리 시스템: 동시에 프로그램을 수행할 수 있는 CPU를 여러 개 두고 각각 분담하여 처리하는 방식
  • 분산처리 시스템
  • 결함허용 시스템: 시스템 일부가 고장나더라도 전체 시스템은 계속 가동할 수 있는 시스템

발달 과정

  • 50년대: 일괄 처리 시스템
  • 60년대: 다중 프로그래밍, 멀티 프로그래밍, 시분할, 실시간 처리 시스템
  • 70년대: 멀티모드 시분할 시스템
  • 80년대: 병렬 프로그램 실행, 펌웨어
  • 90년대: GUI
  • 00년대: 64bit

입출력장치 발전추세

프로그램에 의한 입출력

  • CPU에서 실행되는 프로그램에 의해 입출력을 직접 제어
  • CPU는 입출력장치에 명령을 보낸 후 동작이 완료될 때까지 대기
  • CPU는 주기적으로 주변장치의 상태를 반복적으로 검사하는 폴링 방식
  • 자원낭비가 발생

인터럽트 처리에 의한 입출력

  • 입출력 인터페이스가 주변장치의 상태를 검사하여 준비상태가 되면 인터럽트 신호 발생
  • 프로그램 상태를 스택에 저장한 후 문맥교환 과정을 통해 인터럽트 서비스 프로그램을 수행
  • 주변장치에 명령을 보낸 후 결과가 올 때까지 CPU는 다른 작업을 수행할 수 있어 효율이 높다.

DMA

  • 직접 메모리 접근 입출력
  • CPU는 상태정보, 제어정보만을 교환하게 하고 데이터 전송은 주변장치와 기억장치 간에 직접 교환하게 하는 방식
  • 시스템 버스상에 모듈이 하나 추가되어야 한다.
  • CPU를 통하지 않고 한 번에 한 단어씩 직접 기억장치로부터 모든 데이터 블록을 전송한다.
  • 전송이 완료되면 DMA모듈은 CPU에게 인터럽트 신호를 보내고 CPU는 전송의 시작과 끝 부분에만 관여한다.
  • 사이클 스틸링: 버스를 사용하기 위해 CPU의 동작을 일시적으로 중단시키는 기법

채널

  • DMA 개념을 확장하여 구현한 입출력만을 위한 전용 처리장치
  • CPU처럼 독자적으로 주기억장치에 저장된 명령어를 처리할 수 있는 프로세스

종류

  • 선택 채널: 채널 하나를 하나의 입출력장치가 독점해서 사용하는 방식
  • 멀티플렉서 채널: 한 채널에 여러 개의 입출력장치를 연결하여 시분할 공유방식으로 입출력하는 저속 입출력 방식
  • 블록 멀티플렉서 채널: 셀렉터 채널과 멀티플렉서 채널 방식을 결합한 방식

기억장치 인터리빙

  • 인접한 메모리 위치를 서로 다른 뱅크에 둠으로 동시에 여러 곳에 접근할 수 있게 한다.
  • 주기억장치의 구조적 개선으로 접근속도를 개선시키는 방법
  • MAR과 MBR을 연결한 것을 기억모듈이라고 한다.
  • 블록단위 전송이 가능하므로 DMA에서 많이 사용한다.

재배치 레지스터

  • 수행 중인 프로그램을 다른 곳으로 옮길 수 있도록 하는 레지스터
  • 주기억장치 내 프로그램의 기준 주소가 이 레지스터에 기억된다.
  • 기준 레지스터 = 재배치 레지스터

폴링

  • CPU가 특정 이벤트를 처리하기 위해 그 이벤트가 발생할 때까지 모든 연산을 모니터링하는데 쓴다.
  • 단일 이벤트에 대해서는 유용하지만 프로그램이 길어지게 되면 그만큼 CPU 자원을 낭비하게 된다.

버퍼링

  • 속도 차를 줄이기 위해 중간에서 데이터를 일시적으로 기억장소에 축적하는 방법
  • CPU와 저속 입출력장치의 작동속도를 조정한다.

단일 버퍼링

  • 주기억장치 일부를 버퍼로 사용한다.
  • 버퍼가 채워지거나 비워지는 동안 CPU는 다른 작업을 할 수 없다.

이중 버퍼링

  • 2개의 버퍼를 이용해 단일 버퍼링의 단점을 보완하고 입출력과 CPU의 처리성능을 높이는 방법
  • 입출력작업과 처리작업을 동시에 처리할 수 있다.

환형 버퍼링

  • 여러 개의 버퍼를 원형으로 구성하여 수행하는 방식
  • CPU와 채널은 동시에 버퍼를 채우거나 비우는 일을 독립적으로 수행한다.
  • 버퍼의 생산과 소비를 위해 버퍼의 수를 결정하는 게 성능에 매우 중요하다. (환형이기에)

보조기억장치

  • SASD: 순차 기억장치 => 테이프
  • DASD: 직접 접근 기억장치 => 나머지

광디스크

  • CD-ROM: 650MB
  • DVD: 4.7~17GB
  • WORM Disk: write once read memory => CD-R

디스크 용어

  • 트랙: 디스크의 회전축을 중심으로 만들어진 동심원
  • 섹터: 트랙을 몇 개의 부채꼴 모양으로 나눈 구간
  • 실린더: 디스크의 중심축으로부터 동일선상에 위치한 동일 트랙들의 모임
  • 클러스터: 여러 개의 섹터를 하나로 묶은 단위, 하드디스크에서 데이터를 저장하기 위한 기본 단위
  • 파일할당 테이블: 디스크에 저장되어 있는 각각의 파일들에 대한 정보를 저장한 테이블
  • TPI: Track per Inch, 1인치 당 트랙의 수

보조기억장치 속도

  • 레지스터 > 캐시 > 주기억장치 > 보조기억장치
  • 자기드럼 > 하드디스크 > 광디스크 > 플로피디스크 > 자기테이프

입출력 채널

  • IOP: Input Output Processor
  • 입출력작업이 끝나면 CPU에게 인터럽트로 알려주며 입출력장치와 주기억장치 간의 속도 차이를 해결

채널의 기능

  • 입출력 명령 해독
  • 각각의 입출력장치에 명령 지시
  • 지시된 입출력 명령의 실행을 제어

채널의 종류

셀렉터 채널

  • 고속 입출력장치에 적합한 채널
  • 입출력장치를 1:1로 전담
  • 블록 단위 전송

멀티플렉서 채널

  • 저속의 입출력장치 여러 개를 동시에 제어하는 채널
  • 바이트 단위의 전송

블록 멀티플렉서 채널

  • 여러 대의 고속 입출력장치를 블록단위로 처리

DMA

사이클 스틸링

  • CPU가 메모리에서 명령어를 fetch하여 execute cycle 중에 있을 때 CPU가 메모리를 사용하지 않는 시간을 이용해 DMA를 행한다.
  • 상태보존을 하지 않는다.

폴링은 주변장치의 상태보존을 하지 않음, 프로그램 제어하의 직접 입출력 방식

주소 지정방식

  • 묵시적
  • 즉시 주소 지정: 데이터가 명령어에 바로 있음
  • 레지스터 주조 지정: 오퍼랜드가 메인 메모리의 주소가 아닌 레지스터를 참조
  • 직접 주소 지정: 오퍼랜드에 실제 주소
  • 레지스터 간접 주소 지정: 메모리 위치가 기억된 레지스터를 참조
  • 인덱스 주소 지정: 오퍼랜드와 인덱스 레지스터의 내용이 더해져 유효번지가 결정
  • 베이스 레지스터 주소 지정: 오퍼랜드와 베이스 레지스터 내용이 더해져 유효번지가 결정
  • 상대 주소 지정: 오퍼랜드와 프로그램 카운터가 더해져 유효번지 결정
  • 간접 주소 지정: 오퍼랜드가 메모리 내의 주소를 참조하여 유효번지를 계산해 메모리에 접근, 2번 메모리 참조

가상 기억장치

  • 보조기억장치의 일부분을 주기억장치처럼 사용하는 것
  • 매핑이 필요하다.

가상기억장치 구현방법

페이징

  • 내부단편화 발생 가능

세그먼테이션

  • 논리적 단위
  • 기억장치 보호키 필요
  • 외부단편화 발생 가능

스풀링

  • 입출력할 데이터를 직접 I/O 장치로 보내지 않고 디스크에 모았다가 한꺼번에 입출력을 처리하는 방식
  • CPU와 입출력장치의 처리속도 차이에서 오는 대기 시간을 줄이기 위해 고안
  • 버퍼와 비슷한 개념

컴파일러

  • 고급 언어 프로그램을 목적프로그램으로 번역한 후 링킹작업을 통해 컴퓨터에서 실행 가능한 실행프로그램을 생성

인터프리터

  • 고급 언어 프로그램을 한 줄 단위로 받아들여 번역하고 번역과 동시에 프로그램을 한 줄 단위로 즉시 실행시키는 프로그램
  • 컴파일러에 비해 느리다.

절대로더

  • 번역된 목적프로그램을 입력으로 받아들인 간단한 로더
  • 기억장소 할당이나 연결을 사용자가 직업 지정
  • 프로그래머가 절대 주소를 기억해야 한다.
  • 다중 프로그래밍 방식에서 사용할 수 없음
  • 소규모
  • 모듈, 라이브러리 사용 불가

재배치 로더

  • 주기억장치의 상태에 따라 재배치 가능한 목적프로그램을 주기억장치의 임의 공간에 적재할 수 있도록 하는 로더

링킹 로더

  • 프로그램 적재 시에 필요한 프로그램들을 결합하여 2진 프로그램 이미지를 주기억장치에 적재

객체지향 운영체재

  • OOOS
  • 운영체재 개발에 객체지향 프로그래밍 적용
  • 객체: 모든 프로시저와 데이터를 묶어놓은 추상적 존재

펌웨어

  • 마이크로 명령어로 작성된 프로그램
  • 기계어 하부에 프로그래밍층을 형성

에뮬레이션

  • 일종의 한 하드웨어 시스템에 부가장치를 부착하여 다른 하드웨어를 모방하는 것
  • 하나의 컴퓨터가 다른 컴퓨터와 똑같이 행동하도록 만들어진 마이크로프로그래밍의 소프트웨어를 이용하는 기법

마이크로 다이어그노스틱스

  • 시스템의 고장진단을 마이크로 프로그래밍에 의해 수행하는 것

마이크로 커널

  • 운영체제의 커널 중에서 가장 기본적이고 핵심적인 기능만을 수행하는 부분만을 따로 구성한 모듈
  • 높은 수준의 모듈화 제공

바인딩

  • 프로그램 내에서 변수 등을 실제 값으로 배정하는 것
  • 명령문과 데이터를 주기억장치에 특정 위치로 옮기는 것

기억장치 구성

단일 프로그래밍 시스템

  • 주기억장치는 운영체제가 상주할 영역과 현재 수행될 사용자 프로그램이 적재될 영역으로 나뉜다.

다중 프로그래밍 시스템

  • 여러 개의 프로세스를 처리
  • 주기억장치 관리 기법이 필요하다.

연속 적재 방법

  • 연속된 공간에 할당

분산 적재 방법

  • 필요한 부분만 주기억장치에 적재하는 방법
  • 페이지나 세그먼트로 구성

단일 사용자 연속기억장치 할당

  • 주기억장치에 항상 한 프로그램만 적재된 가장 단순한 기법

상주모니터

  • CPU의 유휴시간을 극복하기 위해 작업의 묶음들을 자동으로 처리할 수 있는 운영체제
  • 한 프로그램에서 다른 프로그램으로 제어가 자동적으로 넘어가도록 하기 위해 기억장치에 상주
  • 입출력 시간동안 CPU는 유휴상태
  • 사용자 공간보다 큰 프로그램은 실행이 불가능

오버레이 기법

  • 주기억 장치 용량보다 더 큰 프로그램을 분할해 그 분할 된 프로그램을 순차적으로 같은 영역에 적재해 실행하는 방법
  • 디스크에 프로그램을 유지하고 운영체제에 의해 기억장치로 교체시키는 방법
  • 프로그램을 여러 개의 분할된 조각으로 나누는 일은 프로그래머가 담당

교체 기법

  • swipping
  • 충분하지 못한 주기억장치를 가진 시스템에서 여러 개의 프로그램이 하나의 메모리에서 실행될 수 있도록 하기 위해 사용하는 기법
  • swap out: 보조기억장치로 이동
  • swap in: 주기억장치로 이동
  • 오버레이 기능이 없으면 기억공간보다 작은 프로그램만 실행 가능

내부 단편화

  • 하나의 분할에 작업을 할당하고 남은 공간

외부 단편화

  • 대기 중인 작업보다 분할영역이 너무 적어 분할 전체가 빈 공간이 될 때

기억장치 통합

  • 인접된 공간을 하나의 공간으로 만드는 것

기억장치 집약

  • 여러 개의 기억공간들을 하나의 큰 기억공간으로 만드는 것

기억장치 배치 기법

  • 최적 적합
  • 최초 적합
  • 최악 적합

블록 사상

  • 가상기억장치 내의 작업을 블록단위로 사상하는 것

페이징 기법

직접사상

  • 페이지 사상테이블의 시작점 레지스터에 페이지 번호를 더해 주기억장치에서 그 페이지 시작주소를 구한 다음 변위를 더함으로 실주소를 계산한다.
  • 프로세스의 가상기억장치를 구성하는 모든 페이지에 대한 항목은 페이지 테이블에 존재

연관사상

  • 빠른 주소변환을 위해 고속의 연관기억장치를 이용해 페이지 사상표 전체를 넣는 방법

연관/직접사상

  • 연관기억장치에는 페이지 사상테이블 중 지역성 있는 페이지를 넣고, 나머지는 직접사상

세그먼테이션 기법

  • 가상주소를 분할형태가 일정한 배열이나 함수와 같은 논리적인 다양한 크기의 가변 단위로 주기억장치의 연속적인 공간에 적재하는 방법
  • 외부단편화 발생 가능
  • 순수 세그먼테이션 기법에서 가상주소 양식: 세그먼테이션 번호, 변위, 가상 주소
  • 세그먼 테이블 사상테이블 형식: R, W, E(xecute), A(append)

페이징/세그먼테이션 혼용

  • 세그먼트를 페이지화 하는 것
  • 가상주소형식이 3차원 요소로 구성: V = (s, p, d)
  • 세그먼트 번호, 페이지 번호, 변위
  • 세그먼트의 사상테이블의 항이 세그먼트 주소를 가지고 있지 않고 페이지 사상테이블의 기준주소를 가지고 있다.

페이지 사상테이블 항목

  • 페이지 존재 비트
  • 보조 기억장치 주소
  • 페이지 프레임 번호

페이지 호출 기법

요구 페이지 호출기법

  • 수행 중인 프로세스에 의해 호출된 페이지나 세그먼트를 주기억장치로 옮기는 전략
  • 호출된 페이지는 실제로 참조되는 페이지
  • 페이지를 할당받기 위해 대기시간이 길다.

예상 페이지 호출기법

  • 프로세스에 의해 요청될 페이지나 세그먼트를 미리 예측하여 프로세스가 요구하기 전에 주기억장치로 적재시키는 전략
  • 예측 결정이 올바라야 실행시간이 감소한다.

페이지 교체 기법

OPT

  • 최적 교체
  • 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법
  • 실현 가능성이 없다.

무작위 페이지 교체

  • 무작위로 교체
  • 오버헤드가 적다.

FIFO

LRU

  • Least Recently Used
  • 최근에 가장 오랫동안 사용하지 않은 페이지를 교체
  • 계수기나 스택을 두어 계산한다.
  • 스택 알고리즘

LFU

  • Least Frequently Used
  • 사용빈도가 가장 적은 페이지를 교체하는 기법
  • 프로그램 실행 초기에 많이 사용된 페이지가 나중에도 프레임을 계속 차지할 수 있다.

NUR

  • Not Used Recently
  • 최근에 사용하지 않은 페이지를 교체하는 기법
  • 각 페이지마다 참조 비트와 변형 비트를 사용

클록 페이지 교체

  • 원형 리스트를 사용해 페이지를 배열시켜 놓고 리스트의 포인터가 시계바늘이 돌아가는 것처럼 그 원형 리스트로 돌아가게 되는 것

SCR

  • 2차 기회 페이지 교체
  • 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것
  • FIFO 기법의 단점을 보완한 기법
  • Second Chance 기법
  • 각 페이지마다 참조 비트를 두고 1일 경우 참조 비트를 0으로 바꿔 FIFO 리스트의 맨 마지막으로 이동시킨다.

시간 국부성

  • 참조되는 기억장소가 가까운 미래에 계속 참조될 수 있다.
  • 반복, 서부루틴, 스택, 계산, 집계

공간 국부성

  • 하나의 기억장소가 참조되면 그 근처의 기억장소가 계속 참조될 수 있다.
  • 배열 순회, 순차적 실행, 변수 집합

워킹 세트

  • 지역성(국부성)을 이용해 페이지 부재율을 감소시키기 위한 개념
  • 일정 시간 동안 자주 참조하는 페이지의 집합

스레싱

  • 페이지 부재가 비정상적으로 많이 발생하여 프로그램이 처리보다 페이지 교체에 많은 시간을 소비함으로 시스템 처리량이 급격히 저하되는 현상

페이지 부재

  • 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상

페이지 크기

작을 경우

  • 효과적인 워킹세트 확보
  • 사상 테이블 크기 증가
  • 기억공간 낭비
  • 기억장치 효율을 좋다.

클 경우

  • 페이지 부재 수 최소화
  • 페이지 단편화 현상 초래
  • 사상 테이블 크기 감소
  • 입출력 효율 증가

요구 페이징 기법

  • 페이지의 요구가 있을 때 주기억장치에 적재하는 기법
  • 유효 또는 무효를 나타내는 비트가 페이지 사상테이블의 각 항목에 추가된다.

전역 교체

  • 프로세스가 교체할 프레임을 그 프레임이 현재 다른 프로세스에 할당되어 있어도 그에 상관없이 전체 프레임 중에서 하나를 선택하여 그 프레임을 사용할 수 있도록 해준다.
  • 한 프로세스에 할당된 프레임 수는 증가한다.
  • 자신의 페이지 부재율을 조정할 수 없다.

지역 교체

  • 각 프로세스가 그 프로세스에 할당된 프레임 중에서 하나를 선택해서 그 프레임을 사용할 수 있도록 해준다.
  • 프로세스에 할당된 프레임 수는 변하지 않는다.

프로세스

  • PCB를 가진 프로그램
  • 실기억장치에 저장된 프로그램
  • 프로시저가 활동 중인 실체
  • 비동기적 행위를 일으키는 주체
  • 운영체제가 관리하는 실행 단위

프로세스 스케줄러

  • 둘 이상의 프로세스가 적절히 실행될 수 있도록 컨트롤 한다.

작업 스케줄러

  • 작업의 운선순위, 리소스의 할당 등을 판단해 처리율을 높이는 작업을 한다.

프로세스 상태

  • 제출상태: submit
  • 보류상태: hold, 스풀러에 의해 디스크에 수록되어 있는 상태
  • 준비상태: ready, CPU가 사용가능한 상태, 처리를 기다리고 있는 상태
  • 실행상태: running, 프로세스를 수행 중
  • 대기상태: blocked, 입출력 처리가 끝날 때 까지 대기 큐에서 대기하는 상태
  • 완료상태: complete

프로세스 관리 모듈

  • 스풀러: 제출된 작업을 디스크에 수록하여 보류상태로 변환
  • 작업스케줄러: 보류 상태 작업들 중 실행될 작업을 선정
  • 프로세스 스케줄러: 여러 프로세스 중에서 실행될 프로세스를 선정
  • 트래픽 제어기: 모든 프로세스의 상태를 파악하고 프로세스 관리 및 상태변환을 수행하며 프로세스 간의 통신과 동기화를 조정

프로세스 제어 블록

  • PCB
  • 프로세스 생성시 만들어지며 모든 프로세스는 각기 고유의 PCB를 가진다.
  • 프로세스 식별자
  • 프로그램 카운터
  • 우선순위
  • 처리기 레지스터
  • 기억장치 관리정보
  • 입출력 정보
  • CPU 사용 시간, 시간 범위, 계정번호, 작업 번호 등

스레드

  • 프로세스는 스레드를 담는 공간
  • 실행점이 여러개
  • CPU가 하나인 시스템에서 병행실행 가능

스케줄러

장기 스케줄러

  • 작업 스케줄러
  • 디스크공간에 제출된 프로세스들을 선택하여 주기억장치로 적재하며 실행 빈도수가 적어 장기 스케줄링
  • 프로세스가 종료되어 시스템을 떠날 때만 새로운 프로세스를 생성하기 위해 호출

단기 스케줄러

  • CPU 스케줄러, 디스패쳐
  • 실행되어 있는 프로세스 중에서 한 프로세스를 선택하여 CPU를 할당

중기 스케줄러

  • CPU를 경쟁하는 프로세스들의 수를 줄여서 다중 프로그래밍의 정도를 완하하는 것

선점 스케줄링

  • 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 자신이 CPU를 차지할 수 있는 기법
  • SRT, RR, 선점 우선순위, 다단계 큐, 다단계 피드백 큐
  • 시분할 시스템에 유용

비선점 스케줄링

  • 한 프로세스가 CPU를 할당 받으면 다른 프로세스는 CPU를 점유하지 못하는 기법
  • 우선순위, FIFO, SJF, HRN, 기한부 알고리즘
  • 모든 프로세스에 공정하고 응답시간이 예측 가능

스케줄링 알고리즘

기한부 스케줄링

  • 처리기 할당시간을 제한하여 작업 할당시간안에 반드시 종료되도록 하는 기법

우선순위 스케줄링 알고리즘

  • 우선순위가 높은 것에 먼저 CPU를 할당하는 방식
  • FIFO 원리
  • 기아현상 발생을 방지하기위해 우선순위를 높이는 에이징 기법이 있다.

FCFS

SJF

  • Shortest Job First
  • 작업 수행시간이 가장 짧다고 판단되는 것을 먼저 수행

SRT

  • 비선점 스케줄링인 SJF를 선점형태로 변경한 기법
  • Short Remaining Time
  • 가장 짧은 시간이 소요된다고 판단되는 프로세스를 먼저 수행
  • 더 짧다고 판단되는 프로세스가 큐에 들어오면 언제라도 선점된다.
  • 시분할 시스템에 유용

RR

  • 각 프로세스는 같은 크기의 CPU 시간을 할당받는다.
  • 시분할 방식에 효과적이다.
  • 할당시간이 크면 FCFS와 같고, 작은면 문맥교환 및 오버헤드가 자주 발생한다.

HRN

  • Highest Response Ratio Next
  • 실행시간이 긴 프로세스에 불리한 SJF 기법을 보완하기 위한 것
  • 대기시간과 서비스 시간을 사용한다.
  • 우선순위 = (대기시간 + 서비스시간) / 서비스 시간

FSS

  • Fair Share Scheduling
  • 프로세스들 집합 간에 프로세스의 스케줄링을 지원하며 UNIX 환경에서 서로 관계있는 사용자들에게 한정된 비용으로 시스템 자원을 사용할 수 있게 개발
  • 사용자들은 그룹 짓는데 우선순위 RR 프로세스 스케줄러를 사용한다.

다단계 피드백 큐 스케줄링

  • Multi-level Feedback Queue Scheduling
  • 여러 개의 큐를 두고 시간이 지나면 우선순위가 떨어지는 큐로 밀려나게 하는 것과 같이 실행시간이 긴 작업에 벌칙을 주는 방식
  • 각 큐의 CPU 할당시간을 정할 수 있어 적응력이 커진다.

병행 프로세스

  • concurrent process
  • 두 개 이상의 프로세스들이 동시에 존재하며 실행상태에 있는 것

우선순위 그래프

  • precedence graph
  • 각 노드가 개개의 문에 대응하는 방향성 비순환 그래프
  • 어떤 연산의 일부분이 가지는 우선순위 제약조건을 정의하는데 유용하다.
  • 프로그래밍 언어에서는 사용이 곤란하다.

Fork/join

  • 최초로 병행 프로그램을 언어적으로 표현
  • Fork: 단일 연산을 2개의 독립적인 연산으로 분할시키는 방법
  • Join: 병행하는 2개의 연산을 하나로 재결합시키는 방법

병행문

  • parbegin/parend 표현방법을 사용하는 기법
  • 1개의 프로세스가 여러 가닥의 병렬 프로세스로 분할되었다가 다시 한 가닥의 프로세스로 결합하는 것

Master/Slave

  • Master는 연산 + 입출력
  • Slave 연산

약결합 시스템

  • 각 프로세스마다 독립된 메로리를 가진 시스템
  • 분산 처리 시스템
  • 각 시스템마다 독립적인 운영체제
  • 프로세스 간의 통신은 메세지 전달이나 원격 프로시저 호출을 통해 이뤄진다.

강결합 시스템

  • 여러 개의 프로세스가 하나의 메모리를 공유하여 사용하는 시스템
  • 다중처리 시스템
  • 하나의 운영체제가 모든 프로세스와 시스템 하드웨어를 제어
  • 프로세스 간의 통신은 공유메모리를 통해서 이뤄진다.

대칭 다중처리 구조

  • 모든 프로세스가 동등한 입장의 대칭성을 가지고 있으며 구현 및 수해이 매우 복잡한 형태의 가장 강력한 시스템
  • 한 운영체제를 동시에 수행할 수 있게 재진입 코드와 상호배제가 필요하다.

비동기 병행 프로세스

  • 독립적 프로세스: 시스템에서 실행 중인 다른 프로세스에 영향을 받지 않고 주지도 않는 프로세스
  • 유기적 프로세스: 프로세스가 가지는 동일한 입력에 대해 반드시 동일한 결과를 갖지는 않는다.

동기화 기법

  • Synchronization
  • 두 개 이상의 프로세스를 한 시점에 동시에 처리할 수 없으므로 각 프로세스에 대한 처리 순서를 결정하는 상호배제의 한 형태
  • 세마포어와 모니터 기법이 있다.

상호 배제

  • 공유자원을 어느 시점에서 단지 한 개의 프로세스만이 사용할 수 있도록 하며 다른 프로세스가 공유자원에 대해 접근하지 못하게 하는 기법

임계구역

  • Critical Section
  • 다중 프로그래밍 운영체제에서 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점에서 하나의 프로세스 자원 또는 데이터를 사용하도록 지정된 공유 자원을 의미하며 이를 보호구역이라 한다.

Test and set

  • 동시성을 제어하기 위한 동기화 명령어 중 하나로 하드웨어의 도움을 받아 수행
  • 함수 조건을 비교할 때엔 한 프로세스가 점령을 하면 다른 프로세스가 개입을 할 수 없도록 선점해서 사용하는 개념
  • 상호배제를 하는 기법

세마포어

  • semaphore
  • 다익스트라가 제안
  • P와 V라는 2개의 연산에 의해 동기화를 유지
  • 상호배제 원리 보장

시간종속 오류

  • 프로세스들이 임의적으로 변수들을 공유할 때 발생하며 어떤 특정 순서로 실행이 될 때만 발생
  • 프로세스가 자원에 대한 접근허가를 얻지 않고 그 자원을 연산하는 경우
  • 프로세스가 자원 접근을 허용받고 나서 그 자원을 결코 해제하니 않는 경우
  • 프로세스가 요청하지 않은 자원을 해제하는 경우
  • 프로세스가 동일한 자원을 반복해서 요청하는 경우

생산자 소비사 문제

  • 여러 개의 프로세스를 어떻게 동기화할 것인가에 대한 고전적인 문제
  • 한정 버퍼 문제, Bounded-Buffer Problem
  • 생산자는 데이터를 인덱스를 통해 배열에 저장하는 식으로 데이터를 생성하며 소비자는 데이터를 증가시키며 배열에 있는 데이터를 인덱스로 접근하여 소비

판독기/기록기 문제

  • 다수의 프로세스가 하나의 데이터 객체를 공유하는 경우 한쪽 프로세스는 판독을 하려하고 다른 한쪽 프로세스는 기록을 하려고 할 때 발생하는 문제
  • 기록기가 공유객체에 배타적 접근을 하도록 하는 것

병행 프로그래밍 언어

  • Ada: 구조화되고 통계학적 형태를 가지고 명령적, 객체지향적인 고급수준의 컴퓨터 프로그래밍 언어
  • CSP: 처음으로 병행시스템에서 상호작용 패턴을 표현하는 언어

프로세스 간의 통신

  • 직접통신
  • 간접통신: 메일 박스를 통해 메세지를 보내거나 받는다, 단방향 양방향 모두 가능

교착상태

필수조건

  • 상호배제 조건: 자원은 한 번에 한 프로세스만 사용해야 한다.
  • 점유와 대기 조건: 각 프로세스가 이미 자신에게 할당된 자원을 갖고 있으면서 다른 자원을 더 요구하고 있다.
  • 비중단 조건: 프로세스에 할당된 자원은 스스로 반납하기 전에는 빼앗지 못한다.
  • 환형대기 조건: 프로세스 간 환형사슬이 존재하여 각 프로세스는 다음 프로세스가 요구하는 자원을 가지고 있다.

자원할당 그래프

  • 프로세스와 자원 간의 관계를 나타내는 그래프를 의미한다.

교착상태 확인방법

  • 자원할당 그래프의 사이클이 존재하는지 확인한다.
  • 사이클이 지원 유형에 하나라도 있으면 교착상태다.

교착상태 회피

  • 프로세스 시작 거부
  • 자원할당 거부: 은행원 알고리즘

교착상태 탐지

교착상태 복구

디스크 접근 시간

  • Access Time = Seek Time + Rotational Latency + Transfer time
  • 탐색시간: 헤드를 적정 트랙으로 이동하는데 걸리는 시간
  • 회전지연시간: 데이터가 현재 위치에서 디스크 헤드까지 회전하는 데 소요되는 시간
  • 전송시간: 실제 바이트가 이동하는데 소요되는 시간

디스크 스케줄링

FCFS

SSTF

  • Shortest Seek Time First
  • 탐색거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스하는 기법
  • 일괄 처리 시스템에 유용
  • 대화형 시스템에는 부적합

SCAN

  • SSTF가 갖는 탐색시간의 편차를 해소하기 위한 방법
  • 현재 진행 중인 방향으로 가장 짧은 탐색거리에 있는 요청을 먼저 서비스
  • Denning이 개발
  • 대부분의 디스크 스케줄링에서 기본 전략
  • 진행하면서 들어온 요청도 처리
  • 오버헤드가 작을 경우 가장 효율적

N-step SCAN

  • 진행하면서 들어온 요청은 따로 모아 반대방향 진행 때 처리

C-SCAN

  • 항상 바깥쪽에서 안쪽으로 움직이면서 가장 짧은 탐색거리를 갖는 요청을 서비스
  • 안쪽 끝까지 이동하면 가장 바깥쪽 끝으로 이동하고 다시 안쪽으로 들어온다.

C-LOOK

  • 안쪽 끝까지 이동 후에 가장 바깥쪽 요청 트랙으로 이동한다.

SLTF

  • Shortest Latency Time First
  • 섹터 큐잉
  • 회전 시간의 최적화를 위해 디스크 대기 큐에 있는 여러 요청을 섹터 위치에 따라 재정렬하고 가장 가까운 섹터를 먼저 서비스

RAM 디스크

  • 빠른 속도로 자료를 처리할 필요가 있을 때 주기억장치인 RAM의 일부를 보조기억장치인 디스크처럼 사용하는 것

블로킹

  • 레코드의 입출력 효율을 높이기 위해 여러 개의 논리 레코드를 하나의 블록으로 묶는 것

버퍼링

  • 주기억장치의 일부에 큐 방식으로 동작하는 버퍼
  • 하나의 프로그램에서 CPU 연산과 I/O 연산을 중첩시켜 처리하는 방식

파일 구조

순차 파일

  • 물리적 순서에 따라 저장

인덱스 순차파일

  • 레코드를 키에 따라서 논리적 순서대로 저장하고 시스템은 각 레코드의 실제 주소가 저장된 색인을 관리
  • 디스크에 적용되는 방식, 테이프 사용 불가

인덱스 순차파일 구성

  • Prime
  • Index
    • 마스터
    • 실린더
    • 트랙
  • Overflow

직접 파일

  • 물리적 주소를 통해 직접 액세스되는 파일
  • 해싱 함수를 이용해 물리적 상대주소를 계산한 후 해당주소에 레코드를 저장
  • DASD의 물리적 주소를 통해 파일의 각 레코드에 직접접근이 가능하여 접근 및 기록의 순서에 제약이 없다.

파일 접근방식

  • queued access method: 레코드 순서를 미리 예상 가능할 때 사용
  • basic access method: 물리적 블록의 RW는 액세스 방식이 담당하고 블로킹 및 해체는 사용자가 담당한다.

디스크 공간할당

연속할당

  • 집약 작업이 필요하다.
  • 단편화가 발생할 수 있다.

불연속할당

섹터지향 할당

  • 동일한 파일에 속하는 섹터들을 연결리스트로 구성하여 할당하는 방식
  • 논리적 연결을 탐색하는데 오랜 시간이 필요하고 포인터를 저장할 공간이 필요하다.

블록할당

  • 파일에 액세스할 때 해당 블록을 결정한 후 해당 섹터를 결정해야하는 기법
  • 블록체인 기법
  • 인덱스 블록체인 기법
  • 블록지향 파일사상기법: 포인터 대신 FAT(할당 테이블)에 있는 블록번호를 사용하는 기법

파일 서술자

  • file desriptor, FCB
  • 파일이름
  • 파일구조
  • 보조기억장치에서 파일 위치
  • 보조기억장치 유형
  • 액세스 제어정보
  • 파일 유형
  • 생성 일시, 제거 일시
  • 최종 수정 일시
  • 액세스 횟수

접근제어

접근제어 행렬

  • 시스템 보호기법으로 행은 사용자 영역, 열은 객체를 나타낸다.

접근제어 리스트

  • ACL
  • 각 객체에 댛나 리스트는 영역, 권한, 집합의 순서쌍으로 구성

자격 리스트

  • capability list
  • 각 사용자 영역에 대한 자격들로 구성되며 객체와 그 객체에 허용된 연산 리스트

분산파일시스템

  • DFS, Distributed File System
  • 여러 대의 서버에 걸쳐 분산되어 저장될 수 있는 계층형 파일시스템

데이터 압축

비손실 압축

  • Run Length: 문자의 반복을 줄임
  • 동적 사전법: 출현빈도에 따라 이진트리나 해시테이블 구성 후 포인터로 대체

손실압축

  • 이미지 압축
  • 오디오 압축
  • 비디오 압축

프로세스 테이블 정보

  • 프로세스 고유번호, 상위 프로세스 고유번호 (PID, PPID)
  • 사용자 이름, 사용자 그룹 이름 (UID, GID)
  • 프로세스 현재 상태

장치 드라이버

  • 장치드라이버 디렉터리는 /dev
  • 시스템의 각종 디바이스들에 접근하기 위한 디바이스 드라이버들이 저장되어 있는 디렉터리
  • 하드디스크에 차지하는 공간이 없는 가상 디렉터리

UNIX의 장치 분류

  • 블록 지향적: 입출력이 버퍼화되고 물리적인 입출력이 블록단위로 수행
  • 문자 지향적: 입출력이 버퍼화되지 않고, 물리적 입출력이 문자 단위로 수행, Raw 인터페이스

UNIX의 파일

  • 일반 파일
    • 데이터 파일: 텍스트 데이터 파일, 이진 데이터 파일
    • 실행가능 프로그램 파일
  • 디렉터리 파일
  • 특수 파일: 주변장치들을 파일이름을 통해 접근 가능
  • 파일이름에 공백이 와서는 안 된다.
  • 255자까지 가능하다.

파일접근 자료구조

  • 부트 블록
  • 슈퍼 블록
  • i-node 블록: 각 파일에 대한 metadata가 기록된 고정된 크기의 구조체 블록
    • 파일 소유자 사용번호, 그룹번호
    • 파일의 종류
    • 데이터 블록의 주소
    • 파일의 크기
    • 파일이 생성, 사용, 변경된 시간
    • 파일의 링크 수
  • 데이터 블록: 실제 파일블록을 저장하는 데 이용하는 블록

리디렉션

  • 명령어 처리 시 입출력 방향을 지정할 때 사용

UNIX 시스템의 3가지 구성요소

  • 커널
  • 어플리케이션

자료구조

· 약 22분
  • 현실세계로부터 관찰이나 측정을 통해서 수집된 사실이나 값
  • 자료형태는 숫자로 표현되는 수치값이나 문자들로 구성되는 스트링을 포함

정보

  • 어떤 상황에 대한 적절한 의사결정을 할 수 있게 하는 데이터의 유효한 해석이 나 상호 관계
  • 자료가 처리되어 발생하는 결과
  • 한시성
  • 비소모성
  • 공공성
  • 독점성

자료구조

  • 데이터를 효율적으로 사용할 수 있도록 자료의 특성에 따라 분류하여 구조를 만들어서 저장해 둔 것
  • 단순 자료구조: integer, float, char 등 단일자료
  • 선형 자료구조: 리스트, 스택, 큐
  • 비선형 자료구조: 트리, 그래프
  • 파일구조: 보조기억장치에 저장되는 대용량의 자료구조

알고리즘

  • 유한한 단계를 통해 문제를 해결하기 위한 절차나 방법
  • 입력, 출력, 명확성, 정확성, 유한성, 효율성, 일반성

순서도

  • 사다리꼴 입출력
  • 타원 터미널
  • 마름모 비교, 판단
  • 육각형 준비

추상

  • 자세한 정보는 감추고 사용자가 자료를 사용하는 데 필요한 정보만 인터페이스를 통해 외부로 노출하는 것

프로시져

  • 추상화 제공
  • 재사용 가능
  • 여러 프로그래머가 같은 문제를 해결할 수 있게 도와줌
  • 구조 파악이 쉽다

프로시져 간 자료 전달 방법

  • Call By Value: 값에 의한 호출, 프로시저를 호출하기 전에 실인수의 값을 계산하고 값을 호출시에 대응되는 국소적 변수인 가인수에 대입함으로써 전달하는 방식
  • Call By Reference: 참조에 의한 호출, 주소와 포인터 등 실인수를 참조하기 위한 정보가 가인수에 전달되어 동일한 데이터를 참조하게 되어 호출된 프로시저에서 참조하는 값이 변경되면 실인수의 값도 동일하게 변경된다.

재귀

  • 함수가 직접 자신을 호출하는 방식

공간 복잡도

  • Space Complexity, 프로그램을 실행시켜 완료하는 데 필요로 하는 공간의 양

고정 공간

프로그램 입출력의 횟수나 크기와 관계없는 공간 요구

가변 공간

  • 특정 인스턴스에 의존하는 크기를 가진 구조화 변수들이 필요로 하는 공간

시간 복잡도

  • 프로그램의 기능을 수행하기 위해 프로그램이 취한 단계수로 표현하는 것

빅오

  • f(n) = O(g(n))은 모든 n, n >= n0에 대해 f(n) <= cg(n)인 조건을 만족하는 두 양의 정수 c와 n0이 존재하기만 하면 f(n) = O(g(n))이다.

배열

  • 같은 자료형과 같은 크기를 가진 원소가 순서를 가지고 만들어진 집합
  • 인덱스에 의해 참조

순서 리스트

  • 나열한 원소들 간에 순서를 가지고 있는 리스트
  • 평균 이동 횟수 (n+1)/2, 삭제 시 (n-1)/2
  • 삽입 삭제시 전체를 밀어야되지만, 기억장소 효율은 가장 좋다.

연결 리스트

  • 공간 제약이 없다.
  • 삽입 삭제가 효율적이다.

주소 저장

  • 행 우선: 시작주소 + (행 전체 열 크기 + 열) 원소 크기
  • 열 우선: 시작주소 + (열 전체 행 크기 + 행) 원소 크기

희소행렬

  • 행렬의 대부분 원소가 0일 경우 기억공간의 낭비가 발생하므로 0이 아닌 원소만 추출하여 [행 번호, 열 번호, 원소] 쌍으로 2차원 배열에 저장하는 방식
  • 연산 측면에선 반복적인 패턴을 찾을 수 없어 비효율적

전치행렬

  • 행과 열을 바꾼 것, B = A^T로 표현
  • A^T = A면 대칭행렬

스택

  • 한 끝에서 삽입과 삭제가 일어나는 순서 리스트
  • LIFO

시스템 스택

  • 함수가 호출될 때마다 프로그램은 활성 레코드 또는 스택이라는 구조를 생성하고 시스템 스택의 top pointer에 적재한다.

스택의 적용

  • 부프로그램 호출 시 복귀 주소 저장
  • 함수 호출의 순서 제어
  • 인터럽트 복귀 주소 저장
  • 중위 표기식을 후위 표기식으로 변환
  • 후위 표기법으로 표현된 산술식 연산
  • 0-주소 지정방식의 명령어 자료 저장소
  • 재귀 프로그램의 순서 제어
  • 컴파일러를 이용한 언어 번역

  • 리스트의 한 쪽에선 원소를 삽입하고 다른 쪽에서는 삭제만 하는 구조
  • FIFO
  • front pointer: 가장 먼저 삽입된 자료의 포인터
  • rear pointer: 가장 나중에 삽입된 자료의 포인터
  • 초기 조건: front == rear = -1
  • 공백: front == rear = 1 && front == rear
  • 가득참: rear = n - 1

원형큐

  • 큐가 가득 찬 후에 첫 번째 큐를 Q[0]에 위치하게 조정하는 배열 이동은 시간이 많이 걸려 원형으로 만듦
  • 초기 조건: front == rear == 0
  • 삽입 위치: rear = (rear + 1) % n
  • 삭제 위치: front = (front + 1) % n
  • 공백: front == rear
  • 가득참: front == (rear + 1) % n

큐의 적용

  • 작업 버퍼 큐
  • 프로세스 스케줄링
  • 큐잉 시뮬레이션

데크

  • 원소의 삽입과 삭제가 리스트의 양쪽 끝에서 이뤄지는 자료구조
  • 스택과 큐의 결합
  • Double Ended Queue

스크롤

  • 입력 제한 테크
  • 한 쪽에선 삭제만 가능

셀프

  • 출력 제한 데크
  • 한 쪽에선 삽입만 가능

스택 수식 계산

  • 우선순위: 승제 > 가감 > 시프트 > 비교 > 등가 > 비트 > 논리

연결 리스트

순서 리스트의 문제점

  • 삽입 삭제시 많은 이동
  • 할당 공간 부족시 재할당
  • 표현방법과 기억 공간의 크기가 달라지면 컴파일부터 다시 실행

비사용 기억공간

  • 기억 공간이 필요하여 요청하는 경우 할당해 줄 수 있는 공간

연결 리스트의 응용

  • 다항식 표현

이중 연결 리스트

  • 링크의 방향을 양방향으로 이동할 수 있어 검색 효율성이 좋다.

원형 연결 리스트에서 헤드 노드를 사용하는 이유 모든 원소가 환형으로 연결되어 있기 때문에 무한 루프에 빠질 수 있어 헤드 노드를 두어 리스트의 시작을 알린다.

트리

  • 정보의 검색 및 자료 보관을 위해 널리 사용되고 있는 자료구조
  • 사이클을 포함하지 않는 연결 그래프의 일종
  • 계층적 자료구조
  • 노드와 각 노드를 연결하는 간선으로 구성
  • 임의의 노드에서 다른 노드로의 연결은 하나만 가능하다.
  • 루트 노드는 하나만 존재
  • 트리의 부분 집합은 하나의 트리, 이 것을 서브 트리라고 한다.
  • 노드 연결에 순환이 존재하지 않는다.

균형트리

  • B-tree, AVL tree, Red-black tree

용어

  • 노드: 자료를 담는 영역
  • 간선: 노드 간의 연결 선
  • 차수: 하위 노드의 개수
  • 레벨: 계층 구조의 노드의 위치 값
  • 높이 또는 깊이: 루트에서 터미널 노드까지의 레벨의 개수
  • 터미널 노드: 최하위 노드
  • 포리스트: 루트 노드를 제거하고 생기는 서브 트리들

이진 트리

  • 모든 노드의 차수가 2 이하인 특수한 형태의 트리
  • 순서트리의 특성을 가지므로 노드의 위치 또는 순서가 중요한 의미를 가진다.
  • 편향 이진 트리: 단말노드를 제외한 트리의 구성 노드들이 왼쪽 또는 오른쪽 자식 노드만을 가지는 형태의 트리
  • 전 이진 트리: 단말노드를 제외한 노드들이 왼쪽 자식과 오른쪽 자식 노드를 모두 가지고 있는 형태의 트리
  • 포화 이진 트리: 단말노드를 제외한 모든 노드의 차수가 2이면서 최하위 자식 노드들이 모두 차여 있는 형태의 트리
  • 완전 이진 트리: 루트 노드에서부터 하위 레벨로 순차적으로 왼쪽 자식, 오른쪽 자식 노드 순으로 추가된 트리의 형태
  • 균형 이진 트리: 단말 노드의 레벨 값의 차이가 1 이하인 형태 (완전 이진 트리와 포화 이진 트리를 포함)
  • 일차원 배열(완전 이진트리로 가정)과 연결 리스트로 표현하는 방법

이진 트리 순회

  • 중위 순회: 좌 루트 우
  • 후위 순회: 좌 우 루트
  • 전위 순회: 루트 좌 우

이진 트리 정렬

  • 루트부터 비교하면서 작으면 왼쪽 자식, 크면 오른쪽 자식
  • 완성되면 중위 순회

스레드 이진 트리

  • 터미널 노드의 null 값의 링크를 조상 노드에 연결해 알고리즘 성능을 향상시키는 방식

히프

  • 완전 이진 트리의 자료구조
  • 가장 큰 값이나 가장 작은 값이 완전 이진 트리의 루트에 항상 존재하는 자료구조
  • 데이터 목록에서 가장 작은 값이나 가장 큰 값을 빠르게 찾을 수 있도록 구성된 자료구조

우선순위 큐

  • FIFO를 지키면서 우선순위가 부여된 원소는 큐에서 위치와 상관 없이 먼저 출력되는 구조
  • 배열, 연결리스트, 히프로 표현이 가능하다.
  • 히프 사용시 O(logn)의 복잡도

이진 탐색 트리

  • 이진 트리의 구조로 자료 검색 삭제 및 삽입에 효율적인 자료구조
  • 원소들은 유일한 키 값을 가지며 좌측 서브 트리는 루트 값보다 작은 값들로 구성된 이진 탐색트리고 우측 서브 트리는 루트의 값보다 큰 값들로 구성된 이진 탐색 트리로 구성
  • 중간 노드 삭제시 왼쪽 서브트리의 최대 원소와 오른쪽 서브트리의 최소 원소를 비교하여 중간 노드 값으로 올린다.
  • 최대 높이는 n, 최소 높이는 log₂(n)

선택 트리

  • N개의 원소를 임의의 개수로 나눈 원소를 가진 K개의 목록을 합병 정렬할 목적으로 구성

승자 트리

  • 2개의 자식 노드 중 값이 작은 노드가 승자가 되어 상위 부모 노드로 올라가는 트리

패자 트리

  • 승자 대신 패자 원소를 나타내고 승자는 상위 부모 노드에 올린다.

포리스트

  • 서로 연결되지 않은 여러 개의 서브 트리로 구성된 구조
  • 자료 접근에 어려움이 있어 이진 트리로 변환해야 한다.
  • 이진트리에서 루트 레벨이 1로 시작할 때 레벨 i에서 최대 노드의 수는 2^(i-1) 개 이다.
  • 이진트리에서 깊이가 i라면 최대 노드 수는 2^i-1개다.

그래프

  • 공집합이 아닌 정점들의 유한집합과 공집합도 허용하는 간선들의 유한집합으로 구성
  • 완전 그래프: 최대 수의 간선을 가지는 그래프
  • 가중 그래프: 간선에 가중치가 할당된 그래프

그래프의 표현

  • 인접 행렬: 간선이 있으면 1 없으면 0
  • 인접 리스트: vertex와 link로 표현

그래프 순회

  • 깊이 우선 탐색: 스택
  • 너비 우선 탐색: 큐
  • 신장 트리: 그래프의 간선들로만 구성되고 그래프의 모든 정점을 포함하는 트리, 사이클이 포함되면 안된다.

최소 비용 신장 트리

  • 모든 정점들을 가장 적은 수의 간선과 비용으로 연결하는 트리
  • 비용은 거리 및 시간을 의미한다.
  • Prim, Kruskal, Sollin 알고리즘이 있다.

Prim

  • 가중치가 적은 간선을 선택해 가는 방식

Kruskal

  • 탐욕적 방법
  • 매번 선택마다 전체에서 가장 좋다고 생각하는 간선을 선택

그래프의 응용

PERT/CPM

  • Program Evaluation and Review Technique / Critical Path Method
  • PERT: 프로젝트에 필요한 전체 작업의 상호관계를 표현하는 방법
  • CPM: 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는 데 사용하는 기법
  • 상세 계획을 수립하기 쉽고 변화나 변경에 대해 바로 대처할 수 있고 네트워크상 문제점을 파악할 수 있고 중점관리가 가능하나 작성에 많은 시간이 든다.

최단 경로

  • Dijkstra 알고리즘: 첫 번째 정점 a에서 최단 경로의 길이인 두 번째 정점을 찾는 알고리즘

탐색

  • 주어진 리스트에서 원하는 키를 찾는 것
  • 비교 탐색방법: 탐색 대상의 키를 비교하여 탐색하는 방법, 순차 탐색, 이진 탐색, 이진 트리 탐색
  • 계산 탐색방법: 계수적인 성질을 이용하여 계산으로 탐색을 하는 방법, 해싱

순차 탐색

  • 주어진 리스트에서 탐색키와 같은 레코드를 검색하는 방법
  • O(n)

이진 탐색

  • 이미 정렬되어 있는 리스트에서 절반을 쪼개가며 값을 찾는 방식
  • O(logn)

피보나치 탐색

  • 피보나치 수열을 이용해 중간 값을 계산해 속도가 빠르다.

정렬

  • 내부 정렬: 리스트가 작아 주기억장치에서 모두 정렬이 가능
  • 외부 정렬: 외부 기억장치를 이용해 정렬
  • 비교식 정렬: 비교하고자 하는 각 키 값들을 한 번에 2개씩 비교하여 교환하는 방식
  • 분산식 정렬: 키 값을 기준으로 하여 자료를 여러 개의 부분 집합으로 분해하여 각 부분집합을 정렬함으로써 전체를 정렬하는 방식

삽입 정렬

  • 정렬되어 있는 값들을 삽입하고자 하는 값과 비교하여 큰 값들은 뒤로 이동한 후 삽입하는 방법
  • O(n^2)
  • 두번 째 원소를 기준으로 이전의 레코드들과 비교하여 적절한 위치를 찾아 삽입하는 방식

쉘 정렬

  • 매개변수 값을 정하여 매개변수의 값만큼 간격을 가지는 레코드들을 여러 개의 서브 파일로 구성하면서 각 서브 파일을 삽입 정렬방식으로 배열하는 과정을 반복하는 것
  • interval은 전체 레코드의 개수의 절반인 interval = n/2에서 시작해 매번 interval = interval / 2로 interval 값이 0보다 큰 경우에 반복 수행한다.
  • O(n^1.25)

퀵 정렬

  • 기준값인 피벗을 중심으로 큰 원소들은 오른쪽 부분집합으로 분할하여 정렬하는 방법
  • 분할 정복기법
  • 정렬할 자료들을 기준값을 중심으로 2개의 부분집합으로 분할하는 작업과 기준값보다 작으면 왼쪽 부분집합으로 크면 오른쪽 부분집합으로 정렬하는 정복 작업을 부분 집합의 크기가 1 이하가 될 때까지 반복한다.
  • O(nlog₂n), 최악 O(n^2)

버블 정렬

  • 인접한 2개의 레코드를 비교하여 위치를 서로 교환하는 방식
  • 한 회전을 거치면 리스트의 마지막의 가장 큰 레코드가 남게 된다.
  • O(n^2)

2원 합병 정렬

  • 이미 정렬된 2개 이상의 배열이 있을 때 이들을 합쳐서 하나의 정렬된 배열을 만드는 것
  • O(nlogn)

히프 정렬

  • O(nlogn)
  • 히프 트리를 이용해 정렬하는 방식으로 항상 가장 큰 원소가 루트 노드가 되고 삭제 연산을 수행하면 항상 루트 노드의 원소를 삭제하여 반환하게 된다.

선택 정렬

  • 단순한 정렬방법
  • 이동하면서 가장 작은 값을 앞으로 보낸다.
  • O(n^2)
  • 데이터 양이 적을 때 아주 좋은 성능을 낼 수 있다.

기수 정렬

  • 큐를 이용하여 자릿수 (digit) 별로 정렬하는 방식
  • 부동소숫점 정렬 불가능
  • O(dn)

컴퓨터네트워크

· 약 51분

단말기와 단말기 사이를 전송매체가 연결하여 데이터를 주고받는 행위

컴퓨터 통신망의 역사

  • 1958 - SAGE: 최초의 컴퓨터 통신 시스템, 대공방어장치
  • 1961 - TSS: 최초의 시분할 통신시스템, Time Sharing System
  • 1968 - ARPA: 최초의 패킷 교환방식
  • 1968 - ALOHA: 하와이 대학 최초의 무선 패킷 교환 통신망
  • 1974 - SNA: 체계화된 컴퓨터 통신망, System Network Architecture

컴퓨터 통신망의 목적

  • 자원의 공유와 신뢰도 향상
  • 처리 기능의 부산과 프로세스 간 통신제공
  • 시스템 간 호환성 확대
  • 최소의 비용으로 최대의 성능 제공

통신망의 목적 자원의 공유와 신뢰도 향상 및 처리기능의 분산과 프로세스 간의 통신 제공

컴퓨터 통신망의 서비스

  • 데이터
  • 음성
  • 이미지
  • 영상
  • 멀티미디어

데이터 통신 시스템

  • 데이터 처리계: 컴퓨터
  • 데이터 전송계: 단말, 데이터 전송장치, 통신제어장치 등

데이터 단말장치

  • DTE: Data Terminal Equipment
  • 전송할 데이터를 부호로 변환하거나 처리하는 장치
  • 컴퓨터, 프린터, 터미널

데이터 단말장치 기능

  • 입출력 기능
  • 데이터 수집과 저장
  • 데이터 처리
  • 통신, 통신제어

데이터 회선종단장치

  • DCE: Data Circuit terminating Equipment
  • 신호변환장치
  • DTE에서 처리된 신호를 변환하거나 통신회선상에 놓여 있는 신호를 변환하는 장치
  • 모뎀, 랜 어댑터, DSU 등이 해당

데이터 회선종단장치 기능

  • 신호변환
  • 전송신호의 동기제어
  • 송수신 확인 기능
  • 전송오류검출 및 정정 기능

통신 소프트웨어

  • 컴퓨터 상호 간에 접속하여 정보를 교환할 수 있게 하는 소프트웨어

응용 소프트웨어

  • 특정 분야에 대해 망의 접근을 가능케 하는 소프트웨어
  • 메세지 핸들링 시스템

상호접속 소프트웨어

  • 망내의 각 지점을 서로 연계하여 작동하도록 기능하는 소프트웨어
  • 프로토콜
  • X.25, TCP/IP

컴퓨터 통신망 프로토콜

  • 특정 단말기 사이의 상호통신을 위한 규약

프로토콜 3요소

  • 문법: syntax
  • 타이밍
  • 의미: semantic

프로토콜 주요 기능

  • 흐름제어
  • 오류제어
  • 순서화 전달
  • 주소지정
  • 다중화
  • 전송
  • 분할과 병합
  • 캡슐화
  • 연결

계층

물리 계층

  • 회선구성, 데이터 전송방식, 접속형태, 물리적인 링크 설정 유지 해제 의 기능
  • V.24, V.28(RS-232C)
  • X.21, X.21bis
  • I.430, I.431 ISDN

데이터링크 계층

  • 노드 대 노드 전달, 주소 지정, 전송되는 데이터 동기 확인, 흐름제어, 오류 제어
  • HDLC
  • LAN의 LCC, MAC
  • LAPB

네트워크 계층

  • 발신지 대 목적지 전달, 논리주소 지정, 주소 변환, 논리적 링크 구성, 라우팅, 다중화
  • IP
  • ICMP, ARP, RARP

전송 계층

  • 데이터 전송 종단 간의 신뢰성 제어, 포트 주소 지정, 분할과 병합, 연결제어
  • TCP, UDP

세션 계층

  • 송수신 프로세스 간의 연결 확립, 연결 해제, 송신권 제어, 동기점 표시

표현 계층

  • 통신을 위한 데이터 포맷 형태의 변환기능, 데이터 암호화, 데이터 압축, 네트워크 안전성 보장

응용계층

  • 사용자가 직접 접하는 부분

전송 코드

보도 코드

  • Baudot code
  • 이진수로 만들어진 코드화된 최초의 문자표
  • 국제 전신인쇄기에서 사용

ASCII 코드

  • American Standard Code for Information Interchange
  • 미국 표준기구에 정한 표준 부호
  • 7개의 정보 비트와 1개의 패리티 비트로 구성
  • 7개의 정보비트로 128개 조합 가능
  • 숫자와 영문자 모두 사용
  • 짝, 홀 패리티에 의해 오류 발생 여부를 알 수 있음

EBCDIC 코드

  • 확장 이진화 10진 코드
  • Extended Binary Coded decimal Interchange Code
  • BCD 코드를 확장
  • 256개의 비트패턴이나 문자로 표현

전송방식

단방향

  • Simplex
  • 라디오, TV, 전광판

반이중

  • Half-duplex
  • 양방향 전송이 가능하지만 동시에는 불가능
  • 무전기, 팩스

전이중

  • Full-duplex
  • 양방향 전송가능, 두 개의 전송 채널이 필요
  • 전송 효율이 높으나 비용이 많이 듦
  • 전화

직렬 전송

  • serial transmission
  • 전송하고자 하는 각 데이터 비트를 직렬화한 뒤 하나의 통신회선을 이용해 한 비트씩 순차적으로 전송하는 방식
  • 원거리 전송에 적합
  • 저속 통신 방식이 사용

병렬 전송

  • perallel transmission
  • 전송하고자 하는 데이터를 비트별로 통신회선을 따로 두고 동시에 복수 비트를 한꺼번에 전송
  • 근거리 데이터 전송에 이용
  • 고속 전송에 적합

베이스밴드 전송

  • 디지털 데이터를 그대로 보내거나 전송부호로 변환시켜 전송하는 방식
  • RZ, NRZ, AMI, Manchester, CMI 등이 전송부호로 사용
  • 주로 LAN에 사용
  • 가까운 거리

브로드밴드 전송

  • 하나의 전송매체에 여러 채널의 데이터를 실어서 동시에 전송하는 방식
  • 데이터 신호보다 높은 반송파에 실어서 변조를 거친 후 전송하기 때문에 원거리 전송에 유리
  • 하나의 전송매체로 멀티미디어 서비스 제공 가능
  • 주파수 분할 다중화에 적합
  • 홈 네트워크와 케이블 TV

전송모드

동기식 전송

  • 전송된 데이터를 정확히 수신하기 위해 송수신 측 간의 타임이을 일치시켜 전송하는 방식
  • 데이터를 한 묶음의 문자열로 전송할 수 있음
  • 비트마다 동기를 취해 긴 데이터를 송신할 수 있다.
  • 전송효율과 전송속도가 높음

비동기식 전송

  • 전송하고자 하는 문자 앞 뒤에 시작 비트와 정지 비트를 첨부하여 전송하는 방식
  • 동기는 바이트 단위로 이뤄지며 저속용 데이터 전송에 사용

전송효율

코드효율

  • 코드효율 = 실제정보 비트 수 / 전체 정보 비트 수

전송효율

  • 전송효율 = 정보 비트 수 / 전체 비트 수

전체효율

  • 전체효율 = 코드효율 X 전송효율
  • 실제 전송되는 전체 비트 중에서 실제 데이터가 차지하는 비율

위상변조 잡음에 강하고, 레벨 변화의 영향을 적게 받으며, 일정한 크기의 대역폭을 필요로 한다. 간단한 회로 구성

동기화 송신 측과 수신 측 사이에 정보를 보내는 시점을 합의하는 절차

PCM 신호를 양자화, 표본화, 부호화하여 펄스 변조하는 불연속 펄스 변조 펄스코드변조

전송매체

꼬임선 케이블

  • 두 가닥의 절연된 구리선이 균일하게 서로 감겨 있는 형태

UTP

  • Unshielded Twisted Pair, 비 차폐 이중 꼬임선
  • 가격 저렴, 설치가 쉽고 유연하다
  • 랜선
  • 최대 100m
  • RJ-45 커넥터

STP

  • Shielded Twisted Pair, 차폐 이중 꼬임선
  • UTP에 비해 비쌈
  • 외부전류로부터 보호를 위해 금속박막을 접지하는 특별한 커넥터를 사용해 설치가 복잡
  • 백본의 최대 사용길이는 100m로 제한

동축 케이블

  • 내부 단일 전선과 외부 도체로 구성
  • 이중 나선보다 처리율이 좋다
  • 베이스밴드와 브로드밴드 전송 방법을 사용할 수 있다.
  • 수백 Mbps의 고속전송이 가능
  • 바다나 땅에 묻어도 성능에 큰 지장이 없음
  • 전력 손실이 적고 높은 주파수에서 빠른 데이터 전송 가능
  • 차폐성이 좋아 간섭이 적음
  • 1km 마다 리피터를 필요로 한다.

종류

  • RG-8, 9, 11: 굵은 이더넷
  • RG-58: 얇은 이더넷
  • RG-75: TV

얇은 동축 케이블

  • Thin 이더넷 또는 10BASE-2
  • 반드시 같은 케이블로만 연결해야한다.
  • 최대 사용 길이는 185m

굵은 동축 케이블

  • Thick 이더넷 또는 10BASE-5
  • 네트워크 백본으로 사용
  • 최대 사용길이는 500m
  • 설치와 취급이 어렵다.

광섬유

  • 유리 세관이나 다른 투명한 재료를 섬유로 하여 그 내부에 적당한 굴절률을 분포시켜 부호화된 신호의 빛이 전송될 수 있도록 한 전송매체
  • 넓은 대역폭
  • 케이블 다발이 아주 작고 무게가 가벼움
  • 감쇠도가 현저히 낮다, 간섭에 강하다.
  • 오류 발생이 적으나 탭을 이용해 분기선을 내기가 힘들다.
  • 넓은 리피터 설치 간격
  • multi mode, single mode
  • 광송신기는 전기신호를 광신호로, 광수신기는 반대로
  • 설치시에 기술력이 필요

단일 모드

  • 단계 지수 광섬유를 사용
  • 광선을 수평에 가까운 작은 영역의 각도로만 제한
  • 광원을 고도로 집중

다중 모드

  • 광원으로 나온 여러 개의 광선이 중심부에서 서로 다른 경로를 가지고 이동

무선통신매체

지상 마이크로파

  • Terrestrial microwave
  • 접시형 파라볼라 안테나
  • 안테나의 직경은 10ft 내외로 안테나를 고정하고 수신 안테나 방향으로 가느다란 빔을 발사
  • 장애물이 없는 고지대에 위치

위상 마이크로파

  • 통신위성은 마이크로파 중계국으로 2개 또는 그 이상의 지상 송신국을 서로 연결
  • 어떤 주파수 대역을 수신해 이를 증폭해서 아날로그 전송ㅇ르 하거나, 재생해 디지털 전송으로 다른 주파수로 송신
  • 사용 빈도수가 높은 국제간의 통신용으로서 가장 좋은 매체
  • 위성전송의 주파수 범위는 1~10GHz

라디오파

  • 다방향성
  • AM, FM, 초단파(VHF), 극초단파(UHF)
  • 감쇠 정도가 낮고 대역 확산의 경우 여러 주파수를 동시에 사용 가능
  • 특정 주파수를 사용하고 있는 네트워크와 인접하지 않은 곳에서 주파수 대역을 재사용 가능
  • 30MHz ~ 10GHz
  • 대기 반사에 기인한 상호 간의 간섭을 일으키지 않음
  • 주요한 손상 요인은 다중경로 간섭이다.

통신선로

점대점 선로

  • point to point
  • 연결 개수가 많아질수록 성능이 좋지만, 전송 매체의 길이가 증가해 비용이 많이 든다.
  • 네트워크 트래픽이 많은 구간에는 전송매체의 수를 늘리고 않은 구간은 줄이는 게 해결책

멀티드롭 선로

  • 브로드캐스팅 방식
  • 전송매체 하나에 여러 단말기를 공유하여 연결
  • 분기장치를 설치하고 3개소 이상의 지점을 연결하는 방식
  • 사용률이 낮은 여러 단말기들을 하나의 회선에 여러 개 접속해서 회선사용효율을 높이는 것이 가능해진다.
  • 버스 방식

네트워크 형태

스타형

  • 중앙의 제어 스테이션으로부터 모든 장치는 점대점 방식 연결
  • 고장 발견이 쉽다

버스형

  • 버스에 모든 노드가 연결
  • 버스의 끝에는 terminator를 둔다.
  • 노드의 고장이 망 다른부분에 전혀 영향을 미치지 않는다.
  • 보통 CSMA/CD 방식 사용

링형

  • 단방향 점대점 형태
  • 분산 제어와 checking, recovery가 간으하나 노드의 변경이나 추가가 비교적 어렵다.
  • 노드의 고장에 대처하기 어렵다.
  • 광섬유에 잘 맞음

허브/트리형

  • 허브에 연결된 스타형

메시형

  • 단말기들이 모두 연결된 형태

데이터 교환

회선교환

축적교환

  • 데이터를 송신 측의 교환기에 임시 저장시켰다가 수신 측 터미널에 전송하는 방식

메세지 교환 방식

  • 각 메세지마다 전송경로를 결정하고 수신측 주소를 붙여 전송
  • 전송 메세지는 추후 검색이 가능
  • 응답시간이 느려 대화형 데이터 전송에는 부적합

패킷 교환 방식

  • 메세지를 일정한 길이의 패킷으로 분할하여 전송하는 방식
  • 네트워크 계층
  • 회선 이용률이 매우 높다
  • 송신 측으로 분할되어 전송된 데이터를 수신 측에서 재결합
  • 응답시간이 빨라 대화형 데이터 전송에 적합

교환 방식

회선 교환 방식

  • 데이터를 전송할 때마다 통신경로를 설정하여 데이터를 교환하는 방식
  • 회선의 설정, 데이터의 이도으, 회선의 단절
  • 매번 통신경로를 설정
  • 통신경로 접속시간이 1초 이내
  • 길이가 길고 통신 밀도가 높은 데이터 통신에 유리
  • 접속된 동안엔 두 시스템 간의 통신회선이 독점

메세지 교환 방식

  • 축적 교환 방식으로 데이터의 논리적 단위인 메세지를 교환
  • 교환기가 메세지를 받았다가 보내주는 방식
  • 회선 효율이 증대
  • 비동기 전송이 가능
  • 연결 설정이 불필요
  • 다중 전달이 쉽다
  • 실시간이나 빠른 응답시간에는 부적합
  • 지연이 상적으로 길다
  • 음성 신호 전송에는 불가능

패킷 교환 방식

  • 수신 측 주소에 따라 적당한 통신경로를 선택해 전송하는 교환 방식
  • 전송하고자 하는 정보를 일정한 크기의 데이터로 분할하여 송수신 주소인 헤더를 각각 부가한 패킷 단위로 전송
  • 데이터그램과 가상회선 방식
  • 경로 설정, 트래픽 제어, 오류 제어
  • 오류 발생시 해당 패킷만 복구하면 됨
  • 회선 다중화로 효율 증대
  • 교환기에 축적 전송 가능
  • 부가서비스 제공
  • 패킷이 파일화 되진 않는다.

다중화기

  • 하나의 전송로에 여러 개의 데이터 신호를 혼합시켜 전송하는 방법
  • 다수의 저속회선 사용자를 하나의 고속전용선에 접속시켜 통신망을 이용가능하게 한다.
  • 시분할 다중화, 주파수분할 다중화 방식이 있다.

집중화기

  • 수신 단말기로의 데이터 전송을 위해 여러 단말기로부터 데이터를 고속전용선에서 조합하거나 형태를 변경시킬 수 있는 장치
  • N개의 선을 M개의 선으로 출력
  • 실제 전송할 데이터가 있는 단말에만 회선을 동적 할당

단말기

  • 터미널
  • 컴퓨터나 컴퓨팅 시스템에 데이터를 입력하거나 표시하는데 쓰이는 하드웨어적인 기기

종류

  • 텍스트 터미널: 테긋트 입력 및 표시를 위한 직렬 컴퓨터 인터페이스
  • 단순 단말기: 덤 터미널, 기계식 타자기가 하는 것처럼 똑같은 제한된 기능
  • 그래픽 단말기: 씬 클라이언트, RDP, X11과 같은 프로토콜 사용

베이스밴드 신호

  • 단말에서 출력되는 디지털 정보를 부호화하여 변조과정을 거치지 않고 전송하는 방식
  • 고주파 영역이 차단될 수 있어 베이스밴드 신호를 전송로에 적합하게만 변환한다.
  • 단극, 복류, 단류 RZ, 복류 RZ, NRZ, 바이폴라, 맨체스터, 차분적 맨체스터, CMI 등의 전송방식

변복조기

  • 모뎀

단말장치 주요기능

  • 입출력 기능
  • 전송제어 기능
  • 기억 기능: 일시적 데이터 저장

신호변환장치의 주요기능

  • 신호 변환 기능
  • 전송신호의 동기 제어기능
  • 송수신 확인 기능
  • 전송오류의 검출 및 정정 기능

변복조

  • 아날로그 신호를 디지털 신호로 변환하거나 그 반대

디지털 데이터 네트워크 인터페이스

  • DCE와 DTE 사이의 경계조건의 규정
  • X.20, X.21, X.25, X.28, X.29

음향 결합기

  • 공중전화교환망 (PSTN)
  • 수화기를 모뎀 위에 얹어 놓으면 송화기에서 들리는 소리를 매개로 데이터를 주고 받게되는 원리
  • 주파수 편이변조 방식을 사용(FSK)
  • 저속 데이터 전송(600bps, 1200bps)

전처리장치

  • 전방처리기, FEP, Front-End Processor
  • 호스트 컴퓨터와 단말기 사이에 설치되어 입출력 작업을 전담하도록 개발된 특수용도의 컴퓨터
  • 데이터 교환 기능, 프로토콜 변환기능, 통신 회선 및 터미널의 제어, 전송 메세지 검사 기능 등

폴링/셀렉팅 방식

  • polling / selecting
  • 폴링과 선택에서 송수신을 권유하는 것
  • 하나의 통신회선상에 3개 이상의 단말이 있는 분기회선에 있어 단말기 상호간 데이터링크를 확립하는 방식

라운드 로빈 방식

  • 시분할 시스템

다중화 정적인 채널의 공유 방안, 채널에서 주파수 대역이나 타임슬롯을 사전에 할당, 입출력의 비트율(용량)이 일치한다.

통신제어

임의접근제어

  • discretionary access control
  • 시스템상의 객체에 대한 접근을 개인 또는 그룹의 식별자를 기반으로 한다.

부 네트워크

  • 대규모 네트워크를 구성하는 데 있어 개별적인 소규모 네트워크를 의미

통신제어 구조

  • 회선접속부, 전송제어부, 연산부

원격처리장치

  • RP, Remote Processor
  • 단말기와 접속해 복수단말회선의 집선 역할과 동시에 단말기 제어, 정보량의 제어 등의 기능을 수행한 후 한 가닥의 고속통신회선에 의해 주 컴퓨터로 송신

전처리장치

  • 통신회선 및 단말기 제어의 지능, 다중화기능, 데이터의 형식변환 및 메세지 통신제어
  • 마이크로 프로세서 내장

후처리장치

  • 주 컴퓨터 후단에 설치되어 주 컴퓨터가 수신한 데이터 중 별도로 처리할 필요가 있을 때 사용하는 장치

통신 기능

  • 통신망 운영 및 관리
  • 전송상 오류검출과 정정
  • 통신회선의 효율적인 활용
  • 통신회선의 접속과 데이터링크 확립
  • 링크의 개방, 상태 감시
  • 통신회선 차단
  • 최적의 경로선택 및 제어
  • 보안

통신 기능의 종류

  • 온라인 처리 방식
  • 오프라인 처리 방식
  • 실시간 처리 방식
  • 일괄 처리 방식: Batch Processing

네트워크 아키텍쳐

  • 컴퓨터와 단말기 또는 망의 기능이 서로 알맞게 나눠 최적의 상태로 통신망이 구축되게하는 기본 구조나 기술

OSI 7 레이어

  • 네트워크 의존계층: 물 데 네
  • 전송계층: 전
  • 응용지향계층: 세 표 응
  • 상위 계층에서 하위계층으로 데이터가 전달되면서 헤더정보가 추가 전달
  • 하위 계층에서 상위계층으로 데이터가 전달되면서 헤더정보가 삭제
  • 헤더가 삭제되는 과정을 decapsulation

이진동기통신

  • BSC, Binary Synchronous Communication
  • 1964년 IBM에서 개발되어 사용되고 있는 데이터링크 프로토콜
  • 점대점 방식과 다중점 구성에 쓰인다.
  • 정지-대기 ARQ, 흐름제어, 오류 정정 등을 사용하는 반이중 전송방식 지원

이진동기통신 프레임

  • 프레임은 2개 이상의 동기 문자로 시작
  • SYN SYN STX data ETX BCC(블록검사 계산 LRC CRC)
  • 다중 블록 프레임의 경우 STX data ITX BCC STX data ETX BCC

HDLC

  • 고급 데이털이크 제어, High level DataLink Control
  • 비트중심 프로토콜
  • 불균형 구성: 하나의 장치가 주국이며 기타 다른 모든 장치는 종국
  • 대칭 구성
  • 균형 구성

통신모드

  • 정규응답모드: NRM, 종국은 전송 전 반드시 주국의 허가가 필요
  • 비동기응답모드: ARM, 채널이 사용되지 않으면 주국 허가 없이 전송 가능
  • 비동기균형모드: ABM, 모든 지국이 동등하며 점대점으로 연결된 조합국만 사용

프레임

  • 정보 프레임: I프레임, 사용자 데이터와 그에 관련된 제어정보 전송
  • 감시 프레임: S프레임, 제어정보 전송 및 데이터링크 계층의 흐름제어와 오류제어
  • 무번호 프레임: U프레임, 시스템 관리를 위해 예약, 링크 자체를 관리할 목적
  • 시작 플래그, 주소, 제어, 정보, FCS, 종료 플래그로 구성

표준화

ITU-T

  • ITU 산하의 표준화 기구로 전화, 팩스, 패킷 교환 데이터 통신 등의 공중 통신망에 대한 국제 표준화를 담당

ISO

  • 1946년 창설되어 다양한 분야의 표준을 개발하기 위한 국제 표준화 기구

ISOC

  • 인터넷 설계 및 운영을 위한 조정 위원회

IEEE

  • 미국전기전자학회 LAN 표준화

FCC

  • 미국연방통신위원회

클록 드리프트 클록 속도가 달라 비트 간 발생시간이 다르거나, 송수신단의 독립적인 두 개의 클록이 정확하게 일치되지 않는 클록의 어긋남

비트 동기

  • 각 비트마다 타이밍을 맞추는 것
  • 7~8비트로 구성된 비트열을 하나의 단위로서 타이밍을 취한다.
  • 동기 방식: 비트 위치를 알려주는 동기신호를 사용하는 방식
  • 비동기 방식: 정보 처음에 정보의 시작을 상대에게 알려주는 비트를 첨가
  • 동기 신호를 보낸 송수신 측에서 동기를 취한 다음 일정한 주기로 신호를 구분하는 방법

주소 지정

물리 주소

  • 컴퓨터의 메인 메모리를 접근할 때 사용하는 주소
  • 기억장치의 주소 레지스터에 적재

논리 주소

  • 실제 주소와 구분하여 사용자 관점에서 본 논리적인 프로그램의 주소
  • mapping 하드웨어에 의해 실제주소로 변경

포트 주소

  • 물리적인 전용선은 하나이지만 여러 응용 프로그램이 서로 나눠 사용하기 위해 도출된 개념
  • MAC 주소: 데이터 링크 계층 주소 (노드 대 노드)
  • IP 주소: 네트워크 계층 주소(호스트 대 호스트)
  • PORT 주소: 전송계층 주소(프로세스 대 프로세스)

기호 주소

  • Symbolic Address
  • 정보의 위치와 무관하게 특정 언어, 함수 또는 다른 정보를 지정하는데 쓰이는 레이블
  • 프로그램에서 기억 장소를 지정하는데 사용하는 영숫자 레이블
  • 프로그램을 작성할 때 사람이 알기 쉽게 적당한 명칭을 붙혀 표시한 주소

오류 제어

오류 제어 방식

  • 오류에 중복성을 부가하는 방식: 패리티 비트, 해밍 코드, 순환 중복 검사
  • 전송 방법에 중복성을 부가하는 방식: 반송대조 방식(에코 검사), 3연속 전송방식

오류 정정 방식

  • 자동반복요청 방식(ARQ)
  • 순방향 오류정정 방식(FEC)

패리티 비트 검사

블록합 검사

  • 패리티 비트가 각 문자에 대해 짝수의 배수만큼 비트에 오류가 발생하면 오류를 검출하지 못하는 단점을 보완
  • 수직 수평 패리티 비트 검사를 통해 오류 검출

순환 중복 검사

  • CRC, 귀환 오류 제어
  • 다항식을 이용
  • CRC는 나머지로 작용

전진 오류 수정

  • FEC, Forward Error Correction
  • 문자나 프레임에 부가적인 정보를 추가해 오류가 존재하는 경우 수신 측이 오류검출뿐 아니라 정확한 정보가 어떤 것인지 수신한 비트열로부터 유추할 수 있는 방식
  • 데이터 비트 프레임에 잉여 비트를 추가해 오류를 검출, 수정한다.

넘버링 방법

  • 해밍 코드 방식에 준한 방법

흐름 제어

  • 송수신 양측 간 처리속도가 다른 경우에 데이터 양이나 통신속도가 수신 측의 처리 능력을 초과하지 않도록 조정하는 기능

정지-대기 방식

  • 각 프레임을 보낸 후 확인 응답을 기다리고 다음 프레임을 전송
  • ACK, NAK
  • 가장 간단한 형태며 한 번에 1개의 프레임만 전송 가능
  • 거리가 멀 수록 전송 효율이 떨어짐

슬라이딩 윈도우

  • 여러 개의 프레임을 전송함으로써 효율을 높인 방식
  • 송신 측은 수신 측으로부터 확인 메세지를 받지 않더라도 윈도우의 한도까지 계속 프레임을 전송할 수 있으므로 전송 효율이 높다.

혼잡 제어

  • 체증제어
  • 통신 네트워크로 유입되어 전송되는 정보량을 조절하여 네트워크가 혼잡해지지 않게 조절하는 것

TCP 혼잡제어

  • 셀프 클록 방식

AIMD

  • Additive Increase/Multiplicative Decrease
  • 패킷을 하나씩 보내고 문제없으면 윈도우의 크기를 1씩 증가시키면서 전송하는 방법
  • 실패 또는 타임아웃시 크기를 절반으로 감소
  • 네트워크가 혼잡해진 다음에야 대역폭을 줄이는 방법

느린 시작

  • slow start
  • 패킷이 문제 없이 도착하면 ACK 패킷마다 윈도우의 크기를 1씩 늘린다.
  • 한 주기가 지나면 창 크기가 2배가 된다.
  • 혼잡 시에 윈도우의 크기를 1로 감소시킨다.

빠른 재전송

  • 잘 도착한 마지막 패킷의 순번을 ACK에 실어서 보낸다.
  • 순번이 3번 중복되면 재전송을 하고, 윈도우 크기를 줄인다.

빠른 회복

  • 혼잡해지면 윈도우 크기를 반으로 줄여 선형 증가시키는 방법

주파수분할 다중화

  • FDM
  • 주파수 대역을 여러 개의 작은 주파수 대역으로 분할하여 데이터를 동시에 전달하는 방식
  • TV 방송
  • 간섭이 발생하지 않게 채널과 채널 사이에 보호대역(Guard Band)가 있다.

시분할 다중화

  • TDM
  • 하나의 회선 전체를 일정한 시간 간격을 두고 반복해서 각각의 단말에 데이터를 할당하는 방식

동기식

  • 기존 시분할 다중화 방식
  • 실제로 데이터가 없어도 타임슬롯이 할당되어 낭비될 수 있음

비동기식

  • 실제로 보낼 데이터가 있는 단말에만 동적으로 각 채널에 타임슬롯을 할당하는 방식
  • 대역폭에 낭비를 줄이고 전송 효율 증가
  • 주소 정보가 데이터에 첨가

시간 홈 예약 방법

  • 전송 데이터가 있는 경우에만 타임 슬롯을 배정하여 전송하는 방법
  • 고정길이의 데이터와 함께 주소 정보로 구성되는 셀을 챈러에 차례로 할당해 효율적으로 타임슬롯을 배정

ARQ 자동 반복 요구, Automatic Repeat reQuest

Checksum 데이터의 정확성을 검사하기 위한 용도로 사용되는 오류 검출 방식 1의 보수 연산을 사용

OSI

응용 계층

  • FTP, Telnet, SMTP, DB 등

표현 계층

  • 표준 방식으로 데이터를 코딩하는 문제를 다룬다.
  • 단말기의 데이터 표현 방법이 서로 다르면 상대방의 데이터를 이해할 수 있도록 적절하게 변환하는 과정이 필요
  • 데이터 암호화, 압축, 코드 변환

세션 계층

  • 사용자에게 원격 파일 전송이나 원격 접속 등 세션 기능을 제공
  • 대화 제어, 토큰 제어, 동기 기능 제공
  • 세션 연결의 설정과 종료, 반이중, 동기, 예외보고
  • T.62, ISO 8327

전송계층

  • 송신 프로세스와 수신 프로세스를 직접 연결하는 end-to-end 통신 기능 제공
  • 전송오류율, 전송속도, 흐름제어, 목적지 주소 지정, 메세지 우선권, 무결성 보장, 다중화

네트워크 계층

  • 라우팅 문제를 처리
  • 전송 데이터를 패킷이라고 부른다.
  • 경로 배정 및 중계, 통신망 연결 접속, 흐름제어, 순서제어
  • X.25

데이터링크 계층

  • 물리계층을 통해 전송되는 데이터의 물리적 전송오류를 해결
  • 전송 데이터를 프레임이라고 부른다.
  • 두 단말기가 1:1로 직접 연결된 환경에서 데이터 전송기능을 지원
  • 흐름제어, 노드 대 노드의 주소지정, 전송제어, 오류제어

물리 계층

  • 물리적 인터페이스
  • 비트열의 데이터를 받아 전기적 신호로 변환 후 전송매체를 통해 수신측에 전송
  • DTE, DCE 간의 인터페이스
  • RS-232C

하위 계층에서 상위 계층으로 데이터가 이동할 때 헤더는 삭제되고 상위 계층에서 하위 계층으로 데이터가 이동할 때 헤더는 추가된다.

TCP/IP

  • ARPA에서 갭라한 네트워크를 통해 컴퓨터가 통신하는 방법을 규정
  • 물리, 데이터링크, 네트워크, 전송, 응용 계층으로 구성
  • TCP/IP의 응용계층은 OSI의 세션, 표현, 응용을 합친 계층

PDU 프로토콜 데이터 단위 계층 구성의 프로토콜에서 상위 프로토콜 계층으로부터 송신을 위해 주어지는 데이터 단위 LLC의 부계층에서 만들어 진다. 응용계층: 메세지, 전송계층: 세그먼트, 네트워크계층: 데이터그램, 데이터링크계층: 프레임

IP

  • 인터넷 프로토콜
  • 신뢰성을 제공하지 않는 비연결형 데이터그램 프로토콜
  • 패킷을 분할, 병합하는 기능 수행
  • 헤더 체크섬만 제공
  • 클래스 A~C는 유니캐스팅에서 사용하고 클래스 D는 멀티캐스팅에 사용, 클래스 E는 예비주소체계
  • A에서 C로 갈수록 규모가 작은 네트워크

UDP

  • 사용자 데이터그램 프로토콜, User Datagram Protocol
  • 상위계층에서 받은 데이터를 IP 프로토콜에 전달하지만 데이터그램이 목적지까지 제대로 도착했는지 확인하지 않음
  • 포로토콜을 처리하는 기능이 작아 TCP보다 처리가 빠르다.
  • 헤더, 데이터 모두 체크섬 기능 제공
  • 헤더는 송신포트, 수신포트, 길이, 체크섬으로 구성

TCP

  • 분할 단위는 세그먼트
  • 연결형 서비스 제공
  • 신뢰성 있는 데이터 전송 보장
  • 전이중 방식
  • 헤더는 송신, 수신포트, 순서번호, 응답번호, 데이터 오프셋, 예약, 윈도우, 체크섬, 긴급 포인터로 구성

피기백킹 piggybacking, 수신한 패킷에 대한 확인 응답을 전송하는 패킷에 포함하여 같이 전송

TCP 헤더 플래그 비트

  • URG: 긴급 포인터 필드가 유효한지
  • ACK: 응답번호 필드가 유효한지
  • PSH: 현제 세그먼트의 데이터를 상위 계층에 즉시 전달하도록 지시
  • RST: 연결의 리셋이나 유효하지 않은 세그먼트에 대한 응답
  • SYN: 연결 설정 요구
  • FIN: 연결 종료 의사

주소변환

ARP

  • 주소 결정 프로토콜, Address Resolution Protocol
  • IP 주소를 MAC 주소로 변환

RARP

  • 역순 주소 결정 프로토콜, Reverse Address Resolution Protocol
  • MAC 주소를 IP 주소로 변환

ICMP

  • Echo request, Echo reply: 반향 요청, 반향 응답, 네트워크의 신뢰성을 검증
  • Destination unreachable: 목적지 도착 불가능
  • Source quench: 소스 억제
  • Time Exceeded: 실행시간 초과
  • 인터넷 환경에서 오류 처리를 지원하는용도로 사용
  • IP 패킷의 데이터 부분에 캡슐화되어 송신 호스트로 전달

IGMP

  • 임의의 호스트가 멀티캐스트 그룹에 가입하거나 탈퇴할 때 사용하는 프로토콜
  • 자신이 IGMP 메세지에 표시된 멀티캐스트 주소의 멤버임을 다른 호스트와 라우터에 알리는 용도

DHCP

  • Dynamic Host Configuration Protocol, 동적 호스트 설정 통신규약
  • TCP/IP 통신을 실행하기 위해 필요한 설정 정보를 자동적으로 할당, 관리하기 위한 통신규약
  • RFC 1541에 규정
  • DHCP를 사용하지 않는 경우에는 각 컴퓨터마다 IP 주소가 수작업으로 입력되어야 한다.
  • 네트워크 관리자가 중앙에서 IP 주소를 관리하고 할당하며, 컴퓨터가 네트워크의 다른 장소에 접속되었을 때 자동으로 새롱누 IP 주소를 전송
  • IP 주소가 일정 시간 동안만 컴퓨터에서 유효하도록 하는 임대 개념

IPv6

  • 128 비트

LAN

  • 단일 기관 소유
  • 연결성
  • 경로 선택이 필요 없음
  • 광대역 전송매체 사용으로 고속통신 가능
  • 높은 신뢰도
  • 자원 공유
  • 분산 처리
  • 분산 제어
  • 정보 교환

스타형 / 별형 LAN

버스형 LAN

  • 보통 CSMA/CD 방식 이용, 토큰 버스 방식도 이용

베이스 밴드 특정 반송파를 변조하기 위해 사용되는 모든 신호에 의해 얻어지는 주파수 대역 기저대역

CSMA/CD

  • Carrier Sense Multiple Access with Collision Detection
  • 반송파 감지 다중 접속 및 충돌탐지
  • 호스트가 회선의 상태를 감시하여 충돌을 피하는 방식
  • 충돌이 확인되면 일정시간 대기 후 다시 충돌을 확인하고 충돌이 감지되지 않을 경우 데이터를 전송
  • IEEE 802.3
  • 버스형 네트워크

토큰 버스

  • IEEE 802.4
  • 물리적으로는 버스구조, 논맂거으로는 링형태의 구성
  • 부하 증가에 딸느 영향이 적다.
  • 부하가 적어도 기본적인 오버헤드

링형 LAN

  • 광섬유의 특성에 잘 맞는 형태

토큰 링

  • IEEE 802.5
  • 부하의 증가에 따른 영향을 적게 받음
  • 부하가 적어도 기본적인 오버헤드가 있다.

트리형 / 허브형 LAN

메시형 LAN

전송 매체에 따른 분류

  • 이중 꼬임선 LAN
  • 동축 케이블 LAN
  • 광섬유 LAN
  • 무선 LAN: RF, Microwave, 적외선, 위성파

전송 방식에 따른 분류

  • 베이스밴드 LAN: 신호 변조 없이 송신하는 방식, 중소규모 형태
  • 브로드밴드 LAN: 모뎀 등에 의해 변조시켜 송신하는 방법, 주파수 변조와 위상 변조, 대규모

매체접근 방법에 의한 분류

  • 고정할당방식: FDM, TDM
  • 랜덤할당방식: ALOHA, CSMA, CSMA/CD
  • 요구할당방식: token passing, register, insertion, slotted

근거리 통신망의 구성요소

하드웨어

  • 서버 컴퓨터
  • 리피터: 케이블에 전송되는 전기적인 데이터 신호를 재생하고 중계하는 장치, 물리계층
  • 허브: 클라이언트들을 네트워크에 연결하는 가장 기본적인 공유연결장치, 물리계층
  • 브리지: 서로 다른 두 네트워크를 연결할 때 사용하는 가장 기본적인 장치, 물리 데이터링크 계층
  • 라우터: 서로 다른 세그먼트 간에 브로드캐스트 패킷이 전달되지 않도록 트래픽을 분리하는 역할 및 원격지에 있는 랜과 랜을 연결해주는 역할, 물리 데이터링크, 네트워크 계층
  • LAN 스위치: 데이터 전송 시 멀티미디어 데이터가 많은 경우 각 노드 간에 패킷 재전송 작업이 많이 발생하여 네트워크 성능이 떨어지고 대역폭 부족이 발생하는데 이런 문제점을 해결하기 위한 장비
  • 게이트웨이: 사용하는 매체나 각종 프로토콜이 일치하지 않는 서로 다른 네트워크 구조의 네트워크 사용자끼리도 통신이 가능하도록 해주는 장치

CIU

  • Computer Interface Unit
  • 컴퓨터 접속장치 및 네트워크 연결장비
  • 랜 카드, 허브, 브리지, 라우터, 스위치, 게이트웨이 장비 등

BIU

  • Basic Information Unit
  • 네트워크에서 데이터 전송 시 사용되는 기본 정보 단위

통신망 노드

  • 컴퓨터 네트워크는 컴퓨터, 데이터 통신망, 단말장치 등으로 구성

LAN의 논리 링크 제어

LLC 계층

  • 논리링크제어, Logical Link Control
  • 슬라이딩 윈도우 프로토콜 사용

MAC 계층

  • 공유 버스 방식의 이더넷
  • 토큰 링 방식

IEEE 802 프레임 형식

  • IEEE 802.3에서 제정한 1-persistent CSMA/CD 방식의 근거리 통신망 환경에 관해 규정한 표준안

802.3 이더넷 프레임 구조

  • 필드 크기는 바이트
  • Preamble, Start delimiter, destination addr, source addr, length, data, pad, checksum

MAU Media Attachment Unit 호스트 컴퓨터상의 부착 유닛 인터페이스 포트를 UTP 또는 동축 케이블 등과 같은 이더넷 네트워크 매체에 접속하기 위한 장치

공통키 암호 방식

  • 관용암호 방식, Conventional Encryption System
  • 환자 암호: Substitution Cipher 평문 문자를 암호문 문자로 일대일 대응시켜 암호화하는 방식
  • 전치 암호: Transpose Cipher 평문 문자의 순서를 어떤 특별한 절차에 따라 재배치하여 평문을 암호화 하는 방식, 순열 암호
  • 적 암호: Product Cipher 암호 강도를 향상시키기 위해 전치와 환자를 혼합한 암호 방식

공개키 암호 방식

키 분배 프로토콜

  • 키 분배: 키가 생성된 위치로부터 암호 알고리즘에서 사용된 위치로 암호화 키를 전송하는 과정
  • 키 사전분배: key predistribution 한 가입자가 키를 만들어 상대 가입자 또는 양측 가입자에게 전달하는 방식
  • 키 동의: key agreement 암호 방식을 이용하려는 상대자가 서로 키를 설정하는데 공동으로 참여하는 방식

DES CBC, CFB, OFD, ECB 모드

베스천 호스트 철저한 방어정책이 구현된 방화벽 외부로부터의 일차적인 연결을 받아들이는 시스템

컴퓨터시스템구조

· 약 62분

세대별 구분

1세대

  • 진공관
  • 프로그램 내장방식
  • 전력소모 크고 발열 심함
  • 기계어, 어셈블리어

2세대

  • 트랜지스터
  • 진공관 컴퓨터에서 1/100 축소
  • 고급언어 (COBOL)

3세대

  • 집적회로 (IC: Integrated Circuit)
  • 고급언어 (베이직)

4세대

  • 고밀도 집적회로 (LSI: Large Scale Integrated circuit)
  • 초고밀도 집적회로 (VLSI: Very Large Scale Integrated Circuit)
  • PC
  • 고급언어, 문제지향적 언어

컴퓨터 시스템의 전체적 구성

시스템 버스

  • CPU, 기억장치, I/O 장치들을 상호 연결해주는 중심 통로
  • 단방향 어드레스 버스, 양방향 데이터 버스, 양방향 제어버스로 구성

입력장치

출력장치

기억장치

중앙처리장치

  • 연산장치, 제어장치, 레지스터로 구성
사람컴퓨터
감각입력장치
뇌세포기억장치
신경망중앙처리장치
움직임출력장치

운영체제

  • HW와 SW 자원을 관리하고 제어
  • 편리한 인터페이스 제공
  • 입출력의 보조적 기능 수행
  • 오류 처리

자원관리

  • 프로세스 관리
  • 주기억장치 관리
  • 보조기억장치 관리
  • 입출력장치 관리
  • 파일 관리

컴파일러, 인트프리터: 고급언어를 기계어로 변환하기 위한 번역기

분류

성능과 규모

  • 마이크로 컴퓨터: 현재 범용컴퓨터
  • 미니컴퓨터: 멀티유저 시스템
  • 메인프레임: 범용목적의 대형컴퓨터, 다수의 터미널 사용
  • 슈퍼컴퓨터

구조

  • 병렬컴퓨터: 동시에 여러 개의 마이크로프로세서 사용
  • 분산컴퓨터: 데이터가 네트워크 상에 분산되어 있을 때
  • 클라우드컴퓨터

사용목적

  • 전용컴퓨터: 군사용, 기상예보용, 천문학 등
  • 범용컴퓨터: 여러 분야의 다양한 업무 처리할 목적으로 설계된 컴퓨터 (과학계산, 통계 등)

처리방법

  • 일괄처리 컴퓨터: 일정 시점 단위로 한꺼번에 처리
  • 실시간 처리 컴퓨터: real-time, 온라인 처리 시스템, 즉시처리 시스템

자료표현

  • 디지털 컴퓨터
  • 아날로그 컴퓨터: 자료를 입력받아 곡선이나 그래프로 출력하는 컴퓨터
  • 하이브리드 컴퓨터: 아날로그, 디지털 데이터 모두 처리, A/D (Analog-Digital conveter) 변환기, D/A(Digital-Analog converter)로 데이터 변형 출력 가능

발달과정

특징컴퓨터
최초 기계식마크원
최초 전자식ENIAC
최초 프로그램내장EDSAC
최초 상업용UNIVAC-I

진공관 > TR > IC > LSI > VLSI 폰노이만 모델: 기억장치에 프로그램과 데이터를 넣고 순서대로 처리하는 방식 (프로그램 내장방식) 시스템버스: 어드레스 버스, 데이터 버스, 제어 버스

컴퓨터 명령어

주소필드

  • mode, operation code, address 필드로 구성
  • mode = 0 => 주소가 직접번지, mode = 1 => 주소가 간접번지
  • 주소필드는 주소 || 레지스터 || 데이터를 나타냄
  • 16bit 명령어의 경우: 1bit, 3bit, 12bit

3주소 명령어

  • 범용 레지스터 구조의 컴퓨터에서 사용
  • 연산코드와 3개의 주소필드로 구성
  • 프로그램은 간단하나 명령어의 길이가 너무 길다

2주소 명령어

  • 범용 레지스터 구조의 컴퓨터에서 사용
  • 연산코드와 2개의 주소필드로 구성
  • 연산시에 주소1의 내용은 실행 후에 출력값으로 저장되므로 원래 주소1의 내용은 없어진다.

1주소 명령어

  • 단일 누산기 방식의 컴퓨터에서 사용
  • ACC와 Operand의 연산결과는 다시 ACC에 저장되는 형식
  • 입력으로 사용된 누산기는 결과값이 저장되어 원래 값은 없어진다.

0주소 명령어

  • STACK

주소지정방식

의미주소지정

  • Implied Addressing Mode
  • 묵시적 주소지정방식
  • 데이터의 위치를 지정하지 않아도 묵시적으로 정해져 있음
  • PUSH, POP: Stack Pointer 사용
  • SHL, SHR: ACC의 내용을 시프트
  • 명령어가 짧다

즉치주소지정

  • Immediated Addressing Mode
  • Operand의 내용이 연산에 사용될 실제 데이터
  • 프로그램상에서 레지스터나 변수의 초기값을 설정하는데 사용

레지스터 주소지정

  • Register Addressing Mode
  • 레지스터에 데이터가 존재
  • 레지스터를 지정하는 오퍼랜드가 4bit라면 16개의 레지스터를 지정할 수 있음
  • 메모리를 액세스하지 않아 실행시간 단축
  • 데이터를 저장하는 공간이 레지스터로 한정

레지스터 간접주소지정

  • Register Indirect Addressing Mode
  • 레지스터의 내용이 유효주소가 되기 때문에 지정된 레지스터의 내용이 메모리 주소가 되어 유효 데이터를 가져옴
  • 레지스터가 10bit면 2^10B, 20bit면 1MB의 메모리 영역을 지정 가능
  • 데이터 인출을 위해 한 번만 메모리를 액세스하면 된다.

직접주소지정

  • Direct Addressing Mode
  • 오퍼랜드가 데이터의 유효주소
  • 데이터 인출을 위해 한 번만 메모리 액세스

간접주소지정

  • Indirect Addressing Mode
  • 오퍼랜드의 데이터가 가리키는 기억장소의 데이터가 유효주소 (2번)
  • 오퍼랜드가 nbit면 최대 2^n개의 주소공간
  • 명령어의 I비트가 0이면 직접주소, 1이면 간접주소

상대주소지정

  • Relative Addressing Mode
  • 명령어의 주소필드에 PC(Program Counter) 값이 더해져서 유효주소가 결정되는 방식
  • 기준 주소는 명령어의 주소, 변위는 PC
  • 주로 분기명령어에서 사용

인덱스된 주소지정

  • Indexed Addressing Mode
  • 인덱스 레지스터의 내용과 주소필드의 내용이 더해져서 유효주소가 결정
  • 기준 주소는 명령어의 주소, 변위는 인덱스 레지스터

베이스 레지스터 주소지정

  • Base Register Addressing Mode
  • 베이스 레지스터의 내용과 주소필드의 내용이 더해져서 유효주소가 결정
  • 기준 주소가 베이스 레지스터, 변위는 명령어의 주소필드

명령어의 종류

데이터 전송명령

  • 데이터가 변경되지 않고 위치만 옮기는 명령
명령어부호기능
loadLDmem => reg
storeSTreg => mem
moveMOVreg 간 전송
inputIN입력장치 => reg
outputOUTreg => 출력장치
pushPUSHreg => stack
popPOPstack => reg

데이터 처리 명령

  • 실제로 연산이 이뤄지는 명령
  • 산술연산명령어, 논리연산명령어, 비트처리명령어, 시프트명령어로 구분

산술연산

명령어부호기능
addADD덧셈
subtractSUB뺄셈
multiplyMUL곱셈
incrementINCmem, reg 1 증가
decrementDECmem, reg 1 감소
negateNEG2의 보수
add with carryADDC올림수와 함께 덧셈

논리연산

명령어부호기능
ANDAND특정부분 0으로 셋
clearCLR모든 비트 0으로 셋
clear carryCLRC캐리비트를 0으로 셋
enable interruptEI인터럽트 가능
disable interruptDI인터럽트 불가능

시프트

명령어부호기능
logical shift rightSHR오른쪽 논리 시프트
logical shift leftSHL왼쪽 논리 시프트
rotate rightROR현재값 유지하면서 오른쪽 자리이동
rotate lestROL현재값 유지하면서 왼쪽 자리이동

프로그램 제어명령

조건에 따라 PC가 변경되어 수행순서가 달라진다

명령어부호기능
branchBR지정된 주소로 분기
jumpJMP지정된 주소로 점프
skipSKPPC값 증가 후 다음 명령으로 skip
callCALLPC값 저장, 서브루틴 콜
returnRET리턴 주소를 PC에 저장
compareCMP두 수 크기 비교

프로그램 인터럽트

외부 인터럽트

  • 입출력장치, 전원 등 외부 요인으로 발생
  • 입출력장치의 데이터 전송 요구, 정보전송의 마감, timeout, 전원공급이 끊어질 때 발생
  • 프로그램 외적인 상황에서 발생

내부 인터럽트

  • 올바르지 않은 명령어나 데이터 사용시 발생
  • overflow, div 0, stack overflow, 메모리 보호영역 침범 등
  • 프로그램 자체에서 주로 발생

소프트웨어 인터럽트

  • 특수한 CALL 명령어로 프로그래머가 원하는 위치에서 인터럽트 발생
  • supervisor call instruction
  • 사용자 모드엥서 supervisor 모드로 CPU 상태를 변환

외부 인터럽트 처리

  1. 외부 인터럽트 발생
  2. CPU는 현재 수행하는 명령어의 실행 사이클 종료
  3. 다음 실행할 PC의 내용을 스택에 저장
  4. 인터럽트 서비스 루틴의 시작주소를 PC에 저장
  5. 인터럽트 처리 후 스택영역에 저장된 PC를 복구
  6. 프로그램 복귀 후 계속 실행

복합, 단축 명령어 컴퓨터

CISC

  • Complex Instruction Set Computer
  • 다양한 데이터와 주소방식 제공
  • 많은 명령어와 주소지정방식을 구현하기 위해 많은 하드웨어 필요
  • 실행속도가 느림

RISC

  • Reduced Instruction Set Computer
  • Load와 Store를 제외하고는 레지스터 간의 연산으로 구성
  • 고정된 명령어 형식 사용
  • 복잡한 간접주소지정방식은 사용하지 않음

시스템 버스

  • 컴퓨터 시스템의 각각의 장치를 연결하여 정보를 전송하는 공유전송매체
  • CPU를 중심으로 주기억장치, 보조기억장치, 입력장치, 출력장치가 데이터를 주고받는 통로

주소버스

  • Address Bus
  • 주기억장치에 데이터를 읽기/쓰기 위해서 주소를 지정하기 위한 선들의 집합
  • 단방향 전송
  • 주소 버스가 16bit이면 2^16 => 65536개의 주소 지정

데이터버스

  • 각각의 장치들 사이의 데이터를 전송하는 선들의 집합
  • 양방향 전송
  • 버스의 폭은 주소를 지정하고 한 번에 R/W하는 비트의 수
  • 주소당 32bit 씩 데이터를 전송한다면 데이터 버스의 수는 32개

제어버스

  • CPU, I/O장치, Memory 장치를 제어하는 신호선들의 집합
  • 인터럽트 요구 신호
  • 인터럽트 승인 신호
  • 버스요구 신호
  • 버스승인 신호
  • 기억장치 읽기 신호
  • 기억장치 쓰기 신호
  • 입출력장치 읽기 신호
  • 입출력장치 쓰기 신호
  • 리셋 신호
  • 버스 클록
  • 전송 확인 (transfer acknowledge)

동기식버스

  • 클록 펄스에 의해 데이터 전송이 발생
  • 마스터와 슬레이브는 모두 같은 클록 펄스에 동기
  • 인터페이스 회로가 간단
  • 클록의 주기보다 짧은 동작은 다음 주기까지 기다려야하는 단덤

비동기식버스

  • 핸드셰이킹 프로토콜 사용
  • 속도의 차이가 많은 장치에서 사용
  • 복잡
  • 소규모에선 비동기, 중형이상에선 동기방식을 주로 사용

버스중재

  • 동시에 여러 장치에서 버스를 요구할 때 필요 = 버스 경합

중앙집중식 중재방식

  • centralized arbitration scheme
  • 시스템 내에 중재기가 1개

분산식 중재방식

  • decentralized arbitration scheme
  • 여러 개의 버스중재기가 존재

대표적 버스 중재기: 데이지 체인, 폴링 방식

내부버스

  • 칩들 사이에 신호를 전달

외부버스

내부 버스를 경유해 CPU와 상호간을 연결하는 버스

VME

  • VMEbus 컴퓨터 버스 표준
  • 모토로라, 톰슨 사 등이 개발한 32bit, 64bit 버스 규격

멀티 버스

  • 인텔에서 개발한 범용 버스 시스템
  • 현재 산업용으로 사용
  • 멀티플렉서를 통해 다른 소자와 데이터를 송수신
  • 다중처리 가능
  • 마스터나 슬레이브로 동작
  • 마스터는 버스사용권을 얻어 데이터 전송 가능
  • 슬레이브는 스스로 버스를 제어할 수 없음

ISA 버스

  • Industry Standard Architecture bus
  • CPU와 각종 주변장치를 연결하여 정보를 전달하는 버스 설계 규격
  • AT 버스라고도 한다.
  • 16bit 버스 구조, 현재는 PCI 버스로 대체

EISA 버스

  • Extended Industry Standard Architecture bus
  • 32bit ISA 버스
  • 비싸서 사용 안함

VESA 로컬 버스

  • Video Electronics Standards Association local bus
  • 버스 제어기를 통하지 않고 직접 CPU와 데이터를 송수신하는 방식

PCI 버스

  • ISA, EISA, VESA의 후속
  • 32bit, 64bit 사용 가능
  • CPU의 종류가 달라도 CPU와 버스 사이의 브릿지 회로만 있으면 사용 가능
  • 독자적으로 작업을 처리할 수 있음

GPIB 버스

  • General Purpose Interface bus
  • 병렬 데이터를 전송하고 제어할 수 있는 버스
  • 테스트 및 측정장치를 컴퓨터와 연결하여 자동 테스트 시스템을 만든다.

마이크로 연산

  • 레지스터 사이의 전송정보 동작
  • Micro Operation

레지스터 종류

  • 소자는 플립플롭
  • 고유의 주소값을 가진다.
  • MAR, PC, SP, R0 등
  • 데이터 레지스터, 주소 레지스터, 상태 레지스터로 구분
  • 범용 레지스터 (GPR), 특수레지스터 (SPR)로 구분

주소 레지스터

  • Address Register

MAR

  • 메모리 주소 레지스터
  • 주소를 먼저 지정

PC

  • 프로그램 카운터
  • 다음 명령어의 주소를 지정
  • PC의 내용은 MAR로 전송되고 MAR의 내용이 주소 버스를 통해 메모리 주소를 지정

SP

  • 스택 포인터
  • 서브루틴 또는 인터럽트가 발생시 현재 레지스터의 내용을 저장하는데 레지스터를 저장하기 위한 스택 영역 메모리의 주소를 기억

CMAR

  • Control Memory Address Register
  • 마이크로프로그램이 있는 메모리의 주소를 기억

XR

  • 인덱스 레지스터
  • 기준 되는 주소에 XR의 변위값을 더해서 유효 주소를 발생
  • 데이터 블록 전송에 사용

BR

  • 베이스 레지스터
  • 베이스 레지스터에 기준이 되는 주소가 있고 여기에 변위값이 더해져 유효주소를 발생

데이터 레지스터

MBR

  • Memory Buffer Register
  • 주기억장치에서 데이터를 읽거나 데이터를 주기억장치에 기록할 때 사용되는 레지스터

ACC

  • ACCucmulator
  • 연산장치의 입력값을 저장하거나 연산이 끝난 후의 결과값을 저장
  • ACC => MBR => 데이터 버스 => 주기억장치 저장

TR

  • T buffer = Temporary Register
  • 연산 중에 중간값을 임시 저장

PSR

  • Program Status Register
  • CPU에서 수행되고 있는 프로그램의 상태정보를 기억하고 있는 레지스터
  • Carry, Negative, oVerflow, Zero, Interrupt 플래그의 내용 표시

레지스터 전송

직렬전송

  • 한 클록에 1bit씩 전송
  • 워드 타임 (Word time): 4bit 모두 전송하는데 걸리는 시간

병렬전송

  • 데이터 전송이 한 클록 펄스 동안 이루어지는 전송

산술 마이크로 연산

덧셈, 뺄셈, 1 증가, 1 감소, 보수 image from hexo

논리 마이크로 연산

SET

  • 특정 비트를 강제로 1로 만들 때 사용
  • OR 연산

MASK

  • 특정 비트를 강제로 0으로 만들 때 사용
  • AND 연산

Selective Complement

  • 특정 비트를 강제로 보수로 만들 때 사용
  • XOR 연산

시프트 마이크로 연산

논리 시프트

  • Logical Shift
  • 버리고 0 삽입

순환 시프트

  • Circular Shift = Rotate
  • 버린걸 반대편 끝으로 삽입

산술 시프트

  • Arithmatic Shift
  • 부호 비트를 고려하여 수행되는 시프트
  • 부호 비트는 남기고 데이터 비트만 시프트

처리장치의 구성요소

  • ALU: 제어장치에서 명령어를 해독한 다음 실질적으로 연산을 수행하는 장치
  • 연산장치는 산술연산장치와 논리연산장치로 구성

단일 누산기 CPU의 내부 버스

3개의 레지스터 간 병렬전송

  • 레지스터가 n비트면 6n개의 신호선

단일 버스에 연결된 레지스터 선택회로

  • 4개의 레지스터 선택시 2X4 디코더 필요

ALU

  • 산술/논리 연산장치 = Arithmatic and Logical Unit
  • 산술, 논리, 시프트 등을 수행하는 장치
  • 가산기(산술연산장치), 시프트, 논리연산회로, 보수기(complementer), 상태레지스터(PSR)로 구성

산술연산장치

  • 전가산기를 이용한 병렬 가산기
  • n비트의 2진 병렬가산기는 n개의 전가산기로 구성

image from hexo

상태 레지스터와 flag

  • C: Carry bit
  • S: Sign bit
  • Z: Zero bit, 값이 0일시 1로 셋
  • V: oVerflow bit
  • 연산 결과에 따라 1 또는 0

논리연산장치

  • AND, OR, NOT, XOR
  • 멀티플렉서와 조합논리회로 (& | ! ^) 게이트를 이용하여 구성 가능

시프터

제어단어

  • Control word
  • 하드와이어드 제어방식과 마이크로프로그램 제어방식 (제어장치 구현방법)
  • 마이크로 프로그램 제어방식은 제어장치 내의 기억장치에 마이크로 명령어를 저장하여 마이크로 연산을 순차적으로 수행시키는데 이 마이크로 명령어를 제어단어라고 한다.

파이프라인 처리구조

  • 명령어 파이프라인: CPU에서 명령어를 읽어 순차적으로 실행, 하나의 명령어가 실행되는 도중에 다른 명령어 실행을 시작하는 식으로 동시에 여러 개의 명령어를 실행하는 기법

실행과정

  • 명령어 인출: Instruction Fetch
  • 명령어 해독: Instruction Decode
  • 오퍼랜드 인출: Operand Fetch
  • 실행: Excute

마이크로프로그램 제어

  • 마이크로 명령어들의 집합

제어장치

  • 주기억장치에 있는 프로그램, 명령어를 순서대로 읽어옴
  • 명령어를 해독
  • 각 장치에 신호를 보내 프로그램 처리

제어장치 제어기능

  • 오퍼레이션 부분과 오퍼랜드로 구성 (Op Code와 Address)
  • 명령어 수행단계는 인출단계와 실행단계로 나뉨

제어장치 구성

  • IR (Instruction Register): 명령 레지스터, 주기억 장치에서 인출된 명령어를 기억하는 레지스터
  • Instruction Decoder: 명령 해독기, 명령 레지스터로부터 명령코드를 받아서 해독하고 결과는 제어신호 발생기에 전송
  • 제어신호 발생기: 타이밍 발생회로와 제어회로로 구성
  • Program Counter: 프로그램 계수기, 다음 실행될 명령어를 가진 주기억장치의 주소를 기억하는 레지스터

명령어 수행 과정

  1. PC의 주소를 MAR로 전송
  2. MAR 번지에 있는 명령어를 읽어 MBR로 전송, PC 1 증가
  3. MBR에서 IR로 전송, OP Code와 주소필드를 각각 해독기와 주소 레지스터로 전송
  4. MAR에서 데이터와 Operand 주소를 계산하고 주기억장치에 접근
  5. 제어신호 발생기에서는 연산자를 해독하여 명령수행을 위한 제어신호 발생
  6. 반복

명령어 사이클

상태기능
Fetch1. 명령어를 주기억장치에서 읽음
2. 명령어 해독
3. 1사이클이면 실행 후 fetch로 이동
4. 아니면 유효주소를 계산해 간접주소면 indirect, 직접이면 execute
Indirect1. 주소를 주기억장치에서 읽음
2. 간접주소이면 다시 indirect
3. 분기명령이면 실행 후 fetch
4. 아니면 execute
Execute1. 데이터를 주기억장치에서 읽음
2. 실행 후 fetch
Interrupt1. PC 내용을 스택에 저장
2. PC는 인터럽트 시작주소로 변경
3. PSR I bit에 1 처리
4. 인터럽트 처리루틴의 fetch로 이동
플리플롭메이저 상태
0 0Fetch
0 1Indirect
1 0Execute
1 1Interrupt

Fetch Cycle

  1. MAR <= PC
  2. MBR <= M[MAR], PC <= PC + 1
  3. IR <= MBR

Indirect Cycle

  1. MAR <= IR(addr)
  2. MBR <= M[MAR]
  3. IR(addr) <= MBR

Execute Cycle

  • ADD X
    1. MBR <= M[MAR]
    2. AC <= AC + MBR
  • LDA X: X번지에서 데이터를 읽어 누산기에 저장하는 명령어 (LOAD)
    1. MBR <= M[MAR]
    2. AC <= MBR
  • STA X: 누산기의 내용을 X번지에 저장하는 명령어 (STORE)
    1. M[MAR] <= AC
  • ISZ X: X번지의 내용을 1증가 시키고 결과값이 0이면 다음 명령어를 실행하지 않고 건너뛰는 명령 (Increment & Skip if Zero)
    1. MBR <= M[MAR]
    2. MBR <= MBR + 1
    3. M[MAR] <= MBR, if( MBR = 0 ) then ( PC <= PC + 1 )
  • AND X: 누산기와 X번지 내용을 AND 연산해 결과값을 누산기에 저장하는 명령어
    1. MBR <= M[MAR]
    2. AC <= AC & MBR

Interrupt Cycle

  1. MBR <= PC
  2. MAR <= SP, PC <= ISR (Interrupt Service Routine)
  3. M[MAR] <= MBR

마이크로 연산

한 개의 클록펄스 동안 레지스터의 데이터가 실행하는 기본 동작

수평 마이크로 명령어

  • 제어신호필드, 조건분기필드, 주소필드
  • 마이크로 명령어는 0, 1로 제어신호 출력
  • 한 개의 비트가 하나의 마이크로 연산을 지정
  • 조건분기필드는 branch에 사용
  • 주소필드는 다음에 실행될 마이크로 명령어의 주소 지정
  • 동작속도가 빠르고 하드웨어를 효율적으로 사용하는 장점
  • 긴 제어단어가 필요해 비용이 많이 드는 단점

수직 마이크로 명령어

  • 디코딩을 통해 제어신호 발생
  • 제어단어의 비트 수가 줄어든다
  • nbit로 2^n개의 마이크로 연산 표시 가능
  • 디코더 필요

단일 사이클 제어

모든 레지스터의 이동은 클록 펄스에 의해 제어

  • 마이크로 사이클: 하나의 마이크로 연산이 수행되는 과정
  • 마이크로 사이클 타임
  • 마이크로 오퍼레이션: 마이크로 사이클 동작
  • 동기식과 비동기식으로 구분
  • 하드웨어 제어방식
  • 1개의 클록 사이클에 1개의 명령어를 실행

동기 고정식

  • 가장 수행시간이 긴 것을 사이클 타임으로 설정
  • 모든 마이크로 연산의 시간이 유사한 경우 사용
  • 구현 간단
  • CPU 처리시간 낭비 발생

동기 가변식

  • 유사한 것끼리 몇 개의 군으로 모아서 마이크로 사이클 타임을 설정
  • CPU의 성능을 높이고 전체적으로 속도 향상
  • 제어 복잡

비동기식

  • 각각의 마이크로 연산에 대해 서로 다른 마이크로 사이클 타임을 설정
  • 하나의 마이크로 연산이 끝나면 다음 마이크로 연산 타임이 신호가 발생
  • 복잡해서 안 사용함

하드웨어 제어

2X2bit 인 경우 4개의 AND 게이트와 2개의 반가산기 필요

파이프라인 제어

하나의 프로세서를 서로 다른 기능을 가진 여러 개의 서브 프로세서로 나누어 각 프로세서가 동시에 서로 다른 데이터를 처리하도록 하는 기법

명령어 집합

마이크로 명령어의 형식

  • 연산 필드
  • 조건 필드: 상태 비트 조건 선택 필드
  • 분기 필드
  • 주소 필드: 다음 주소 지정

처리장치

명령어 해독기

  • instruction decoder
  • op code를 해독하고 연산의 시작주소를 결정

제어주소 레지스터

  • CAR = Control Address Register
  • 제어 메모리의 주소를 지정하는 레지스터
  • 다음 실행할 마이크로 명령어의 주소를 저장

제어기억장치

  • Control Memory
  • 마이크로프로그램이 저장된 내부기억장치

제어 버퍼 레지스터

  • CBR = Control Buffer Register
  • 제어 메모리에서 읽은 마이크로 명령어를 일시적으로 저장하는 레지스터

서브루틴 레지스터

  • SBR = Subroutine Register
  • 서브루틴이 발생한 경우 현재 제어주소 레지스터(CAR)의 내용을 일시적으로 저장하는 레지스터

순서제어 모듈

  • Sequencing Module
  • 마이크로 명령어의 실행순서를 결정하는 모듈

명령어 주소 결정

  1. 제어주소 레지스터 1 증가
  2. 무조건 분기와 상태 비트 조건에 따른 조건부 분기
  3. 명령어의 op code로부터 제어기억장치의 주소로 매핑
  4. 서브루틴 call, return

제어기

순서 레지스터와 디코더를 이용한 방식

  • 각 상태마다 하나의 출력신호가 발생하도록 디코더를 사용
  • nbit의 순서 레지스터는 n개의 플리플롭과 게이트로 구성
  • 2bit의 경우 2^2 = 4개의 상태 표시, 2X4 디코더 필요

상태 플리플롭을 이용한 제어방식

  • 각 상태에 한 개의 플립플롭이 필요
  • 한 순간에 여러 개의 플립플롭 중에 단 한 개만 1이 된다.
  • 다수의 플립플롭이 필요
  • 상태 수가 증가하면 상당히 복잡해진다
  • 설계는 간편

CISC

  • Complex Instruction Set Computer
  • 다양한 어드레싱 기능
  • 명령어 길이와 실행시간이 가변적
  • 명령어 복잡

RISC

  • CPU의 명령어 개수를 줄여 하드웨어 구조를 좀 더 간단하게 만드는 방식
  • 높은 처리속도
  • 단순 구조
  • 주기억장치 액세스 명령어의 제한
  • 주소지정방식의 단순화

사상(Mapping): 각 명령어의 실행 전용 루틴을 찾는 것

기억장치

참조 지역성

공간적 지역성

  • Spatial locality
  • 특정 데이터가 참조되면 그 부근의 데이터가 참조될 확률이 높아짐

시간적 지역성

  • 특정 데이터를 액세스하면 빠른 시간 내에 그 데이터를 다시 참조하는 확률이 높음
  • 캐시의 이유

기억장치 성능평가 요인

  • 기억용량: capacity
  • 접근시간: access time
  • 사이클타임: 하나의 액세스 시작부터 다음 액세스를 시작할 때까지의 시간
  • 기억장치 대역폭: bandwidth 1초동안 송수신할 수 있는 비트 수
  • 가격

속도 순서: 레지스터 > 캐시 > 주기억장치 > 보조기억장치 (디스크 > 테이프)

주기억장치

폰 노이만 병목현상: 주기억장치를 이용하는데 CPU와 입출력장치가 경쟁해 주기억장치에 병목 현상이 발생하는 것

복수모듈기억장치

  • 독자적으로 데이터를 저장할 수 있는 기억장치 모듈을 여러 개 가진 기억장치
  • 기억장치 버스를 시분할하여 사용

메모리 인터리빙

CPU가 각 모듈로 전송할 주소를 교대로 배치한 후 차례대로 전송하여 여러 모듈을 병행 접근하는 기법

  • 기억장치 접근시간을 효율적으로 높임
  • 캐시, 고속 DMA 전송에 사용
  • 각 모듈을 번갈아가며 접근 가능

연관기억장치

  • CAM = Content Addressable Memory)
  • 워드에 접근하여 원하는 정보를 찾는 기억장치
  • bit serial, bit parallel 구조
  • 내용에 의한 검색
  • 캐시 내부에서 사용
  • 외부 인자와 내용을 비교하기 위해 병렬판독논리회로, 하드웨어 장치가 필요

캐시기억장치

  • 주기억장치보다 빠른 기억소자로 구성해 CPU와 주기억장치 속도차를 줄임
  • 주기억장치에서 캐시로 워드를 전송할 때 그 주위 워드도 같이 전송됨 => 그 블록을 캐시로 이동
  • 히트: 액세스하려는 단어가 캐시에 있을 경우
  • 미스: 액세스하려는 단어가 캐시에 없을 경우
  • 캐시에 공간이 없으면 희생 블록을 선택해야한다.

적중률 = 히트 수 / 전체 메모리 참조 수 교체알고리즘: FIFO, random, LRU (미사용 중 가장 오래된 것부터), LFU (최소 사용부터)

캐시 사상방식

  • 직접사상: tag와 index 필요, 캐시와 주기억장치 인덱스 부분이 같은 경우에만 데이터가 저장
  • 연관사상: 데이터와 주기억장치의 주소도 함께 저장
  • 집합연관사상: 캐시 인덱스에 서로 다른 2개 이상의 데이터 블록을 저장

가상기억장치

  • 대용량 보조기억장치 일부를 주기억장치로 사용
  • 프로그램 명령어가 사용하는 주소를 가상주소, 주기억장치에 접근하기 위한 주소를 물리적 주소
  • CPU에서 참조하는 가상주소는 주기억장치의 실제 주소로 변환되어야 하며 이 것을 사상(mapping) 이라고 함
  • 사상방식에는 페이징 기법과 세그먼트 기법이 있다.

페이징 기법

  • 가상기억공간과 실제기억공간의 프로그램 블록의 크기가 같고 각 블록의 크기도 모두 동일할 때 이 블록을 페이지라고 한다.
  • 주기억장치에서 페이지를 찾지 못하는 경우를 page fault

세그먼트 기법

  • 프로그램의 논리적 구조에 따라 세그먼트를 다양하게 나누는 방법

보조기억장치

자기디스크

  • 블록: 자기디스크에서 주소에 의해 지정될 수 있는 정보의 단위
  • 트랙: 디스크 표면의 동심원
  • 헤드가 트랙을 지나가며 R/W
  • 액세스 암: 금속 끝에 헤드가 달려 있음
  • 이동 헤드 디스크: 플로피
  • 고정 헤드 디스크: 하드
  • 탐색시간: 헤드를 트랙까지 이동하는데 걸리는 시간
  • 회전지연시간: 섹터의 시작주소에 헤더가 도달하는데 걸리는 시간
  • 전송시간: 섹터에서 데이터를 읽어 주기억장치로 옮기는 데 걸리는 시간
  • 디스크 access time = seek time + rotational delay + transfer time

자기테이프

  • 순차접근방식
  • 용량이 커 장시간 보관 용도로 사용
  • DEBDIC 코드는 9트랙, BCD 코드는 7트랙
  • BPI: Byte Per Inch 1인치당 저장하는 바이트 수
  • 시작점은 BOT 끝점은 EOT
  • IRG: Inter Record Gap 레코드 사이의 갭
  • IBG: Inter Block Gap 블록 사이의 갭

RAID

Redundant Array of Inexpensive Disks 여러 개의 하드를 하나듸 하드로 다루는 방법

  • 하드웨어 RAID: 안정적이지만 고가
  • 소프트웨어 RAID: 운영체제에서 레이드 구성, 신뢰성은 떨어져도 저렴하게 데이터 저장 가능
  • 디스크 인터리빙: 데이터를 여러 개의 디스크에 분산 저장하는 기술

RAID-0

  • 빠른 입출력을 목적으로 하는 데이터를 여러 개의 하드에 분산 저장하는 스트라이핑 방법 사용
  • 하나의 디스크에 저장하는데 걸리는 시간을 여러 개의 디스크에 동시적으로 분산하여 저장하는 방식
  • 동영상 편집과 출판에 적합
  • 장애 발생시 뻑남

RAID-1

  • 미러링 기법
  • 한 드라이브에 기록되는 모든 데이터를 다른 드라이브로 복사
  • 하드 용량을 50%만 사용가능

RAID-2

  • 에러 검출 능력이 없는 드라이브를 위해 검사 디스크를 추가하고 해밍코드로 에러 검출 및 정정
  • 요즘은 오류 검출기능을 달고 나와서 거의 안씀

RAID-3

  • RAID-0의 빠른 I/O에 에러 보정 기술이 추가
  • 별도의 패리티 드라이브를 사용
  • 장애시 패리티 정보를 이용한 복구 가능

RAID-4

  • RAID-3에다가 각 드라이브에 데이터를 블록 단위로 분산 저장
  • 데이터 출력시 빠른 성능이지만 저장시 패리티 블록도 변경해야하는 단점
  • 최소 3개의 드라이브

RAID-5

  • RAID-3과 4의 단점 보완
  • 패리티 갱신을 위한 디스크 액세스가 분산되어 패리티 디스크에 대한 병목현상이 사라져 쓰기를 병렬로 수행 가능

RAID-6

  • RIAD-5에 다차원 패리티 체계를 구축한 시스템
  • 2개의 패리티 블록을 저장
  • 쓰기시 2개의 패리티를 갱신해야함

광기억장치

CD-ROM

  • Compact Disk Read Only Memory
  • 데이터는 트랙에 따라 순차적 저장
  • 액세스는 순차적이 아닌 직접 액세스 방식

DVD

  • 용량은 4.7~8.5GB
  • 2장의 얇은 디스크가 겹쳐져 있는 형태

1ns = 10^-9 s

입출력 제어기

입출력장치

  • 데이터를 저장하고 시스템에서 처리한 결과를 출력

입출력장치 제어기

  • 입출력장치를 움직이는 구동장치
  • 보통 입출력 장치에 포함

입출력장치 인터페이스

  • 입출력 포트 = I/O port
  • CPU 내부 레지스터와 입출력장치 간의 정보전송을 제어

입출력 버스

  • 데이터 전달 경로
  • 고성능 시스템에서는 입출력 제어기를 통해 주기억장치 버스에 연결

주기억장치 버스

  • 주소 버스
  • 데이터 버스
  • 제어 버스

CPU에 의한 입출력 => DMA에 의한 입출력 => 채널에 의한 입출력

버스

  • 버스에 연결된 장치는 master와 slave로 나뉨
  • master는 데이터 전달회선의 사용권 획득 및 실제 데이터 전송에 필요한 데이터를 제어
  • slave는 데이터 전달에 필요한 작업을 하는 장치

주기억장치버스

  • 주기억장치의 데이터 버스 비트 수는 주기억장치 워드의 비트수와 같다
  • R/W

입출력 버스

  • 입출력에만 이용
  • 한 쪽에는 입출력 인터페이스, 다른 쪽에는 입출력 제어기
  • 입출력 데이터 버스의 비트 수는 1Byte
  • 양방향
  • 주소버스의 bit는 장치번호의 bit 수와 같다.

버스 중재 방식

중앙집중식 병렬중재

  • centralized parallel arbitration
  • 하나의 버스에 하나의 중재기를 사용하는 방식
  • 모든 장치는 각각 버스 요청과 버스 허용회선에 의해 중재기에 연결됨
  • 중재기 내의 장치들의 우선순위를 정해주는 논리회로가 있어야한다.

데이지 체인

  • 직렬중재 = daisy chain
  • 중재기 버스 사용의 우선순위는 외부 데이지 체인 하드웨어에서 결정
  • 우선순위 높은 장치가 버스를 독점할 수 있다.
  • 직렬연결이라 한 장치가 고장나면 다음 장치는 버스허용신호를 못 받는다.

폴링

  • polling = 주기적 검사방식
  • 버스중재기가 각 master에게 버스 사용 여부를 체크하는 방식
  • 하드웨어 폴링: 버스 중재를 위해 폴링 회선이 따로 중재기와 각 장치에 연결, 중재기가 각 장치의 고유번호를 순차적으로 발생시키므로 버스 사용권을 받기까지 시간이 길다.
  • 소프트웨어 폴링: 폴링의 순서를 CPU가 관리하는 방식으로 우선 순위 또는 융통성이 좋다. 하드웨어보다 느리다.

전송 제어 방식

스트로브 제어

  • 데이터 전송시간을 맞추기 위해 제어회선이 추가
  • 제어회선을 통해 송수신측에 데이터를 전송할 때 제어신호를 보낸다.
  • 수신쪽에서 데이터를 받았는지, 송신쪽에서 데이터를 보냈는지 확인 불가

핸드쉐이킹

입출력장치 인터페이스

Busy Done입출력 데이터 버퍼 상태
0 0입출력장치 휴지 상태
0 1금지 상태
1 0입출력 작업 중 상태
1 1입력 데이터 버퍼에서 데이터를 읽거나 출력 데이터 버퍼에서 데이터를 기억시킬 수 있는 상태

데이터 전달방법

직렬전송방식

입출력장치 인터페이스 내에 있는 입출력 데이터 버퍼는 시프트 레지스터

병렬전송방식

CPU 내의 레지스터 사이 데이터 전송방법과 같다.

에러 체크

  • 패리티 비트: 데이터를 첨가하는 비트가 1bit
  • 되울림: echo back 키보드에 입력한 문자를 화면에 나타내어 확인
  • 입출력 반복: retry 한 바이트가 잘못 읽어지면 반복해서 읽어오는 방식
  • 오류검사/수정코드: 오류가 검출될 때 수정할 수 있는 기능이 있음

입출력 제어기

주기억장치 사상 입출력

하나의 공통된 버스를 공유하는 입출력 시스템에서 주소를 지정하는 방식으로는 기억장치사상 입출력 방식과 고립형 입출력 방식이 있다.

기억장치 사상 입출력

  • 하나의 주소공간
  • 공통의 버스와 제어선

고립형 입출력

  • 입출력장치의 주소영역은 주기억장치의 주소영역과는 별도로 지정
  • 분리된 제어신호
  • 2개의 제어선으로 지정된 주소가 주기억장치 워드에 해당되는지 입출력을 위한 인터페이스 레지스터를 지정하는 것인지 구분

CPU에 의한 입출력

프로그램에 의한 입출력 방식

  • CPU가 입출력장치의 처음부터 끝까지 제어
  • 저속 컴퓨터에 적합
  • 매번 플래그 검사를 해야하기 때문에 가장 비효율적

인터럽트 처리에 의한 입출력 방식

  • 전송할 데이터가 준비되면 인터페이스가 CPU에 입출력을 요청하는 인터럽트 발생

DMA를 사용한 입출력

  • CPU의 개입 없이 입출력장치와 주기억장치 사이에 데이터를 직접 전송시키는 방법
  • Direct Memory Access
  • DMA에 의한 입출력이 수행되면 CPU는 주기억장치 버스를 제어하지 못함
  • DMA 제어기 신호: 버스 요청, 버스 승인, 인터럽트 신호
  • DMA 전송 방식
    • DMA burst transfer: DMA 대량전송 방식, DMA가 주기억장치 제어권을 가지고 있을 때 여러 개의 워드로 구성된 블록이 연속으로 전송
    • 사이클 스틸 방식: 한 번에 하나의 데이터 원드를 전송하고 주기억장치의 버스 제어를 CPU에 돌려줌

채널에 의한 입출력

  • DMA는 초기화 데이터가 필요하며, 여러 입출력장치가 있을 때 많은 DMA 제어기가 필요
  • 입출력 장치와 직접 통신하는 전용 프로세서
  • CPU와 동급의 성능
  • 고유의 입출력 명령어를 인출하고 실행
  • 산술, 논리, 연산작업 수행 가능

selector channel

  • 선택된 입출력장치의 모든 동작이 완료될 때까지 어느 한 입출력장치의 전용인 것처럼 운용되는 채널
  • 고속 입출력 장치와 입출력을 위해 사용
  • burst 방식으로 블록 데이터 전송

바이트 멀티플렉서 채널

  • 하나의 채널에 저속에 많은 입출력장치를 구동시키는데 알맞은 방식
  • 채널을 시분할 공유

블록 멀티플렉서 채널

  • 동시에 여러 고속 입출력장치를 공유하여 데이터를 고속으로 전송
  • 대형 컴퓨터

채널 제어기의 연결형태: 고정 채널 제어기, 가변 채널 제어기 CPU가 DMA제어에 보내는 초기화정보: R/W를 수행할 주기억장치의 시작주소, 전송할 데이터 워드 카운트, R/W 전송모드 지정, 입출력 수행할 장치주소

컴퓨터 시스템의 성능

  • 처리능력: Throughput 작업량
  • 처리속도: response time
  • 신뢰도: reliability 정확하게 해결하는지
  • 사용 가능도: usability 신속하게 사용 가능한지

처리속도

MIPS

  • Millions of Instruction Per Second
  • 1초에 처리되는 총 명령어의 수
  • 1MIPS는 1초에 106개 명령어

MFLOPS

  • Millions of Floating-Point Operation Per Second
  • 메가플롭스
  • 부동 소숫점 처리 속도를 나타내는 단위
  • 1MFLOPS는 초당 10^6개 부동소수점 연산 가능

병렬컴퓨터

플린의 분류

SISD

  • Single Instruction stream, Single Data stream
  • 명령어가 하나씩 순차로 실행
  • 현재 많이 쓰는 컴퓨터 구조

SIMD

  • Single Instruction stream, Multiple Data stream
  • 배열처리기 = array processor
  • 모든 처리기들의 동작은 모두 하나의 제어장치의 지시를 받음

MISD

  • 여러 개의 처리기에서 수행되는 명령어는 다르지만 전체적으로 하나의 데이터 스트림을 갖고 있는 형태
  • 사용하지 않음

MIMD

  • 대부분의 다중 프로세서 시스템과 다중 컴퓨터시스템
  • 처리기들간의 상호작용 정도에 따라 밀결합 시스템, 소결합 시스템으로 나뉨
  • 밀결합 시스템: tightly coupled system, 공유기억장치구조, 다중 프로세서 시스템
  • 소결합 시스템: loosely coupled system, 지역기억장치를 가진 독립적인 컴퓨터 모듈, 프로세서 간 메세지 방식 통신, 다중 컴퓨터 시스템

팽의 분류

병렬 수행정도에 따라 분류

  • WSBS: Word-Serial, Bit-Serial
  • WPBS: Word-Parallel, Bit-Serial
  • WSBP: Word-Serial, Bit-Parallel
  • WPBP: Word-Parallel, Bit-Parallel

WBSP는 가장 많이 사용하는 방식으로 한 번에 한 워드씩 처리

구조에 의한 분류

  • 분산처리: 하드웨어 자원이 프로세스 작업에 대해 상대적으로 약하게 결합하여 동작하는 것, 컴퓨터 네트워크 등
  • 병렬처리: 프로세스 작업에 대해 강하게 결합되어 동작하는 것, 다중컴퓨터, 다중처리기로 구분됨

공유기억장치 시스템

  • 공유기억장치를 갖는 다중처리기구조는 처리기와 기억장치 모듈사이에 완전한 연결성이 있는 강결합 시스템
  • 기억장치 요청이 지역적인지 비지역적인지를 판단하기 위해 기억장치 대응장치(MMU: Memory Mapping Unit)이 필요

메세지 전달 시스템

  • 데이터 통신이 메세지를 통해 이뤄짐
  • 메세지는 여러 개의 고정된 길이를 갖는 패킷으로 구성
  • 단순성과 확장성의 성질을 포함해 대규모에서 좋은 성능

다중 프로세서의 고려사항

  • 병렬성
  • 기억장치 (충돌, 접근 효율성, 캐시 일관성)
  • 스케줄링
  • 동기화
  • 시스템 균형

병렬처리기

파이프라인 처리기

시간적 병렬성 활용

파이프라인: 하나의 프로세스를 서로 다른 기능을 가진 여러 개의 서브프로세스로 나ㅜ너 각 서브프로세스가 서로 다른 데이터를 취급하도록 하는 방식

배열 처리기

  • 처리장치(PE)를 배열 형태로 갖고 있음
  • PE는 레지스터, 연산장치, 지역기억장치로 구성
  • PE는 상호연결망에 의해 데이터 교환 가능
  • 벡터, 행렬 계산에 사용

다중처리기

  • multiple processor
  • 시스템상의 여러 처리기들에 여러 개의 독립적인 작업을 각각 배정하여 2개 이상의 처리기를 동시에 수행할 수 있는 기능을 갖춘 시스템
  • 하드웨어 시스템 구성은 주로 기억장치와 처리기, 기억장치와 입출력 채널 간 상호연결구조에 의해 결정

데이터 흐름 컴퓨터

  • 프로그램 내의 모든 명령어를 수행에 필요한 피연산자들이 모두 준비될 때 명령어의 순서와 관계없이 수행시키는 것
  • Data Driven 방식

VLSI 처리기

  • 병렬 알고리즘을 직접 하드웨어로 구현하는 처리기
  • 파이프라인 기법을 이용한 다중처리 기법
  • systolic array 구조가 있는데 영상이나 신호처리를 위한 특수분야에 사용

상호연결망 구조

처리요소를 가진 병렬시스템에서 처리요소와 기억장치 사이를 연결해주는 네트워크

  • 대역폭: bandwidth 네트워크를 통해 전송될 수 있는 최대 데이터 전송률, 단위는 MB/s
  • 네트워크 지연: 네트워크를 통해 메세지 전송시 소요되는 지연시간
  • 기능성: functionality 네트워크 데이터 경로설정, 동기화, 인터럽트 처리 및 메세지 송수신과 같은 동작을 어느정도 지원해 주는지
  • 확장가능성: scalability 새로운 하드웨어 추가시 네트워크 확장이 가능한지
  • 하드웨어 복잡성: hardware complexity 네트워크 구현시 필요한 하드웨어, 부품의 수와 복잡성

정적 상호연결망

성형

허브에 모두 연결됨

선형

노드가 차례대로 연결

링형

선형의 끝이 연결된 원형

2진 트리

완전한 트리형태, 통신거리가 상대적으로 김

펫 트리

채널의 크기가 상위계층으로 올라갈 수록 커져서 상위 수준에서의 병목현상 해결

메시, 토러스

노드가 2차원 사방으로 연결, 배열처리기에 적합

하이퍼큐브

  • 처리기의 수가 증가하면 연결점 및 하드웨어가 급증하므로 많은 처리기를 연결할 때 좋은 효율
  • 높은 확장성
  • 모든 노드가 같은 경로배정방법 사용 가능

동적 상호연결망

버스

  • 단일 버스 구조: 미니컴퓨터나 마이크로 컴퓨터에서 사용
  • 다중 버스 구조: 고성능 시스템

크로스바

  • 네트워크 규모가 커지면 비용이 크지만 지역적인 기반구조로 유용
  • P개의 처리기와 M개의 기억장치 모듈을 동시에 연결

다단계 네트워크

  • multistage network
  • 근원지와 목적지 사이에 여러 개의 스위치 요소가 있는 상호연결망

파이프라이닝

  • 어떤 일을 실행하는 데 있어서 하나의 일을 여러 단계로 나눠 중첩하여 실행함으로써 선능을 높이는 방법
  • 수행 단계별로 2단계, 4단계, 6단계가 있다.

알고리즘

· 약 12분

객체지향 기법

  • 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어 기계적인 부품들을 조립하여 제품을 만들 듯 소프트웨어를 개발할 때도 객체들을 조립해 작성할 수 있도록 하는 기법

객체

  • 데이터와 데이터를 처리하는 함수를 묶어 놓은 하나의 소프트웨어 모듈
  • 데이터: 객체가 가지고 있는 정보
  • 함수: 객체가 수행하는 기능, 객체가 갖는 데이터를 처리하는 알고리즘

클래스

  • 공통된 속성과 연산을 갖는 객체의 집합
  • 객체의 일반적인 타입
  • 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀
  • 인스턴스: 클래스에 속한 각각의 객체

메세지

  • 객체들 간에 상호작용을 하는 데 사용되는 수단
  • 객체에게 어떤 행위를 하도록 지시하는 명령 또는 요구사항

객체지향 기본 원칙

캡슐화

  • Encapsulation
  • 데이터와 데이터를 처리하는 함수를 하나로 묶는 것
  • 연관된 데이터와 함수를 함께 묶어 외부와의 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 과정

정보 은닉

  • Information Hiding
  • 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것
  • 캡슐화에서 가장 중요한 개념

추상화

  • Abstraction
  • 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략하는 것
  • 모델화

상속성

  • Inheritance
  • 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것

다형성

  • Polymorphism
  • 메세지에 의해 객체가 연산을 수행하게 될 때 하나의 메세지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답하는 것

객체지향 생명 주기

계획 및 분석 => 설계 => 구현 => 테스트 및 검증

객체지향 분석

  • OOA = Object Oriented Analysis
  • 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스, 이와 연관된 속성과 연산, 그들간의 관계 등을 정의하여 모델링하는 작업

객체지향 설계

  • OOD = Object Oriented Design
  • 객체지향 분석을 사용해 생성한 여러 가지 분석 모델을 설계 모델로 변환하는 작업
  • 시스템 설계와 객체 설계를 수행

문제 정의 => 요구 명세화 => 객체 연산자 정의 => 객체 인터페이스 결정 => 객체 구현

객체지향 구현

  • 설계 단계에서 생성된 설계 모델과 명세서를 근거로 하여 코딩하는 단계
  • 객체 기반 언어: Ada, Actor와 같이 객체의 개념만을 지원
  • 클래스 기반 언어: Clu와 같이 객체와 클래스의 개념을 지원
  • 객체 지향성 언어: 객체, 클래스, 상속의 개념을 모두 지원, Simula, Smalltalk, C++, Objective C, Java

객체지향 프로그래밍

  • OOP = Object Oriented Programming
  • 새로운 개념의 모듈 단위, 즉 객체를 중심으로 하여 프로그램을 개발하는 기법

객체지향 테스트

클래스 테스트

  • 구조적 기법에서의 단위 테스트와 같은 개념
  • 캡슐화된 클래스나 객체를 검사하는 것

통합 테스트

  • 객체 몇 개를 결합하여 하나의 시스템으로 완성시키는 과정에서의 검사
  • 스레드 기반 테스트: 시스템에 대한 하나의 입력이나 이벤트에 응답하는 데 요구되는 클래스들을 통합하는 것
  • 사용 기반 테스트: 독립 클래스를 테스트한 후 독립 클래스를 사용하는 다음 계층의 종속 클래스를 테스트

확인 테스트

  • 사용자 요구사항에 대한 만족 여부를 검사

시스템 테스트

  • 모든 요소들이 적합하게 통합되고 올바른 기능을 수행하는지 검사

아키텍처

IEEE 1471

  • ANSI / IEEE 1471-2000
  • 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 요소와 내용들, 이들 간의 관계를 규정하고 있는 국제 표준
  • 표준화, 중립성, 유연성, 의사소통

저장소 구조

  • 중앙자료구조와 독립된 컴포넌트로 구성된 아키텍처
  • 큰 데이터의 이동 및 공유에 적합하며 컴포넌트 간 통신은 이뤄지지 않는다.
  • 대량의 데이터를 저장하는데 효과적이다.
  • 컴포넌트의 추가 삭제가 편리하다.
  • 중앙 집중화를 통해 데이터 관리가 용이하고 보안이 뛰어나다.

MVC 구조

  • 애플리케이션을 모델, 뷰, 컨트롤러의 세 개의 컴포넌트로 구분하는 아키텍처
  • 유저 인터페이스와 비지니스 로직들을 서로 분리하여 개발하는 방법
  • 장점
    • 동일한 모델에 대해 다양한 뷰 제공
    • 효율적인 모듈화 가능
    • 모델과 뷰의 구분으로 사용자 인터페이스에 대한 요구 사항을 적용시키는데 용이

모델

  • 애플리케이션의 핵심 기능을 포함
  • 상태 변화시 컨트롤러와 뷰에 전달

  • 정보 표시를 관리
  • 결과물 생성을 위해 모델로부터 정보를 수신

컨트롤러

  • 사용자로부터 입력을 받아 모델과 뷰에 명령을 전달
  • 모델에 명령을 전달해 상태를 변경하고 뷰에 명령을 보내 표시 방법을 변경

클라이언트/서버 구조

  • 클라이언트와 서버로 나뉘는 아키텍처
  • 클라이언트: 사용자로부터 입력을 받아 서버에 요청을 전달
  • 서버: 수신된 요청을 수행하고 데이터의 일관성을 유지
  • 새로운 서버의 추가 및 업그레이드가 용이
  • 데이터가 서버에 집중되어 데이터 관리 용이
  • 서버에 네트워크 트래픽과 데이터가 집중되 처리 비용이 급증할 수 있다.

계층 구조

  • 계층적으로 조직화가 가능한 애플리케이션에 적합한 아키텍처
  • 인접 계층 사이에서만 요청과 응답이 이뤄지며 변경 사항을 적용할 때에도 두 개의 인접 계층에만 영향을 미쳐 원활한 변경이 가능
  • OSI 7 Layer

파이프 필터 구조

  • 데이터의 흐름을 점진적으로 처리하는 시스템을 위한 아키텍처
  • 프로세싱을 위한 시스템이 각 필터에 캡슐화되어 있으며 데이터는 인접 필터 사이의 파이프를 통해 전달되는 형태

서식 문자열

  • %d: 정수형 10진수 입출력
  • %c: 문자 입출력
  • %s: 문자열 입출력
    • %-8.3s: 8칸 확보 후 문자열 왼쪽부터 문자열 3개 출력
  • %f: 소숫점을 포함하는 실수로 입출력
    • 자릿수 없으면 6자리까지 표기
    • %8.3f: 8칸 확보 후 오른쪽부터 정수 표기 후 소숫점은 3자리까지 출력

패딩 비트

  • 양수: Left, Right 모두 0
  • 음수: Left 0, Right 1

연산자 우선순위

  1. 단항
  2. 산술
  3. 시프트
  4. 관계: < <=가 == !=보다 우선
  5. 비트: &(and), ^(xor), |(or) 순서
  6. 논리: &&, || 순서
  7. 삼항연산

xor, 다른면 1 같으면 0

소수 판별

  • N을 2~(N-1)까지 차례대로 나눠 떨어지는지 확인
  • N을 2부터 차례대로 나눠 처음으로 나눠떨어질 때의 나눈 수와 N이 같으면 소수
  • N를 2부터 루트N 까지 숫자로 나눠 떨어지는지 확인

소수의 개수

  • 처음 나온 소수의 배수들은 소수가 아니다

최대공약수, 최소공배수

  • 유클리드 호제법 사용
  • 두 수 중 큰 수와 작은 수를 정한 뒤 큰 수를 작은 수로 나눠 나머지를 구한다.
  • 나머지가 0이면 그 때의 작은 수가 최대공약수
  • 두 수를 곱한 값을 최대공약수로 나눈 값이 최소공배수
  • 나머지가 0이 아니면 작은 수를 큰 수로, 나머지를 작은 수로

약수

  • N을 1부터 N까지 나눠 나머지가 0이 되는 수

소인수 분해

  • N을 2에서 루트N까지 나눠 떨어지는지 확인
  • 나눠 떨어졌다면 그 수는 소인수
  • 나눌때의 몫을 다시 N으로 놓고 2에서 루트 N까지 나눠떨어지는지 확인

10진법에서 2진법

  • 10진수를 2로 나눠 나머지를 구한 후 저장

10진법에서 N진법

  • 10진수를 N진법의 가장 가까운 누승부터 1까지 차례대로 나누는 방법

신기술 동향

· 약 107분

기밀성

  • Confidentiality = 비밀성
  • 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용
  • 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음

무결성

  • Integrity
  • 정보의 내용이 전송 중에 수정되지 않고 전달되는 것

가용성

  • Availability
  • 인가된 사용자는 언제라도 사용 가능

인증

  • Authentication
  • 정보를 보내오는 사람의 신원을 확인
  • 다중 사용자 컴퓨터 시스템 또는 망 운용 시스템에서 시스템이 단말 작동 개시 정보를 확인하는 보안 절차이다.
  • 인증에는 망을 경유해서 컴퓨터에 접속해 오는 사용자가 등록된 사용자인지 확인하는 것과 전송된 메세지가 변조되거나 의미가 그릇되지 않고 송신자가 보낸 그대로의 것인지를 확인하는 것이 있다.

부인 방지

  • Non Repudiation
  • 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공

접근 통제

  • Access Control
  • 시스템의 자원 이용에 대한 불법적인 접근을 방지하는 과정

보안 위협 유형

가로막기

  • Interruption
  • 데이터의 정상적인 전달을 가로막아서 흐름을 방해하는 행위

가로채기

  • Interception
  • 송신된 데이터가 수신지까지 가는 도중에 몰래 보거나 도청하여 정보를 유출하는 행위

수정

  • Modification
  • 전송된 데이터를 원래의 데이터가 아닌 다른 내용으로 바꾸는 행위

위조

  • Fabrication
  • 마치 다른 송신자로부터 데이터가 송신된 것처럼 꾸미는 행위

개인키 압호화 기법

  • Private Key Encryption = 대칭 암호 기법 = 단일키 암호화 기법
  • DES(Data Encryption Standard)

DES

  • 데이터 암호 표준
  • 대푲거인 비밀키 암호화 기법
  • 56비트의 암복호 키를 사용하여 64비트의 평문을 암복호화
  • IBM에서 개발, 미국방성에 의해 채택
  • Triple DES가 많이 사용됨

공개키 암호화 기법

  • Public Key Encryption = 비대칭 암호 기법
  • RSA(Rivest Shamir Adleman)

순차적 암호화

  • OPE = Order Preserving Encryption
  • DB에서 암호화된 수치 데이터들이 원본 수치 데이터와 동일한 순서로 정렬될 수 있도록 해주는 암호화 기술

공개키 기반 구조

  • PKI = Public Key Infrastructure
  • 공개키 암호 시스템을 안전하게 사용하고 관리하기 위한 정보 보호 표준 방식
  • ITU-T의 X.509 방식과 비X.509 방식으로 구분

프라이버시 강화 기술

  • PET = Privacy Enhancing Technology
  • 개인정보 위험 관리 기술
  • 개인정보를 보호하는 기술에서 사용자가 직접 개인정보를 통제하기 위한 기술까지 다양한 사용자 프라이버시 보호기술을 통칭

Digital Forensics

  • 범죄의 증거로 사용될 수 있는 컴퓨터, 휴대전화, 인터넷 등의 디지털 저장매체에 존재하는 디지털 정보를 수집하는 디지털 수사 과정

DRM

  • Digital Rights Management = 디지털 저작권 관리
  • 데이터의 안전한 배포를 활성화하거나 불법 배포를 방지하여 인터넷이나 기타 디지털 매체를 통해 유통되는 데이터의 저작권을 보호하기 위한 시스템

ONS

  • Object Naming Service
  • 사물에 관한 구체적인 정보가 저장되어 있는 서버의 위치를 알려주는 서비스
  • RFID 태그가 부착된 제품을 리더로 읽으면 제품 초기 제작 정보는 물론 유통 과정에서 저장된 다양한 정보를 파악할 수 있다.

침입 탐지 시스템

  • IDS = Intrusion Detection System
  • 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템

RFID

  • Radio Frequency IDentification = 전파 식별
  • 라디오 주파수 인식 기술
  • IC칩과 무선을 통해 다양한 개체의 정보를 관리할 수 있는 차세대 인식 기술
  • 판독 및 해독 기능을 하는 판독기(Reader)와 정보를 제공하는 태그(Tag)로 구성

저작권

  • Copyright
  • 원저작물의 창작자가 저작물의 사용과 배포에 있어 일반적으로 제한된 시간 동안 배타적 권리를 인정하는 법적인 권리

데이터 유출 방지

  • DLP = Data Leakage/Loss Prevention
  • 내부정보 유출 방지 솔루션
  • 사내 직원이 사용하는 PC와 네트워크상의 모든 정보를 검색하고 사용자의 행위를 탐지, 통제해 외부로의 유출을 사전에 막는다.

CC

  • Common Criteria = 공통 평가 기준
  • 1999년 6월 8일 ISO 15408 표준으로 채택된 정보 보호 제품 평가 기준
  • 정보화 순기능 역할을 보장하기 위해 정보화 제품의 정보보호 기능과 이에 대한 사용 환경 등급을 정한 기준

SSL

  • Secure Sockets Layer
  • 데이터를 송수신하는 두 컴퓨터 사이, 종단 간 즉 TCP/IP 계층과 애플리케이션 계층 사이에 위치하여 인증, 암호화, 무결성을 보장하는 업계 표준 프로토콜

프록시 서버

  • Proxy Server
  • PC 사용자와 인터넷 사이에서 중개자 역할을 하는 서버
  • 방화벽 기능과 캐시 기능을 수행

HDCP

  • High-bandwidth Digital Content Protection = 고대역폭 디지털 콘텐츠 전송 보호
  • 디지털 비주얼 인터페이스(DVI) 송수신간 고대역폭의 비디오 암호화 전송을 보호하기 위한 규격
  • 송신측은 컴퓨터, 세톱, DVD 플레이어 등을 수신측은 LCD, TV, 프로젝터 등을 사용하며 모든 장비는 컨텐츠 보호 기관으로부터 고유의 비밀 장비 키를 부여받는다.

빅 데이터

  • 기존의 관리 방법이나 분석 체계로는 처리하기 어려운 막대한 양의 정형 또는 비정형 데이터 집합

CCL

  • Create Commons License = 저작물 이용 약관
  • 저작원자가 자신의 저작물에 대한 이용방법 및 조건을 표기하는 저작물 이용약관
  • 저작자 표시(BY), 비영리($), 변경금지(=), 동일조건변경허락(⊃)의 4가지로 분류

개인정보 영향평가 제도

  • PIA = Privacy Impact Assessment
  • 개인 정보를 활용하는 새로운 정보시스템의 도입 및 기존 정보시스템의 중요한 변경 시 시스템의 구축 운영이 기업의 고객은 물론 국민의 사생활에 미칠 영향에 대해 미리 조사, 분석, 평가하는 제도

목표 복구 시점

  • RPO = Recovery Point Objective
  • 조직에서 발생한 여러 가지 재난 상황
  • IT 시스템이 마비되었을 때 각 업무에 필요한 데이터를 여러 백업 수단을 활용하여 복구할 수 있는 기준점

인터넷 제어 메세지 프로토콜

  • ICMP = Internet Control Message Protocol
  • TCP/IP 기반의 인터넷 통신 서비스에서 인터넷 프로토콜과 조합하여 통신 중에 발생하는 오류의 처리와 전송 경로의 변경 등을 위한 제어 메세지를 취급하는 프로토콜

WEP

  • Wired Equivalent Privacy = 유선급 프라이버시
  • 유선 랜에서 기대할 수 있는 것과 같은 보안과 프라이버시 수준이 제공되는 무선 랜의 보안 프로토콜
  • IEEE WI-FI 표준 802.11b에 기술

WPA

  • WI-FI Protected Access
  • WI-FI에서 제정한 무선랜 인증 및 암호화 관련 표준
  • 암호화는 웹 방식을 보완한 IEEE 802.11i 표준의 임시 키 무결성 프로토콜(TKIP)를 기반으로 하며 인증 부분에서도 802.1x 및 확장 가능 인증 프로토콜(EAP)을 기반으로 상호 인증을 도입해 성능을 높임

IP 보안 프로토콜

  • IPSec = IP security protocol
  • 안전에 취약한 인터넷에서 안전한 통신을 실현하기 위한 통신 규약
  • 인터넷상에 전용 회선과 같이 이용 가능한 가상적인 전용 회선을 구축하여 데이터가 도청당하는 등의 행위를 방지하기 위한 통신 규약

OTP

  • One-Time Password = 일회용 패스워드
  • 로그인 할 때마다 그 세션에서만 사용할 수 있는 1회성 패스워드를 생성하는 보안 시스템
  • 동일한 패스워드가 반복해서 재사용됨으로써 발생할 수 있는 패스워드 도난 문제를 예방하는 것이 목적
  • 일반 패스워드와 달리 단방향 암호 기반의 Hash를 사용

공인인증서

  • Certificate
  • 전자 서명법에 의한 공인 인증 기관이 발행한 인증서

생체 인식

  • Biometrics
  • 사람의 신체적, 행동적 특징을 자동화된 장치로 추출하고 분석하여 정확하게 개인의 신원을 확인하는 기술

I-PIN

  • 인터넷에서 주민등록번호 대신 쓸 수 있도록 만든 사이버 주민등록번호

BCP

  • Business Continuity Planning = 업무 연속성 계획
  • 재난 발생시 비즈니스의 연속성을 유지하기 위한 계획
  • 재해 재난으로 인해 정상적인 운용이 어려운 상황에 처했을 때 데이터 백업과 같은 단순 복구뿐 아니라 고객 서비스의 지속성 보장, 핵심 업무 기능을 지속하는 환경을 조성해 기업 가치를 극대화하는 것

CRL

  • Certificate Revocation List = 인증서 폐기 목록
  • 폐기된 인증서를 이용자들이 확인할 수 있도록 그 목록을 배포, 공표하기 위한 메커니즘
  • 주로 인증기관에서 관리하며 메세지를 전달할 때 인증서와 함께 전달

EPC 클래스

  • Electronic Product Code Class
  • EPCglobal에서 정의하는 RFID 태그의 종류

인증기관

  • Certification Authority
  • 인증 업무를 수행하는 제3자의 신뢰 기관
  • 온라인상에서 사용자 인증, 전자문서 위변조 방지, 부인방지 등의 보안기능을 제공하는 인증서에 대한 발급 갱신 폐지 유효성 등의 검증 업무를 수행

SAM

  • Secure Application Module
  • 카드 판독기 내부에 장착되어 카드와 단말기의 유효성을 인증하고 통신 데이터를 암호화하여 정보의 노출 방지 및 통신 메세지의 인증 및 검증을 하며 또한 카드에서 이전된 전자적인 가치를 저장하기도 한다.

CLMS

  • Copyright License Management System = 저작권라이선스 통합관리시스템
  • 정부가 디지털 저작물에 대한 체계적인 관리를 위해 추진하고 있는 시스템

정부 개인식별 번호

  • Government-Personal IDentification Number
  • 정부가 추진하고 있는 주민등록번호 대체 수단
  • G-PIN

키 페어

  • Key Pair
  • 공개키 암호 알고리즘에 사용되는 개인키와 공개키 쌍을 말한다.

방화벽

  • Firewall
  • 기업이나 조직 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 능력을 가진 보안 시스템

소프트웨어 에스크로

  • Softwawre Escrow
  • 소프트웨어 개발자의 지식재산권을 보호하고 사용자에게는 저렴한 비용으로 소프트웨어를 안정적으로 사용하고 유지 보수를 받을 수 있도록 하기 위해서 소스 프로그램과 기술 정보 등을 제 3기관에 보관하는 것

마이핀

  • 법적 근거 없는 주민등록번호 수집이 금지되면서 도입된 13자리 무작위 번호
  • 오프라인 상에서 주민번호를 대신한다.

CAPTCHA

  • 자동 계정 생성 방지 기술 = Completely Automated Public Turing test to tell Computers and Humans Apart
  • 웹페이지에서 악의적으로 회원강비을 하거나 스팸 메세지를 보내기 위해 사용되는 프로그램인 봇을 차단하기 위해 만들어졌다.
  • 사람과 컴퓨터를 구분하기 위한 자동화된 시험

지능형 사이버 위협 대응

  • CTI = Cyber Threat Intelligence
  • 조직의 인프라와 지적 재산을 보호하기 위해 과거 조직 내부뿐만 아니라 외부의 다양한 정보들에 기초하여 각종 위협에 대응하는 방법

백업방식

전체 백업

  • 데이터 전체를 대상으로 백업을 수행하는 방식

증분 백업

  • Incremental Backup
  • 백업 대상 데이터 중 변경되거나 증가된 데이터만을 대상으로 백업을 수행하는 방식

Cyber Bullying

  • 사이버 협박
  • 개인이나 집단이 인터넷에서 상대에게 나타내는 적대 행위

DDoS

  • Distributed Denial of Service = 분산 서비스 거부 공격
  • 분산 서비스 거부 공격은 여러 대의 장비를 이용하여 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써 특정 서버의 정상적인 기능을 방해하는 것

VoIP 보안 위협

  • VoIP Security Threat
  • 음성 패킷을 불법으로 수집 및 조합해 통화 내용을 재생하고 도청하는 위협

Ransomware

  • 랜섬웨어
  • 인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 파일 등을 임의로 암호화해 사용자가 열지 못하도록 한 후 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구

디지털 발자국

  • Digital Footprint
  • 사람들이 온라인 활동을 하면서 남긴 로그인 정보, 결제 정보, 결제 방법, 구매 이력, SNS, Email 등의 다양한 디지털 기록 또는 흔적

워터링 홀

  • Watering Hole
  • 포식자가 사냥을 위해 물 웅덩이에서 매복하고 있는 것을 빗댄 용어
  • 표적으로 삼은 집단이 주로 방문하는 웹 사이트를 감염시켜 피해 대상이 해당 사이트를 방문하는 것을 기다린다.

백도어

  • Back Door = Trap Door
  • 시스템 보안이 제거된 비밀 통로
  • 서비스 기술자나 유지 보수 프로그램 작성자의 액세스 편의를 위해 시스템 설계자가 고의로 만들어 놓은 것

Zero Day Attack

  • 제로 데이 공격
  • 보안 취약점이 발견되었을 때 그 문제가 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격
  • 공격의 신속성을 의미

Smurfing

  • 스머핑
  • IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크의 일부를 불능상태로 만드는 공격 방법

Typosquatting

  • 타이포스쿼팅 = URL 하이재킹
  • 네티즌들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 이와 유사한 유명 도메인을 미리 등록하는 것

핵티비즘

  • Hacktivism
  • 해커와 행동주의(Activism)의 합성어
  • 자신들의 정치적 목적을 달성하기 위한 수단으로 정부나 기업 단체등의 인터넷 웹사이트를 해킹하는 일체 활동

티비싱

  • Tvishing
  • 스마트 TV에 악성 소프트웨어를 설치해 스마트 TV에 대한 최고 접근 권한을 획득하는 해킹 기법

APT

  • Advanced Persistent Threats = 지능형 지속 위협
  • 다양한 IT 기술과 방식들을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격

Pharming

  • 파밍
  • 합법적으로 소유하고 있던 사용자의 도메인을 탈취하거나 DNS 이름을 속여 사용자들이 진짜 사이트로 오인하도록 유도하여 개인 정보를 훔치는 신종 인터넷 사기 수법
  • 아예 해당 사이트가 공식적으로 운영하고 있는 도메인 자체를 탈취

Social Engineering

  • 사회 공학
  • 컴퓨터 보안에 있어 인간 상호작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨트리기 위한 비기술적 시스템 침입 수단
  • 우선 통신망 보안 정보에 접근 권한이 있는 담당자와 신뢰를 쌓고 전화나 이메일을 통해 그들의 약점과 도움을 이용하는 것

Zeus

  • 사용자의 온라인 뱅킹 계정 정보를 탈취하기 위해 개발된 상용 멀웨어
  • 2007년 러시아에서 개발된 것으로 추정

Botnet

  • 봇넷
  • 악성 프로그램에 감염되어 향후에 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태

Zombie

  • 다른 프로그램이나 다른 사용자를 조종하도록 악성코드에 감염된 컴퓨터

Patent Troll

  • 특허 괴물
  • 특허권을 비롯한 지적 재산권을 통해 로열티 수입만으로 이익을 창출하는 특허 관리 전문 기업

악성 소프트웨어

  • Malware = Malicious Software
  • 악의적인 목적을 위해 작성된 것으로 악성 코드 또는 악성 프로그램으로 불린다.

스턱스넷

  • Stuxnet
  • 독일 지멘스사의 원격 감시 제어 시스템의 제어 소프트웨어에 침투하여 시스템을 마비하게 할 목표로 제작된 악성코드
  • 원자력 발전소 제어 시스템에 침투하여 오작동을 유도하는 명령 코드를 입력해 시스템을 마비시킨다.

공격용 툴킷

  • Attack Toolkit
  • 네트워크에 연결된 컴퓨터를 공격하기 위해 악성 코드 프로그램을 모아 놓은 것
  • 대표적인 공격용 툴킷으로는 Zeus와 Sypeye 등이 있다.

Ping of Death

  • 죽음의 핑
  • 인터넷 프로토콜 허용 범위(65536 바이트) 이상의 큰 패킷을 고의로 전송하여 발생한 서비스 거부 공격

Splogger

  • 스플로거
  • 스팸과 블로거의 합성어
  • 다른 사람의 콘텐츠를 무단으로 복사해 자신의 블로그에 게재하는 볼로거

IP 스푸핑

  • IP Spoofing
  • 다른 시스템과의 신뢰관계를 속여 침입하는 크래킹 기술
  • 속이기라는 의미의 스푸핑은 기술적인 요소가 많이 필요한 크래킹 기술

스니핑

  • Sniffing
  • 네트워크의 중간에서 남의 패캣 정보를 도청하는 해킹 유형의 하나로 수동적인 공격에 해당한다.

스위치 재밍

  • Switch Jamming
  • 위조된 MAC 주소를 네트워크 상으로 지속적으로 흘려보내 스위칭 허브와 주소 테이블 기능을 마비시키는 것

스팸

  • 인터넷 상에서 다수의 수신인에게 무작위로 송신된 이메일 메세지를 의미

사이버 스토킹

  • Cyber Stalking
  • 정보통신망을 이용해 악의적인 의도로 지속적으로 공포감이나 불안감 등을 유발하는 행위

피싱

  • Phishing
  • 허위 웹 사이트를 내새워 사용자의 개인 신용 정보를 빼내는 수법

반달리즘

  • Vandalism
  • 다수가 참여할 수 있도록 공개된 문서의 내용을 훼손하거나 엉뚱한 제목으로 변경하고 낙서하는 것

스누핑

  • Snooping
  • 네트워크 상에서 남의 점보를 염탐하여 불법으로 가로채는 행위

다이어 악성코드

  • Dyre Malware
  • 인터넷 뱅킹 정보를 탈취하는 악성코드로 트로이목마의 한 종류

드롭퍼

  • Dropper
  • 정상적인 파일등에 트로이 목마나 웜, 바이러스가 숨겨진 형태를 일컫는다.

메모리 해킹

  • Memory Hacking
  • 컴퓨터 메모리에 있는 데이터를 위변조하는 해킹 방법
  • 정상적인 인터넷 뱅킹 사이트를 이용했음에도 이체거래 과정에서 수취인의 계좌번호를 변조하거나 보안카드의 비밀번호를 빼내어 돈을 빼돌린다.

스미싱

  • Smishing
  • SMS와 Phishing의 합성어

스파이웨어

  • 적절한 사용자 동의 없이 사용자 정보를 수집하는 프로그램 또는 적절한 사용자 동의 없이 설치되어 불편을 야기하거나 사생활을 침해할 수 있는 프로그램

  • Worm
  • 네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높임으로써 다운시키는 바이러스의 일종

크래킹

  • 어떤 목적을 가지고 타인의 시스템에 불법으로 침입하여 정보를 파괴하거나 정보의 내용을 자신의 이익에 맞게 변경하는 행위

트로이 목마

  • Trojan Horse
  • 정상적인 기능을 하는 프로그램으로 가장하여 프로그램 내에 숨어 있다가 해당 프로그램이 동작할 때 활성화되어 부작용을 일으키는 것
  • 자기 복제 능력은 없다.

해킹

  • Hacking
  • 컴퓨터 시스템에 불법적으로 접근, 침투하여 시스템과 데이터를 파괴하는 행위

혹스

  • Hoax
  • 실제로는 악성코드로 행동하지 않으면서 겉으로는 악성코드인 것처럼 가장하여 행동하는 소프트웨어

VPN

  • Virtual Private Network = 가상 사설 통신망
  • 가상 사설 네트워크로 인터넷 등 통신 사업자의 공중 네트워크를 사용자가 마치 자신의 전용 회선처럼 사용할 수 있게 하는 서비스

무선랜

  • WLAN = Wireless LAN
  • 무선 접속 장치(Access Point)가 설치된 곳을 중심으로 무선 주파수(RF) 기술을 이용해 근거리에서 WLAN 카드가 장착된 개인 휴대 정보 다남ㄹ기를 이용해 인터넷에 연결하는 네트워크

직교 주파수 분할 다중

  • OFDM = Orthogonal Frequency Division Multiplexing
  • 고속의 데이터를 각 반송파가 직교 관계에 잇는 다수의 부반송파에 나눠 실어 다중 전송하는 디지털 변조 방식

FTP

  • File Transfer Protocol = 파일 전송 프로토콜
  • 컴퓨터와 컴퓨터 또는 컴퓨터와 인터넷 사이에서 파일을 주고받을 수 있도록 하는 원격 파일 전송 프로토콜

다중 경로 페이딩

  • Multipath Fading
  • 신호를 전달하는 전파가 통로상의 여러 가지 장애물에 의해 두 개 이상의 경로를 통하여 수신 측에 도달하는 경우, 그 합성 신호가 시공간적으로 강도가 변하는 현상
  • 전자파가 진행되는 경로에 여러 가지 장애물이 있을 경우 반사가 일어나고 반사파는 반사되는 경로에 따라 진폭과 위상이 달라진다.

NDN

  • Named Data Networking
  • 인터넷에서 데이터 전송을 콘텐츠 자체의 정보와 라우터 기능만으로 수행하는 기술
  • 클라이언트와 서버가 패킷의 헤더에 내장되어 있는 주소 정보를 이용하여 연결되던 기존의 IP 망을 대체할 새로운 인터넷 아키텍처로 떠오르고 있다.

원격 검침

  • AMR = Automatic Meter Reading, Remote Meter Reading Service
  • 전기, 가스, 수도 계량기 등을 검침원이 일일이 방문하지 않고 원격에서 단말기를 이용해 검침 데이터를 읽을 수 있는 시스템

NGN

  • Next Generation Network = 차세대 통신망
  • ITU-T에서 개발하고 있는 유선망 기반의 차세대 통신망
  • 유선 접속망 뿐만아니라 이동 사용자 지원까지를 목표로 하며 이동통신에서 제공하는 완전한 이동성 제공을 목표로 개발되고 있다.

GLONASS

  • 미국의 GPS, 유럽의 갈릴레오 위치결정시스템과 유사한 러시아의 전파 위성 항법 시스템
  • FDMA 방식을 사용한다.

MICS

  • Medical Implant Communication Service
  • WBAN의 의료분야에서 임플란트 장치 간의 통신 서비스를 부르는 명칭
  • 인체내 통신으로 감쇄가 적은 주파수 사용이 필요하여 402 ~ 405MHZ를 사용하고 대역폭은 300KHZ로 적어 가용 비트레이트도 적다.

SDN

  • Software Defined Networking = 소프트웨어 정의 네트워킹
  • 네트워크를 컴퓨터처럼 모델링하여 여러 사용자가 각각의 소프트웨어 프로그램들로 네트워킹을 가상화하여 제어하고 관리하는 네트워크

근거리 무선 통신

  • NFC = Near Field Communication
  • 고주파를 이용한 근거리 무선통신 기술
  • Ecma 340, ISO/IEC 18092 표준으로 아주 가까운 거리에서 양방향 통신을 지원하는 RFID 기술의 일종
  • 13.56MHz 주파수를 이용해 10cm 안에서 최고 424Kbps의 속도로 데이터 전송을 지원한다.

SSID

  • Service Set IDentifier = 서비스 세트 식별자
  • 무선랜을 통해 전송되는 모든 패킷의 헤더에 존재하는 고유 식별자
  • 무선랜 클라이언트가 BSS에 접속할 때 각 무선랜을 다른 무선랜과 구분하기 위해 사용한다.

BSS

  • Base Station System
  • 이동 통신에서 기지국을 구성하는 시스템
  • 기지국 제어기와 기지국 트랜시버로 구분됨

QoS

  • Quality of Service = 서비스 품질
  • 네트워크에서 일정 기준 이하의 지연시간이나 데이터 손실률 등을 보증하기 위한 서비스 규격

MODEM

  • 디지털 신호를 아날로그 신호로 변환하는 변조 과정과 아날로그 신호를 디지털 신호로 변환하는 복조 과정을 수행하는 신호 변환 장치

TEIN

  • Trans-Eurasia Information Network = 트랜스 유라시아 네트워크
  • 아시아와 유럽을 연결하는 초고속 정보 통신망

Telepresence

  • 원격 현장감
  • 공간적으로 떨어져 있는 장소 또는 가상의 장소를 신체적으로 경험하는 것
  • 통신 회선으로 컴퓨터를 원격지와 연결하여 구성한 가상현실 공간을 통해 신쳊거으로 가 있지 않은 다른 장소에 존재할 수 있게 하는 것

Carrier Aggregation

  • 반송파 묶음
  • 복수의 주파수 대역을 동시에 사용할 수 있는 대역폭의 확장 기술로 LTEAdvanced의 핵심 기술이다.

네트워크 준비 지수

  • NRI = Networked Readiness Index
  • 세계 경졔 포럼(WEF)이 국제적인 경영대학인 인시아드와 공동으로 개인과 정부, 기업의 정보 통신기술(ICT) 발전도와 경쟁력을 국가별로 평가한 지수

MAN

  • Metropolitan Area Network = 도시권 통신망
  • LAN과 WAN의 중간 형태로 LAN의 기능을 충분히 수용하면서 도시전역 또는 도시와 도시 등 넓은 지역을 연결하는 통신망

VOD

  • Video On Demand = 주문형 비디오
  • 다양한 정보의 데이터베이스를 구축하여 연결된 컴퓨터 또는 텔레비전을 통해 사용자가 요구하는 정보를 원하는 시간에 볼 수 있도록 전송하는 멀티미디어 서비스
  • 프로그램 시청 도중에 일시 정지시키거나 느린 속도로 혹은 반복해서 볼 수도 있는 서비스

SYN

  • SYNchronous idle = 동기 상태 부호
  • 동기 신호방식에서 다른 문자를 보내지 않는 유휴 상태에서 데이터 단말 상호간의 동기를 취하거나, 동기를 유지하기 위한 신호로 사용되는 전송 제어 문자

TCP/IP

  • Transfer Control Protocol/Internet Protocol
  • 인터넷에 연결된 서로 다른 기종의 컴퓨터들 간에 데이터를 주고 받을 수 있도록 하는 표준프로토콜
  • 인트라넷이나 엑스트라넷과 같은 사설망에서도 사용된다.

프로토콜

  • Protocol
  • 네트워크에서 서로 다른 컴퓨터들 간에 정보를 교환할 수 있게 해주는 표준화된 통신 규약
  • 네트워크 기능을 효율적으로 발휘하도록 하기 위한 협정으로 TCP/IP가 대표적이며 통신 연결시 다양한 레벨을 갖는다.

UWB

  • Ultra WideBand = 초광대역
  • 짧은 거리에서 많은 양의 디지털 데이터를 낮은 전력으로 전송하기 위한 무선 기술로 무선 디지털 펄스라고 하며, 블루투스와 비교되는 기술

피코넷

  • PICONET
  • 여러 개의 독립된 통신장치가 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
  • 네트워크를 구성하는 장비 간에 사전에 네트워크의 정의와 계획 없이 상황에 따라 조정 프로토콜에 의하여 마스터와 슬레이브의 역할을 하면서 네트워크를 형성

디지털 우편 소인

  • DPM = Digital PostMark
  • 만국우편연합(UPU)에서 표준화한 온라인 자료에 대한 전자적인 우편배달 서비스
  • 최근에는 EPCM(Electronic Postal Certification Mark)라고 부룬다.

고속 하향 패킷 접속

  • HSDPA = High Speed Downlink Packet Access
  • 비동기식 3세대 이동 통신의 하향 링크에서 10Mbps 수준의 고속 패킷 데이터 서비스를 제공하는 전송 규격
  • 인터넷 통신은 주로 다운로드가 많아 하향 링크의 고속화가 서비스의 필수 요소이며 고속 데이터는 주로 정지 상태에서 사용되므로 이러한 조건을 최대한 수용하도록 하향 링크의 전송 규격을 개선한 것으로 WCDMA R5에 적용되었다.

u-Health

  • ubiquitous-Health = 유헬스
  • 물리적 공간과 네트워크로 연결된 첨단 보건의료 기술의 전자적 공간을 연결하여 보건 의료 대상자의 삶과 진료가 중심이 되도록 하는 것

디저라티

  • Digerati
  • 디지털과 리터라티의 합성어
  • 컴퓨터, 정보 통신 등 디지털 분야의 지식이 많은 사람을 지칭하는 용어

WBAN

  • Wireless Body Area Network
  • 웨어러블 또는 몸에 심는 형태의 센서나 기기를 무선으로 연결하는 개인 영역 네트워킹 기술
  • 무선 센서나 기기로부터 수집한 정보를 휴대폰 또는 간이형 기지국을 통해 병원이나 기타 필요한 곳에 실시간으로 전송함으로써 uHealth 등의 서비스를 받는데 응용할 수 있다.

CTTH

  • Coax To The Home
  • 기존 케이블방송망으로 초고속/대용량 서비스를 제공하는 새로운 전송방식이다.
  • 총 1Gbps 용량을 여러 가입자가 공유하는 구조로 일반 가정에 130Mbps의 빠른 인터넷 속도를 제공한다.

포스트넷

  • PostNet
  • IT 기반 우편물류 통합 정보시스템
  • 우체국 택배와 국제 특송을 강화하기 위해 우편물에 RFID 칩을 달아 언제 어디서나 실시간으로 우편물의 위치를 체크할 수 있는 서비스

지그비

  • ZigBee
  • 저속 전송 속도를 갖는 홈오토메이션 및 데이터 네트워크를 위한 표준 기술
  • 버튼 하나로 하나의 동작을 잡아 집안 어느 곳에서나 전등 제어 및 홈보안 시스템 VCR on/off 등을 할 수 있고 인터넷을 통한 전화 접속으로 홈 오토메이션을 더욱 편리하게 이용하려는 것에서부터 출발한 기술이다.

디지털 접근 지수

  • Digital Access Index
  • 정보통신기술의 접근성과 서비스 이용에 관한 전 세계적 비교 지수

차량 멀티홉 통신

  • VMC = Vehicle Multihop Communication
  • 자동차에 IT기술을 접목해 차량 충돌을 예방하는 기술
  • 자동차와 노면 간 RF(라디오 주파수) 통신을 주고 받아 제한 속도를 넘어서면 자동으로 차량 속도가 감속되는 것은 물룐, 차량 간 통신으로 충돌을 예방하는 기술

LAN

  • Local Area Network = 근거리 통신망
  • 자원 공유를 목적으로 회사, 학교, 연구소 등의 구내에서 사용하는 통신망으로서 직원들이 가장 효과적으로 공동 사용할 수 있도록 연결된 통신망
  • 전송 거리가 짧아 고속 전송이 가능하며 에러 발생률이 낮다.

망중립성

  • Network Neutrality
  • 모든 네트워크 사업자는 모든 콘텐츠를 동등하게 취급하고 어떠한 차별도 하지 않아야 한다는 원칙
  • 망운영의 근본적인 원칙으로 중립성을 보장하기 위해 비차별, 상호 접속, 접근성 등 3가지 원칙이 모든 통신망에 동이랗게 적용되어야한다는 것

GIS

  • Geographic Information System = 지리 정보 시스템
  • 지리적으로 자료를 수집, 저장, 분석, 출력할 수 있는 컴퓨터 응용 시스템
  • 위성을 이용해 모든 사물의 위치 정보를 제공해 주는 것

IT389 전략

  • u-IT839
  • 미래의 정보 기술 시장을 선도하기 위해 정보통신부가 2004년 2월 수립한 IT 성장 전략을 말한다.
  • 유비쿼터스 코리아를 추진하기 위한 운동이다.

USN

  • Ubiquitous Sensor Network = 유비쿼터스 센서 네트워크
  • 각종 센서로 수집한 정보를 무선으로 수집할 수 있도록 구성한 네트워크
  • 필요한 모든 곳에 RFID 태그를 부착하고 이를 통해 사물의 인식 정보는 물론 주변의 환경 정보까지 탐지하여 이를 네트워크에 연결하여 정보를 관리하는 것

ANT+ Protocol

  • Advanced and Network Technology plus protocol
  • 2457MHz 대역에서 동작하는 초저전력 무선 센서 네트워크 프로토콜로 상호 운용성을 보장
  • 매우 적은 전력 소비로 인해 소형 코인 셀 배터리 하나면 몇 년간 동작이 가능하다.
  • 주로 소형 스마트 기기에 사용하여 건강관리나 소형기기 제어에 사용된다.

래드섹 프로토콜

  • RadSec
  • RADIUS(Remote Authentication Dial In User Service) 데이터를 전송 제어 프로토콜이나 전송계층 보안(TLS)을 이용하여 전송하기 위한 프로토콜

위성 기반 보정 시스템

  • SBAS = Satellite-Based Augmentation System
  • 국제 민간항공기구(ICAO)에서 글로벌 항법 위성 시스템(GNSS)의 정확성, 신뢰성, 이용 가능성을 향상시키기 위한 국제 표준 중 하나이다.
  • 정보를 위성으로 보내 사용자들에게 정확한 정보를 보내기 위한 보정 자료로 활용한다.

지상 기반 보정 시스템

  • GBAS = Ground-Based Augmentation System
  • 국제민간항공기구(ICAO)에서 글로벌 항법 위성 시스템(GNSS의 정확성, 신뢰성, 이용 가능성을 향상시키기 위한 국제 표준 중 하나이다.
  • 주로 이착륙하는 항공기에 사용된다.

WebKit

  • 웹키트
  • 웹 브라우저를 만드는 데 기반을 제공하는 레이아웃 엔진
  • Mas OS X의 사파리 웹 브라우저 엔진으로 사용하기 위해 컨커러 브라우저의 KHTML 소프트웨어 라이브러리에서 가져온 것이었으나 최근에는 애플 사파리와 구글 크롬은 물론 블랙베리에서도 브라우저의 엔진으로 사용되고 있다.

Mashup

  • 매시업
  • 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술
  • 다수의 정보원이 제공하는 콘텐츠를 조합하여 하나의 서비스로 제공하는 웹 사이트 또는 어플리케이션을 말한다.

VoIP

  • Voice over Internet Protocol
  • 인터넷 프로토콜 상의 음성 전송이란 의미로 인터넷을 통하여 통화할 수 있는 기술
  • 기존에 사용되고 있던 데이터 통신용 패킷망을 인터넷 폰에 이용하는 것
  • 음성 데이터를 인터넷 프로토콜 데이터 패킷으로 변화하여 일반 전화망에서의 통화를 가능하게 해주는 통신 서비스 기술

URL

  • Uniform Resource Locator
  • 인터넷 상에 존재하는 각종 자원이 있는 위치를 나타내는 표준 주소 체계

쿠키

  • Cookie
  • 웹 사이트에서 사용자의 하드디스크에 저장하는 특별한 텍스트 파일
  • 인터넷 사용자에 대한 특정 웹 사이트의 접속 정보를 저장하기 위한 것

IMS

  • IP Multimedia Subsystem
  • 인터넷 프로토콜을 기반으로 음성, 오디오, 비디오 및 데이터 등의 멀티미디어 서비스를 제공하는 규격
  • 기본적으로 범용의 인터넷 기반 기술과 표준화된 네트워크 기능들을 사용함으로써 서비스의 가격 경쟁력 향상과 신속한 서비스 개발 및 변경을 추구한다.

멀티캐스트

  • Multicast
  • 구내 정보 통신망(LAN)이나 인터넷에 접속되어 있는 일부 사용자 내에서 한 사람이 몇 사람에게 정보를 송신하고 그것을 수신한 몇 사람이 같은 내용을 버킷 릴레이식으로 복수의 사람에게 송신함으로써 정보를 전파하는 특정 다수인에 대한 전송

비트코인

  • Bitcoin
  • 온라인에서 사용되는 가상의 디지털 화폐로 2009년에 만들어졌으나 개발자는 분명치 않다.

RIA

  • Rich Internet Application = 리치 인터넷 어플리케이션
  • 플래시 애니메이션 기술과 웹 서버 애플리케이션 기술을 통합하여 기존 HTML보다 역동적이고 인터랙티브한 웹페이지를 제공하는 신개념의 플래시 웹페이지 제작 기술

ISP

  • Internet Service Provider = 인터넷 서비스 제공자
  • 개인이나 회사들에게 인터넷 접속 서비스, 웹 사이트 구축 및 웹 호스팅 서비스 등을 제공하는 회사들을 말한다.

해시태그

  • Hashtag
  • 샵 기호와 특정 단어를 붙여 쓴 것으로 트위터, 페이스북 등 소셜 미디어에서 특정 핵심어를 편리하게 검색할 수 있도록 하는 메타데이터의 한 형태

증강현실

  • Augmented Reality = 혼합현실
  • 실제 촬영한 화면에 가상의 정보를 부가하여 보여주는 기술

CNAME

  • Canonical NAME
  • 호스트 컴퓨터는 웹 접속을 위해 하나의 IP 주소를 가져야 하는데, 이 IP 주소는 DNS가 호스트 컴퓨터의 도메인 이름을 변환하여 생성한다. 그러나 종종 여러 개의 도메인 이름을 동일한 하나의 IP 주소로 변환하여 사용하기도 하는데 이를 CNAME이라고 한다.

HVC (HEVC)

  • High performance Video Coding = 고성능 영상 코딩 = High Efficiency Video Coding
  • ISO/IEC JTC1 MPEG에서 AVC 이후의 표준으로 추진 중인 차세대 비디호 부호화 표준
  • HD 이상의 해상도를 주 대상으로 하는 차세대 비디오 부호화 표준으로 고성능의 압축 효율은 물론 이동성을 보장한다.

Trackback

  • 트랙백
  • 다른 사람의 글을 읽고 그 글에 직접 댓글을 올리는 대신에 내 블로그에 글을 올리고 내 글의 일정 부분이 다른 사람의 댓글로 보이도록 트랙백 핑을 보내는 것을 말한다.

Webaholism

  • 웨바홀리즘 = 인터넷 중독증 = 인터넷 의존증
  • Web과 Alcoholism의 합성어로서 일상생활에 지장을 느낄 정도로 지나치게 인터넷에 몰두하고 인터넷에 접속하지 않으면 불안감을 느끼는 것

IoT

  • Internet of Things = 사물 인터넷
  • 정보 통신 기술을 기반으로 실세계와 가상 세계의 다양한 사물들을 연결하여 진보된 서비스를 제공하기 위한 서비스 기반 시설

RSS

  • Really Simple Syndication = 맞춤형 정보 배달
  • 매우 간편한 정보 배달이라는 의미를 가지며 업데이트가 잦은 사이트의 최신 정보를 쉽게 확인할 수 있게 해주는 기술

M2M

  • Machine to Machine = 사물 통신
  • 무선 통신을 이용한 기계와 기계 사이의 통신
  • 변압기 원격 감시, 전기, 가스 드으이 원격 검침, 무선 신용 카드 조회기, 무선 보안 단말기, 버스 운행 시스템, 위치 추적 시스템, 시설물 관리 등 무선으로 통합하여 상호 작용하는 통신
  • 부호 분할 다중 접속(CDMA), GSM, 무선 데이터 통신 등 다양항 무선 통신망을 사용한다.

도메인 네임

  • Domain Name
  • 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것으로 호스트 컴퓨터 이름, 소속 기관 이름, 소속 기관의 종류, 소속 국가명 순으로 구성되며 왼쪽에서 오른쪽으로 갈수록 상위 도메인을 의미한다.

IP

  • Internet Protocol
  • 인터넷 상에서 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는 방식이나 규약을 말한다.
  • 인터넷 상에서 호스트로 아렬진 각 컴퓨터는 적어도 하나의 IP 주소를 가지고 있다.

SEO

  • Search Engine Optimization = 검색 엔진 최적화
  • 검색 엔진에서 검색했을 때 상위에 나타나도록 관리하는 것

위키피디아

  • Wikipedia
  • 전세계 사람들 누구나 자유롭게 쓸 수 있고 함께 만들어가는 웹 기반의 백과사전
  • 2001년 1월 15일에 지미 웨일스와 래리 생어가 공동으로 세운 비영리 단체인 위키미디어 재단에서 운영

프로튜어

  • Pro-ture; Professional Amateur
  • 프로페셔널과 아마추어의 합성어로 전문가 같은 아마추어를 말한다.
  • 일반 네티즌이 정보 수요자가 아닌 공급 주체로 떠오르면서 적극적으로 자신의 의견을 개진하고 전문가 못지 않은 식견을 가진 사람을 말한다.

IPv6

  • Internet Protocol Version 6
  • 현재 사용하고 있는 IP 주소체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발된 IP 주소 체계의 차세대 버전

애니캐스트

  • Anycast
  • 한 송신자와 인근에 있는 소수 수신자 간의 통신
  • 애니캐스트는 수신자들을 묶어 하나의 그룹으로 나타낸 주소를 사용하여 그룹 내에서 가장 가까운 호스트에게만 전송하는 것
  • 특정 다수에게 전송하는 멀티캐스트나 특정 인에게 전송하는 유니캐스트와 구분된다.

유니캐스트

  • Unicast
  • 메세지 수신 주소를 1개만 지정하는 1:1 통신 형태
  • 네트워크 내의 모든 주소에 동일한 메세지를 보내는 것을 '브로드캐스트', 지정한 복수의 수신 주소에 동일 메세지를 보내는 것을 '멀티캐스트'라 한다.

Semantic Web

  • 시멘틱 웹
  • 컴퓨터가 사람을 대신하여 정보를 읽고 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록, 이해하기 쉬운 의미를 가진 차세대 지능형 웹
  • 핵심기술로는 웹 자원을 서수랗기 위한 자원 서술 기술, 온톨로지를 통한 지식 서술 기술, 통합적으로 운영하기 위한 에이전트 기술들을 들 수 있다.

메타 데이터

  • Meta Data
  • 일련의 데이터를 정의하고 설명해 주는 데이터이다.
  • 컴퓨터에서는 데이터 사전의 내용, 스키마 등을 의미하고, 하이퍼텍스트 생성언어 문서에서는 메타 태그

집단지성

  • Collective Intelligence
  • 다수의 개체가 서로 협력하거나 경쟁하여 얻게 되는 지적 능력의 결과로 얻어진 집단적 능력
  • 자발적으로 참여하고 다양한 의견을 가진 개인의 지식이 모이면 개별적으로는 미미하게 보이나 집단적으로는 능력 범위를 넘어선 힘을 발휘해 특정 전문가나 기업의 전문 지식보다 더 우수하게 된다는 대중의 지혜를 나타낸 개념

XML

  • eXtensible Markup Language = 확장성 마크업 언어
  • W3C가 채택한 차세대 인터넷 표준 언어로, HTML의 문법이 각 웹브라우저에서 상호 호환적이지 못하다는 문제와 SGML의 복잡함을 해결하기 위하여 개발되었다.

Alt-Text

  • 대체 텍스트
  • 시각 장애인이 웹 사이트에 게시된 이미지를 이해할 수 있도록 설명해 주는 글이나 문구
  • 장애인의 웹 접근성 향상을 위한 대표적인 방법

MMS

  • Multimedia Messaging System = 멀티미디어 메세징 시스템
  • 3세대 이동 통신 서비스의 기본 요소로서 정지영상, 음악, 음성 및 동영상 등의 다양한 형식의 데이터를 주고받을 수 있는 메세징 시스템

블로그

  • 웹과 로그의 합성어로 개인이 관심사에 따라 자유롭게 글을 올릴 수 있는 웹사이트
  • 다양한 형태를 취하는 1인 미디어

IP TV

  • Internet Protocol TV
  • 초고속 인터넷을 이용하여 정보 서비스, 동영상 콘텐츠 및 방송 등을 TV로 제공하는 양방향 서비스
  • 인터넷과 TV의 융합으로 기존의 인터넷 TV와 다른 점이라면 컴퓨터 모니터 대신 TV수상기를 이용하고 마우스 대신 리모컨을 사용한다는 점이다.

WWW

  • World Wide Web = 월드 와이드 웹
  • 텍스트, 그림, 동영상, 음성 등 인터넷에 존재하는 다양한 정보를 거미줄처럼 연결해 놓은 종합정보 서비스

디지털 원주민

  • Digital Native
  • 컴퓨터, 인터넷, 휴대폰 등의 디지털 기술을 어려서부터 사용하면서 성장한 세대

UCC 가이드라인

  • 정부가 제정한 건전한 UCC 생산과 유통 및 이용에 관한 지침서
  • UCC 이용자들을 위한 실천적 가이드라인으로 UCC 이용자의 자율적인 윤리의식을 촉구하는 체크리스트로 이뤄져 있다.

관계기술

  • Relation Technology
  • 상호관계를 이해하는 관계성을 기반으로 하는 새로운 기술 패러다임
  • 기술위주로 발전하는 정보기술에 나와 너, 사람과 사람 등 문화 인문학 등의 논리위주의 관계기술이 접목되어야 한다는 점을 강조하며 이어령 이화여대 명예교수가 만들어 낸 신조어

사용자 제작 콘텐츠

  • UCC = User Created Contents
  • 인터넷 사업자나 콘텐츠 공급자가 아닌 일반 사용자들이 직접 만들어 유통되는 콘텐츠

웹 2.0

  • 제공된 데이터를 활용하여 사용자가 정보 생성에 참여하고 가치를 부여함으로써 누구나 다양한 신규 서비스를 생산해 낼 수 있는 플랫폼으로서의 웹 환경

태그달기

  • 꼬리표 달기 = Tagging
  • 콘텐츠의 내용을 대표할 수 있는 검색용 꼬리표인 키워드, 또는 태그를 다는 것
  • 글을 올린 사람이나 사이트 관리자가 글이나 이미지를 관련된 주제나 카테고리의 형태로 분류될 수 있도록 키워드 처리를 해주는 것

퀵돔

  • Quickdom
  • 영어의 Quick과 Domain이 결합된 합성어로 2단계 영문 kr도메인의 브랜드명
  • 짧은 형태의 도메인으로 기억하기 쉽고 주소창에 입력하기도 간편하다.

표면 웹

  • Suface Web
  • 네이버, 구글, 다음과 같이 일반적인 검색엔진으로 검색이 가능한 콘텐츠의 인터넷 환경
  • 반대는 Deep web

인터넷 연동

  • Internet eXchange
  • 인터넷 서비스 제공자 상호간에 트래픽을 원활하게 소통시키기 위해 구축한 네트워크간 연동 서비스
  • 네트워크 서비스에 대한 수요가 큰 콘텐츠 전송망(CDN) 서버와 네이버, 다음카카오 등과 같은 포털 서버의 회선에 직접 연결되어 개별 ISP 들의 경제적 부담을 완화해 서비스 품질의 향상을 기대할 수 있다.

협대역 사물 인터넷

  • NB-IoT = NarrowBand-Internet of Things
  • 사물인터넷을 위해 설꼐된 협대역 무선 기술을 의미
  • 200KHz 미만의 협대역 주파수를 사용하며 기존의 이동통시남ㅇ인 GSM과 LTE망을 사용하므로 초기 비용이 적다는 것과 저전력, 긴 수명, 많은 수의 기기들을 커버할 수 있다는 것이 특징

VHT

  • Very High Throughput
  • IEEE에서 802.11n 후속으로 진행하고 있는 표준안
  • 2배 이상의 전송속도인 1Gbps 이상을 지원하여 압축되지 않은 HD 동영상의 전송을 가능하게 하며 802.11n과 비교할 때 개선된 커버리지와 전력 소모 기능을 갖고, 기존 무선랜 사양들에 대한 하위 호환성을 지원할 수 있다.

시공간 송신 다이버시티

  • STTD = Space Time Transmit Diversity
  • WCDMA 시스템에 적용하는 송신 다이버시티 방식
  • 송신 안테나 두 개, 수신 안테나 한 개를 사용하며 송신 심벌들을 일정 블록 단위로 순서를 뒤집어서 양쪽으로 송신하여 공간 다이버시티와 시간 다이버시티 이점을 동시에 얻는다.

기가 파이

  • Giga Fi
  • 60GHz 대역을 이용해 데이터를 기가급으로 전송할 수 있는 기술
  • 전 세계적으로 비 허가 대역인 57~64GHz 범위의 주파스를 이용하여 넓은 대역폭의 높은 데이터 전송률(3Gbps)을 얻을 수 있다.
  • 전파 거리가 짧고 직진성이 강해 주변 간섭에 매우 강하고 보안성이 뛰어나며 주파수 재사용도 용이하다.

클라우드 컴퓨팅

  • Cloud Computing
  • 각종 컴퓨팅 자원을 중앙 컴퓨터에 두고 인터넷 기능을 갖는 모든 단말로 언제 어디서나 인터넷을 통해 컴퓨터 작업을 수행할 수 있는 환경을 의미

마그네틱 안전 전송

  • MST = Magnetic Secure Tansmission
  • 2015년 2월 삼성전자가 인수한 미국기업 LoopPay사가 개발한 기술로 안테나가 내장된 휴대폰을 마그네틱 결제 단말기에 근접시켜 신용카드 정보를 전송하는 기술

WiFi

  • Wireless-Fidelity = 와이파이
  • 2.4GHz대를 사용하는 무선랜 규격(IEEE 802.11b)에서 정한 제반 규정에 적합한 제품에 주어지는 인증 마크

N-Screen

  • 앤스크린
  • N개의 서로 다른 단말기에서 동일한 콘텐츠를 자유롭게 이용할 수 있는 것
  • PC, TV, 휴대폰에서 동일한 콘텐츠를 끊김 없이 이용할 수 있는 것은 물론 사용자가 가지고 있는 여러 대의 단말기에서도 동일한 콘텐츠를 끊김 없이 이용하는 것을 말한다.

신 클라이언트

  • Thin Client PC
  • 하드디스크나 주변 장치 없이 기본적인 메모리만 갖추고 서버와 네트워크로 운용되는 개인용 컴퓨터를 의미
  • 서버 기반 컴퓨팅과 관계가 깊다.
  • 클라이언트는 프로그램이 필요할 때마다 서버에 접속하여 소프트웨어를 내려받기만 하면 되며, 기억장치 없이 서버 측에서 데이터를 한꺼번에 관리한다.

Phablet

  • 패블릿
  • 폰과 태블릿의 합성어
  • 태블릿 기능을 포함한 5인치 이상의 대화면 스마트폰

ACN

  • AP Centric Network
  • AP가 내장된 단말기로 구성된 네트워크
  • 스마트폰 같은 모방리 단말의 확산으로 트래픽이 빠르게 증가하고 있지만 모바일용 인프라는 이에 대응하지 못하고 있어 4G 네트워크가 구축되기 이전에 와이파이 공유 모델을 기반으로 하는 ACN 기술 실용화를 추진하고 있다.

BYOD

  • Bring Your Own Device = 브링 유어 오운 디바이스
  • 개인 소유 단말기를 업무에 사용하는 환경
  • 모바일 단말을 이용하기 때문에 보안에 취약하다.

LTE

  • Long Term Evolution = 미래 장기 진화
  • 3GPP 진영에서 추진하고 있는 3세대 이동 통신(3G) 방식인 광대역 부호분할다중접속(W-CDMA)이 진화한 기술로 유력한 4세대 이동 통신(4G) 후보 기술이다.
  • 데이터 전송 효율 향상, 효율적인 주파수 자원 이용, 이동성, 낮은 지연 시간, 패킷 데이터 전송에 최적화 된 기술과 서비스 품질 보장 등을 제공하는 차세대 이동 통신 기술

스마트폰

  • Smart Phone
  • 피처폰에 비해 진보한 연산능력과 접속성을 겸비한 모바일 운영체제를 기반으로 하는 이동 전화

펨토셀 기지국

  • Femtocell Bas Station
  • 사무실이나 집에 설치하는 초소형 이동 통신 기지국
  • 건물이나 지하의 작은 지역(30~50m)에 서비스하려고 설치하는 소출력 초소형 이동 통신 기지국

개인환경서비스

  • PES = Personal Environment Service
  • 사용자에게 최적화된 생활 환경을 제공하는 서비스
  • 사용자가 휴대전화를 가지고 가정과 사무실, 차량, 공공장소를 이동하면, 휴대전화가 주변의 각종 생활 기기들을 자동으로 인식하고 제어하여 사용자 개인에게 최적화된 생활 환경을 제공

모바일 컴퓨팅

  • Mobile Computing
  • 휴대형 기기로 이동하면서 자유로이 네트워크에 접속하여 업무를 처리할 수 있는 환경
  • 모바일 컴퓨팅의 진화는 휴대 기기와 네트워크 기술의 진화로도 가능하다.
  • 휴대기기는 소형 대용량화와 저전력화가 진행중이고 네트워크 기술도 무선으로 고속/대용량의 정보를 처리할 수 있는 기술이 사용화되고 있다.

넷북

  • Netbook
  • 휴대형 미니 노트북 컴퓨터로서 인터넷, 문서작업, 이메일 등 컴퓨터의 기본적인 기능을 수행하면서 이동성을 갖도록 제작된 것

SCO

  • Synchronous Connection Oriented link = 동기식 접속 지향 링크
  • 블루투스 데이터 링크의 하나로 두 장비 간에 음성과 같이 지정된 대역폭 통신을 위한 전용 회선의 동기식 접속 방법
  • 음성 데이터인 SCO 패킷 전송에 사용된다.
  • CRC도 재전송도 하지 않는다.

App Store

  • 애플사가 개발한 모바일용 온라인 소프트웨어 장터

AP

  • Access Point = 무선 접속장치
  • 무선 랜과 유선 랜을 연결시켜주는 장비
  • 전파 도달 거리 내의 무선 랜 카드를 사용하는 컴퓨터나 무선 기기들이 자유롭게 통신할 수 있도록 한다.

범용 가입자 식별 모듈

  • USIM = Universal Subscriber Identity Module
  • 사용자의 인증을 목적으로 휴대전화 사용자의 개인 정보를 저장하는 모듈로서 스마트 카드(USIM) 카드로 제작된다.

m-커머스

  • mobile Commerce = 모바일 상거래
  • m-커머스는 전자상거래의 일종으로 가정이나 사무실에서 유선으로 인터넷에 연결하여 물건을 사고 파는 것과 달리 이동중에 이동 전화기나 무선 인터넷 정보 단말기 등을 이용해 은행 업부, 지물 업무, 티켓 업무와 같은 서비스를 하는 것

유비쿼터스

  • Ubiquitous
  • 컴퓨터가 특정한 장소에 설치되어 있어야 하는 것이 아니라 우리 생활에서 사용되는 모든 사물에 컴퓨터 기능을 내장하고 이들을 무선 네트워크로 연결하여 인간이 필요로 하는 정보를 제공받을 수 있는 환경을 의미

촉각 기술

  • Haptic Technology
  • 진동의 장단과 고저를 이용하여 다양한 종류의 진동 기호를 만드는 기술
  • 휴대폰에 적용할 경우 간단한 메세지는 휴대폰에서 느껴지는 진동 기호로 충분히 표현 가능하다.

WCDMA

  • Wide-band CDMA = 광대역 부호 분할 다중 접속
  • 가장 많은 국가들이 채택하고 있는 제 3세대 이동통신 시스템
  • 멀티미디어 전송을 목적으로 개발되었으며 동영상 파일을 다운로드하면서 실시간으로 재생까지 할 수 있는 VOD 스트리밍, 휴대폰으로 동영상 멀티미디어 메세지를 주고받을 수 있는 MMS가 가능하다.

WiBrO

  • Wireless Broadband = 와이브로
  • 무선 광대역을 의미하는 것으로 휴대폰 노트북, PDA 등의 휴대 인터넷 단말장치를 이용하여 언제 어디서나 이동하면서 고속으로 무선 인터넷 접속이 가능한 서비스

펨토셀

  • Femto Cell
  • 1000조분의 1을 뜻하는 펨토와 이동통신에서 1개 기지국이 담당하는 서비스 구역 단위를 뜻하는 셀을 합친 이름으로 기존 이동통신 서비스 반경보다 훨씬 작은 지역을 커버하는 시스템
  • DSL 모뎀처럼 생긴 초소형 기지국을 가정 내 유선 IP망에 연결해 휴대폰으로 유무선 통신을 자유롭게 사용할 수 있게 해준다.

WIPI

  • Wireless Internet Platform for Interoperability = 위피
  • 한국형 무선 인터넷 플랫폼 표준 규격
  • 이동통신 업체들이 같은 플랫폼을 사용하도록 함으로써 국가적 낭비를 줄이자는 취지로 2001년부터 국책사업으로 추진되기 시작하였다.

GPS

  • Global Positioning System = 위성 위치 확인 시스템
  • 지구상의 위치 선정 시스템이란 의미
  • 지구를 도는 인공위성이 현재의 위치를 시시각각 알려주는 시스템

텔레매틱스

  • Telematics
  • 통신(telecommuncation)과 정보(Informatics)의 합성어
  • 자동차와 무선통신을 결합한 새로운 개념의 차량 무선 인터넷 서비스

IMT-2000

  • International Mobile Telecommunication-2000
  • 이동통신의 문제점인 지역적 한계와 고속 전송에 대한 기술적 한계를 극복하고 나라마다 다른 이동통신 방식을 통일하여 한 대의 휴대용 전화기로 전 세계 어디서나 통화할 수 있도록 만들려는 규격

스마트 플러그

  • Smart Plug
  • 와이파이나 스마트폰 등의 스마트 기능을 추가한 플러그
  • 스마트 프럴그를 설치하여 원격에서 전기를 켜거나 끄는 것은 물론 전기 사용량을 감시할 수 있어 가정이나 사무실의 전기 과열이나 불필요한 전기의 사용을 억제할 수 있다.

앱북

  • 스마트폰, 태플릿, 개인용 컴퓨터 등 단말 기기에서 별도의 애플리케이션으로 실행되는 전자책

모바일 광개토 플랜

  • 방통위가 2011년 국내 모바일 광대역을 위해 2020년까지 이동통신용으로 600MHz 대역폭을 추가로 확보하기 위해 내놓은 계획

범용 통합 플랫폼

  • Universal Integration Platform
  • 다양해진 웹 브라우저와 스마트폰 및 모바일 기기로 인해 기업용 애플리케이션의 개발, 운영에 많은 비용과 시간이 소모되기 시작하자 자원의 소비를 완화하고 개발자에게 다양한 플랫폼을 제공하기 위해 만들어진 서비스

서비스형 백엔드

  • BaaS = Backend As A Service
  • 웹 및 앱 개발자들을 위한 클라우드 서비스
  • 웹 앱 개발을 위한 응용 프로그램 인터페이스를 제공한다.

와이파이 오프로딩

  • Wi-Fi Offloading
  • 이동 통신의 급증하는 데이터 트래픽을 와이파이 망으로 분산시키는 방법

지오로케이션

  • Geolocation
  • 인터넷에 연결된 모바일 또는 컴퓨터 등의 지리적 위치 정보를 말한다.
  • 웹 애플리케이션에서는 HTML5에서 지원하는 지오로케이션 응용 프로그래밍 인터페이스를 이용하여 사용자의 위치 정보를 파악, 이를 기반으로 길 안내, 주변 편의 시설, 맛집, 병원 등의 유용한 정보를 제공해준다.

피에스-엘티이

  • PS-LTE = Public Safety-LTE
  • 영상, 고해상도 사진 등 멀티미디어 정보를 이용하여 공공 안전 통신망을 구축하는 전국 규모의 광대역 LTE 기술

앱 중립성

  • App Neutrality
  • 스마트폰과 같은 모바일 기기에서 사용되는 앱이 모바일 운영체제의 종류에 구애받지 않고 실행할 수 있는 성질로 앱 융통성이라고도 한다.
  • 모방리 OS 종류에 상관없이 어떠한 모바일에서도 앱 콘텐츠를 사용할 수 있어야 됨을 의미한다.

인터클라우드 컴퓨팅

  • Inter-cloud Computing
  • 각기 다른 클라우드 서비스를 연동 및 컴퓨팅 자원의 동적 할당을 가능하게 하기위해 여러 클라우드 서비스 제공자들이 제공하는 클라우드 서비스나 자원을 연결하는 기술

케듀롬

  • Keduroam
  • 2013년 3월부터 국공립 대학 정보기관 협의회에서 운영하는 무선랜 공동 사용 서비스
  • 국제적인 연구 및 교육 커뮤니티를 위해 개발된 무선랜 로밍 서비스인 에듀롬을 본떠 만들었다.

호스트 카드 에뮬레이션

  • HCE = Host Card Emulation
  • 스마트폰 등의 모바일 기기에서 유심 칩과 같은 물리적 보안 요소를 사용하지 않고, 앱을 이용해 NFC 결제 단말과 연결하여 모바일 결제 서비스를 제공하는 근거리 무선통신(NFC) 기술

Wearable Technology

  • 착용 기술
  • 사용자가 IT 기기를 몸에 착용할 수 있도록 하는 기술
  • 일상적으로 사용되는 용품이나 사용자의 피부에 IT 기술을 접목시켜 사용자가 언제 어디선든 컴퓨팅 환경을 제공받을 수 있도록 한다.

디지털 메시

  • 시장조사 전문기관인 가트너가 2016년에 주목받을 전략기술 중 하나로 언급하면서 탄생한 것
  • 서로 다른 성격의 기기들을 연결하여 그물같은 형태를 이루는 것

올조인

  • AllJoyn
  • 표준화된 오픈소스 기반의 사물인터넷 플랫폼
  • 리눅스 재단이 사물인터넷 확산을 위해 설립한 컨소시엄인 올신얼라이선스에 의해 제공된다.
  • 서로 다른 운영체제나 하드웨어를 사용하는 기기들이 표준화된 프랤폼인 올조인을 이용함으로서 서로 통신 및 제어가 가능하게 된다.

와이파이 헤일로

  • Wi-Fi HaLow
  • 1GHz 이하의 저주파 대역을 사용하는 와이파이 규격
  • 2.4GHz 혹은 5GHz 주파수 대역을 사용하는 일반 와이파이에 비해 전송 거리가 약 1Km 정도로 장거리 전송이 가능하다.

용도 자유 대역

  • K-ICT Free Band
  • 향후 출현 가능한 다양한 정보통신기술과 사물인터넷 서비스 등의 수요에 유연하게 대응하기 위해 추진한 주파수 정책
  • 2015년 11월 11일 고시
  • 262~264MHz는 원격검침, 스마트홈 등의 IoT 서비스
  • 24~27GHz는 소출력 레이더, 5G 이동통신용 등
  • 64~66GHz는 대용량 전송, 고해상도 레이더 등
  • 122123GHz, 244246GHz는 향후 기술발전에 따른 소출력 기기를 위한 용도

서비스 수준 협약

  • Service Level Agreement
  • 서비스 사업자와 서비스 사용자가 제공될 정보 서비스 및 그와 연관된 여러 조건들에 대한 서로의 책임과 의무 사항을 기술해 놓은 협약서
  • 서비스 산업자와 서비스 사용자 간의 합의를 통하여 서비스 시간, 서비스 가용성, 성능, 복구 등 다양한 항목에 대해 최소한의 서비스를 제공하기로 사전에 협약을 맺는다.

PAD

  • Program Associated Data = 프로그램 연동 정보
  • 전송되고 있는 프로그램의 내용과 부가적인 정보를 설명하기 위해 관련 정보를 제공하는 것
  • 방송에 관련된 개념

LBS

  • Location-Based Services = 위치 중심 서비스
  • 이동통신망을 기반으로 사람이나 사물의 위치를 정확하게 파악하고 이를 활용하는 응용 시스템 및 서비스를 말한다.
  • 휴대폰이나 PDA 등의 장치를 통해 활용되며 이동통신망과 IT 기술이 종합적으로 활용된다.

디지털 프로슈머

  • Digital Prosumer
  • 인터넷 커뮤니티에 참여해 콘텐츠를 즐기고 정보와 자료를 얻는 소비자이면서 동시에 의견을 적극 개진해 생산에도 영향을 미치는 사람

위치 기반 소셜 네트워크 서비스

  • LBSNS = Location Based Social Network Service
  • 위치 기반 서비스(LBS)에 소셜 네트워크 서비스(SNS)를 결합한 서비스를 뜻한다.
  • 위치 기반 서비스는 이동 중인 사용자에게 무선이나 유선통신으로 쉽고 빠르게 사용자 위치와 고나련된 여러 정보를 제공하는 서비스인데 이를 소셜네트워크 서비스와 결합한 서비스이다.

하둡

  • Hadoop
  • 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼
  • 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크

4K 해상도

  • 차세대 고화질 모니터 해상도를 지칭하는 용어
  • 4K 해상도는 가로 픽셀 수가 3840이고 세로 픽셀 수가 2160인 영상의 해상도를 말하는데 이는 Full HDTV(1920X1080)의 가로 2배, 세로 2배 총 4배에 해당하는 초고화질 영상

Nomophobia

  • 노모포비아
  • 스마트폰이 곁에 없을 때 불안감과 두려움을 느끼는 증상

Social Dining

  • SNS를 통해 관심사가 비슷한 사람끼리 모여서 식사하며 관계를 형성하는 모임

금융기술

  • FinTech
  • Financial과 Technique의 합성어로 이동 통신과 인터넷 기술을 금융 산업과 접목시킨 서비스

코드커터족

  • Cordcutters
  • 지상파와 케이블 등 기존 텔레비전 방송 서비스를 해지하고 인터넷 방송 서비스를 선택하는 소비자군
  • 어릴 때 부터 인터넷으로 동영상을 보는 데 익숙하고 방송 프로그램을 수동적으로 시청하는 데 싫증을 느낀 20~30대가 주류를 이룬다.

포직스

  • Posix = Portable Operating System Interface for Computer Environment
  • 유닉스를 기반으로 한 표준 운영체제 인터페이스
  • IEEE 산하 P1003 기술 위원회에서 작성한 표준 규격
  • 유닉스 사용자 그룹이 유닉스를 기반으로 표준화 작업을 시작하였으나 IEEE가 ANSI 표준으로 제정하기 위해 인계하여 추진하게 되었다.

Foursqure

  • 포스퀘어
  • 모바일 기기에 특화된 위치 기반 소셜 네트워크 서비스
  • 사용자가 자신이 방문한 장소를 체크인한 후 그곳에 대한 평가나 추천 내용을 공유하면 이에 대한 보상으로 배지를 받게 되는데 체크인 횟수가 높아질수록 높은 지위의 배지를 받게 된다.

Infodemics

  • 인포데믹스
  • 정보(Information)와 전염병(Epidemics)의 합성어로 정보 확산으로 인한 각종 부작용
  • 추측이나 루머가 결합된 부정확한 정보가 인터넷이나 휴대전화를 통해 전염병과 같이 빠르게 전파됨으로써 개인의 사생활 침해는 물론 경제, 정치, 안보 등에 치명적인 영향을 미치는 것

O2O

  • Online-toOffline business = 온-오프라인 연결 비즈니스
  • 인터넷과 스마트폰 등의 온라인 매장에서 오프라인 매장을 고객을 유치하는 마케팅 방법

데이터 다이어트

  • Data Diet
  • 데이터를 삭제하는 것이 아니라 압축하고, 겹친 정보는 중복을 배제하고, 새로운 기준에 따라 나누어 저장하는 작업

비콘

  • Beacon
  • 전파를 이용하여 주기적으로 프레임 신호 동기를 맞추고, 송수신 관련 시스템 정보를 전송하며, 수신 데이터 정보를 전달하는 무선 통신 신호 기술

증발품

  • Vaporware
  • 판매 계획 또는 배포 계획은 발표되었으나 실제로 고객에게 판매되거나 배포되지 않고 있는 소프트웨어

Subscription Commerce

  • Subscription과 Commerce의 합성어로 정기적인 비용을 지불하고 전문가의 큐레이션을 통해 선정된 제품들을 주기적으로 배송 받는 상거래

Zapping Effect

  • 재핑 효과
  • 채널을 돌리다가 중간에 있는 채널의 시청률이 높아지는 현상
  • 재핑이란 방송 프로그램 시작 전후로 노출되는 광고를 피하기 위해 채널을 돌리는 행위

생명정보학

  • Bioinformatics
  • 컴퓨터를 이용해 각종 생명정보를 처리하는 학문으로 방대한 생물의 유전자 정보를 분석하기 위한 학문
  • 유전자 예측 프로그램 개발, 생명정보 데이터베이스 구축 등 정보기술의 개발과 바이오 칩이라 불리는 첨단 반도체의 개발 등이 해당된다.

스마트 그리드

  • Smart Grid
  • 정보 기술을 전력에 접목해 효율성을 제고한 시스템
  • 전력선을 기반으로 모든 통신, 정보, 고나련 애플리케이션 인프라르 하나의 시스템으로 통합한 것

Meformer

  • 미포머
  • 나를 뜻하는 미와 정보를 제공자를 뜻하는 인포머의 합성어로 나를 알리는 데에만 열중하는 사람

Tajo

  • 타조
  • 오픈 소스 기반 분산 컴퓨팅 플랫폼인 아파치 하둡 기반의 분산 데이터 웨어하우스 프로젝트

3D printing

  • 대상을 평면에 출력하는 것이 아니라 손으로 만질 수 있는 실제 물체로 만들어 내는 것

Cresumer

  • 크리슈머
  • 단순히 제품을 사용하는데 그치지 않고 제품의 기능이나 가치에 스토리를 담아 기존의 콘텐츠를 발전시켜 새로운 문화와 소비유행을 만들어 가는 사람들을 말한다.

Social Curation

  • 소셜 큐레이션
  • 인터넷에서 다수 사용자가 자신의 취향대로 정보를 가공해 다른 사람과 공유하는 것

Variable BitRate

  • VBR = 가변 레이트
  • 부호화할 때 상황에 따라 압축률을 다르게 하는 압축방법

스테레오 스코프

  • Stereoscope
  • 하나의 물체를 다른 각도에서 찍은 두 장의 사진을 동시에 보게 하여 물체를 입체적으로 보이게 하는 기기

오픈 그리드 서비스 아키텍처

  • OGSA = Open Grid Service Architecture
  • 애플리케이션 공유를 위한 웹 서비스를 그리드 상에서 제공하기 위해 만든 개방형 표준

AJAX

  • Asynchronous Javascript and XML
  • 웹 페이지 내에서 자바스크립트와 CSS, XHTML 등을 이용하여 XML로 데이터를 교환하고 제어함으로써 사용자들이 웹 페이지를 새로고침 하지 않아도 대화형의 웹페이지 기능을 이용할 수 있게 하는 기술

EDI

  • Electronic Data Interchange = 전자 자료 교환
  • 기업 간 거래에 관한 데이터와 문서를 표준화하여 컴퓨터 통신망으로 거래 당사자가 직접 전송, 수신하는 정보 전달 시스템

건물 에너지 관리 시스템

  • BEMS = Building Energy Management System
  • 건물에 IT 기술을 활용하여 전기, 공조, 방법, 방재 같은 여러 건축 설비를 관리하는 시스템

TPS

  • Transaction Processing System
  • 거래 처리 시스템
  • 기업에서 업무 처리를 할 때 다양하게 발생하는 거래 자료를 전산화해서 신속하고 정확하게 처리하는 정보화 시스템

스마트 정보격차

  • Smart Divide
  • SNS나 스마트 미디어를 활용하는 사람과 그렇지 못한 사람 사이의 정보 격차를 뜻한다.

CPM

  • Corporate Performance Management = 기업 성과 관리
  • 기업 경영 환경에 효과적으로 대처하기 위해 예측 경영을 통한 최적의 의사 결정을 내릴 수 있게 해주는 시스템

디지털 아카이빙

  • Digital Archiving
  • 디지털 정보 자원을 장기적으로 보존하기 위한 작업
  • 아날로그 콘텐츠는 디지털로 변환한 후 압축해서 저장하고, 디지털 콘텐츠도 체계적으로 분류하고 메타데이터를 만들어 DB화하는 작업

미디어 빅뱅

  • Media Big Bang
  • 정보 통신의 발달, 이용자 소비 환경의 변화로 새로운 미디어가 등장하여 기존의 미디어 질서가 해체되는 미디어 환경 변화를 빅뱅에 비유한 표현

SIS

  • Strategic Information System = 전략 정보 시스템
  • 기업이 경쟁 우위를 확보하기 위해 구축, 이용하는 정보 시스템
  • 1985년 경에 출현하엿는데 종래의 정보 시스템이 기업 내 업무의 합리화나 효율화에 역점을 두었던 것에 반하여, 기업이 경쟁에서 승리하여 살아남기 위한 필수적인 시스템이라는 뜻에서 전략 정보 시스템이라고 불린다.

복잡 이벤트 처리

  • CEP = Complex Event Processing
  • 실시간으로 발생하는 많은 사건들 중 의미가 있는 것만을 추출할 수 있도록 사건 발생 조건을 정의하는 데이터 처리 방법

그린 IT

  • Green Information Technology
  • 정보기술 전 분야에서 유해 물질을 자제하고 에너지 절감을 통해 친환경 제품과 서비스를 제공하는 것

녹색 기술

  • Green Technology
  • 환경 친화적인 기술
  • 지구 오난화와 에너지 자원 고갈 문제를 대처하기 위해 EU 등 선진국에서 시작된 친환경 열풍이 세계적으로 확산되고 있다.

데이지

  • DAISY = Digital Accessible Information SYstem
  • 시각 장애인이나 독서 장애인을 위한 국제 디지털 문서 포맷
  • 디지털 시대에 정보 접근에 장애를 갖고 있는 노인이나 시각 장애인을 위해 개발되어 점자도서관에서 토킹 북을 제작하는 데 사용되고 있다.

서비스 지향 아키텍처

  • SOA = Service Oriented Architecture
  • 기업의 소프트웨어 인프라인 정보 시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보기술 아키텍처

오픈케이블 응용 플랫폼

  • OCAP = Open Cable Application Platform
  • 모든 종합 유선방송에서 운용될 수 있도록 대화형 TV 서비스나 응용 프로그램을 설계할 수 있는 미들웨어 소프트웨어 계층

원 세그

  • One Seg
  • 일본의 디지털 휴대 이동방송 서비스의 명칭

소셜 서치

  • Social Search
  • 불특정 다수의 인터넷 사용자들을 대상으로 특정 질문에 답변을 제시하거나 또는 공통적 관심사가 포함된 웹사이트나 여타 자료원으로의 링크를 제공하는 웹사이트 또는 서비스
  • 누구나 질문을 올릴 수 있고 전문가나 일반 사용자들로부터 이에 대한 답변을 받을 수 있는 질의응답 또는 지식검색 사이트를 의미한다.

디지로그

  • DigiLog
  • Digital과 Analog의 합성어로 디지털 기술과 아날로그적 정서가 결합한 제품과 서비스, 또는 아날로그 시대에서 디지털 시대로 넘어가는 변혁기에 위치한 세대를 의미한다.

체감 품질

  • QoE = Quality of Experience
  • 서비스 이용자가 각자의 기대치에 근거하여 주관적으로 인지하는 어플리케이션 혹은 서비스의 총체적인 허용도를 말한다.
  • 사용자가 요금을 지불한 서비스에 대해 기대하는 기대치를 근거로 규정하는 품질 척도

ITS

  • Intelligent Transportation System = 지능형 교통 시스템
  • 도로, 자동차, 화물 등 기존의 교통 시스템에 전자, 통신, 제어 등 첨단기술을 접목시켜 실시간 교통정보를 수집, 관리 제공함으로써 교통시설의 이용효율을 극대화하고 교통편의와 교통안전을 제고하며 에너지 절감 등 환경 친화적 교통시스메으로 정의되고 있다.

EIS

  • Executive Information System = 경영진 정보 시스템
  • 중역 혹은 최고경영자들이 조직의 성공적인 경영을 위하여 피룡로 하는 조직 내부 혹은 조직 외부의 정보를 효과적으로 제공할 수 있는 컴퓨터 기반의 정보 시스템

DMB

  • Digital Multimedia Broadcasting = 디지털 멀티미디어 방송
  • 디지털 멀티미디어 방송을 의미
  • 음성 영상 등 다양한 멀티미디어 신호를 디지털 방식으로 변조하여 고정 또는 휴대용 수신기에 제공하는 방송 서비스

딥 러닝

  • Deep Learning
  • 인간의 두뇌를 모델로 만들어진 인공 신경망(ANN)을 기반으로 하는 기계 학습 기술

누름힘 접촉

  • Force Touch
  • 애플에서 개발한 트랙패드와 터치스크린에 적용되는 기술
  • 패널에 가해지는 힘의 강도를 감지

막대형 컴퓨터

  • PC-on-a-stick = Stick PC
  • 작고 긴 막대모양 형태의 케이스를 갖는 단일 보드 컴퓨터
  • USB 드라이브와 유사한 형태를 가지며 내부의 CPU와 램, 저장장치 등 컴퓨터의 필수 요소들이 모두 내장되어 있고, HDMI 비디오 포트를 갖고 있어 모니터만 연결하면 일반 PC처럼 이용이 가능하다.

먹거리 테크

  • Food Tech
  • 식품과 기술이 결합된 용어로 기존의 식품 관련 서비스업을 빅데이터, O2O 서비스, 블루투스, 비콘 등의 정보통신기술과 결합한 것을 의미

에스엔지

  • SNG = Satellite News Gathering
  • 현장에서 촬영한 영상을 위성을 통해 방송사로 전송하는 방식

엠엔지

  • MNG = Mobile News Gathering
  • 야외에서 촬영한 영상을 3G, LTE, WiBro, Wi-Fi 등 다양한 무선망 접속장비를 이용해 전송하는 방식

UASP

  • USB attached SCSI Protcol = 유에스비-스카시 프로토콜
  • USB 저장장치로 데이터를 송수신할 때 사용되는 컴퓨터 프로토콜
  • 스카시 프로토콜이 탑재되어 기존의 방식보다 더 빠른 전송속도를 보장

EFP

  • Electronic Field Production
  • 장비가 설치되어 있는 스튜디오가 아닌 야외에서 촬영할 때 사용되는 카메라 시스템

ENG

  • Eletronic News Gathering
  • 카메라와 녹화부가 탑재된 일체형 카메라 시스템

지능형 가상 비서

  • IPA = Intelligent Personal Assistant
  • 개인에게 맞춘 서비스나 업무를 수행하는 소프트웨어 에이전트
  • 일정관리, 영화예약, 인터넷 검색, 길찾기 등의 여러가지 업무를 처리하는 것이 가능
  • 음석인식으로 지시받아 인공지능 엔진을 통해 사용자가 기존에 입력한 데이터나 위치 데이터, 다양한 온라인 데이터를 기반으로 수행

텐서플로

  • TensorFlow
  • 구글 브레인 팀이 만든 기계학습을 위한 오픈소스 소프트웨어 라이브러리
  • C++언어로 제작되었고 Python API를 제공한다.

평면 디자인

  • Flat Design
  • 그림자나 기울기 등의 3차원 입체감을 주는 화려한 요소들의 사용을 최소화하는 디자인 장르

업무 프로세스

· 약 23분
  • Information Strategy Planning
  • 기업이 수립한 장기적인 목표와 방향을 효과적으로 지원하기 위해 전사적 관점(Total)에서 정보 시스템이나 정보 관리 등의 전략을 수립하는 활동

CSF

  • Critical Success Factor = 핵심 성공 요소
  • 성공에 불가결한 요인을 찾아내어 경영상 중요한 정보를 결정하는 방법

3C 분석

  • 고객(Customer)
  • 경쟁사(Competitor)
  • 자사(Company)
  • 4C: 유통(Channel)

SWOT 분석

  • 강점(Strength)은 부각
  • 약점(Weekness)은 보완
  • 기회(Opportunity)는 활용
  • 위협(Threat)은 억제
  • 각 요인을 결합해 전략을 세운다(SO, WO, ST, WT)

5-FORCE 분석

  • 기업에 영향을 미치는 외부의 5가지 요인을 분석하여 기업의 경쟁 환경을 분석하기 위한 도구
  • 미국 경제학자 마이클 포터가 제안
  • 5가지 요인
    • 신규 진입자의 위협
    • 기존 업계 경쟁
    • 공급자의 교섭력
    • 구매자의 교섭력
    • 대체품의 위협

7S 분석

  • 조직 내부의 역량, 체계 등을 분석하는 기법으로 전략 경영체제에 적합한 내부 역량의 판단 방법론으로 사용된다.
  • 맥킨지사에서 개발
  • 7가지 요소
    • 전략(Strategy)
    • 시스템(System)
    • 구조(Structure)
    • 공유된 가치(Shared value)
    • 기술/역량(Skill)
    • 사람(Staff)
    • 스타일(Style)

BPR

  • Business Process Reengineering = 업무 프로세스 재설계
  • 경쟁에서 우위를 확보하기 위해 기업의 핵심 부문인 비용, 품질, 서비스, 스피드와 같은 요인들이 획기적인 향상을 이룰 수 있도록, 프로세스를 기반으로 비즈니스 시스템을 근본적으로 재설계하여 혁신적인 성과를 추구하는 것

BPR의 실행 4단계

  1. 현행 업무 프로세스(AS-IS) 모형 분석
  2. 개선 사항 분석
  3. 향후 업무 프로세스(TO-BE) 모형 수립
  4. 이행 계획(Transition Plan)

BPM

  • Business Process Management = 업무 프로세스 관리
  • 미리 정의된 사람 및 정보 자원과 업무의 흐름을 통합적으로 관리, 지원해주는 업무처리 자동화 기법
  • 기업의 프로세스를 통합적으로 관리하고 개선할 수 있도록 도와주는 도구이자 방법론
  • 기업 내외의 업무 프로세스를 가시화하고 업무 수행과 관련된 사람 및 시스템을 통제하며 전체 업무 프로세스를 효율적으로 관리하고 최적화할 수 있는 변화 관리 및 시스템 구현 기법

BPM 프로세스 관리 사이클

  1. 프로세스 정의(Process Definition)
  2. 프로세스의 실행(Enactment)
  3. 프로세스의 측정(Measure)
  4. 프로세스의 분석과 개선
  5. 프로세스 통제와 모니터링, 예측(Control)

KPI

  • Key Perpormance Indicator = 핵심 성과 지표
  • 미래 성과에 영향을 주는 여러 핵심지표를 묶은 평가 기준

RTE

  • RealTime Enterprise = 실시간 기업
  • 기업 내외부에 걸친 지속적인 프로세스의 개선과 실시간 정보제공을 통해 업무지연을 최소화하고 의사결정 스피드를 높여 경쟁력을 극대화하는 기업
  • 프로세스에 대한 실시간 가시성을 확보

PI

  • Process Innovation
  • 기존의 업무처리 방식을 정형화하고, 최적의 프로세스를 재구축하여 업무의 효율성을 높이려는 비즈니스 프로젝트
  • 미국의 경제학자 Davenport는 PI를 "정보 기술을 활용하여 비즈니스 프로세스를 혁신함으로써 사업 성과를 높이는 것"이라고 정의

ERP

  • Enterprise Resource Planning = 전사적 자원관리
  • 생산, 판매, 자재, 인사, 회계 등 기업의 전반적인 업무 프로세스를 하나의 체계로 통합 및 재구축하여 관련 정보를 서로 공유하고 이를 통해 신속한 의사결정 및 업무 수행이 가능하도록 도와주는 전사적 자원 관리 패키지 시스템

APICS

  • American Production & Inventory Control Society
  • 수주, 생산, 출하에 이르기까지의 일련의 작업 공정을 진행하기 위해 필요한 기업 경영 자원을 점검, 계획하기 위한 종합 정보 시스템

가트너 그룹

  • 제조 업무 시스템을 핵심으로 재무회계와 판매, 그리고 물류 시스템 등을 통합한 것으로 가상 기업을 지향하는 시스템

MRP

  • Material Requirements Planning = 자재 소요 계획
  • 재고 품목에 대한 수요가 파생 수요일 보다 적을 경우 보다 복잡한 재고 계산이 필요하여 고안된 기법
  • 재고 계획과 통제 시스템으로 구성
  • 원자재에서 최종 완제품에 이르기까지 자재의 흐름을 관리하는 기법

SEM

  • Strategic Enterprise Management = 전략적 기업 경영
  • 경영자 및 관리자들이 기업의 수익 창출을 위한 합리적인 의사 결정을 할 수 있도록 신뢰할 수 있는 정보를 제공해 주는 전략적 의사결정 지원 시스템
  • VBM, ABM/ABC, BSC 등으로 구성되어있다.

VBM

  • Value Based Management = 가치기준경영
  • 기업 가치의 극대화를 기업의 궁극적 목표로 함

ABM/ABC

  • Activity Based Management / Activity Based Costing
  • 활동기준관리 / 활동기준 원가계산
  • ABM은 복잡해지는 원가관리체계를 실제 활동에 근거하여 정확한 원가를 계산하고 관련 활동과 원가대상에 대한 성과를 측정하는 일련의 관리체계로 ABC를 이용하여 전략적 의사결정을 지원
  • ABC는 원가의 발생 원인을 체계적으로 분석하여 정확한 제품의 원가를 계산하는 원가 계산 방법

BSC

  • Balanced Score Card = 균형성과관리
  • 매출액, 순이익 등 과거 성과인 재무지표에만 의존했던 기업 성과 측정에 비재무적인 측정을 추가하여 기업의 성과를 균형 있게 평가하는 무형 자산 평가 모델

BSC의 관점

  • 재무적 관점: 기업 주요 이해 관계자들에게 매출액, 순이익, 원가절감 등의 재무적인 지표를 통해 조직의 성과를 보여주기 위한 관점
  • 고객 관점: 고객의 만족도, 충성도 등 고객 관계를 평가하는 관점
  • 내부 비즈니스 프로세스 관점: 경쟁사와 비교하여 해당 기업이 어떤 장점과 핵심역량을 갖고 있는지를 평가하는 관점
  • 학습과 성장 관점: 기업의 비전을 달성하기 위해 필요한 학습 및 개선사항을 측정하는 관점

IRM

  • Information Resource Management = 정보 자원 관리
  • 기업의 정보 자원을 조직 전체가 공유할 수 있도록 자원관리 원칙에 따라 관리하는 정보 관리 접근방법
  • 정보 활용의 효율성을 최대화하는 것을 목적으로 한다.
  • 정보 자원은 정보와 그 정보를 다루는 기술 모두를 포함한다 따라서 정보 자원 관리는 정보 자체만이 아니라 정보의 처리와 관리를 위한 기술, 장비, 인력, 자금 등의 자원 관리까지 모두 포괄하는 개념이다.

IRM의 구성요소

  • 정보
  • 정보 기술
  • 정보 시스템

ERM

  • Enterprise Risk Management = 전사적 위험 관리
  • 기업의 궁극적인 목표 달성을 위해 기업이 직면하고 있는 주요 리스크들을 식별하고 관리하기 위한 리스크 관리 방식
  • IMF를 겪으며 그 중요성이 강조되었다.
  • 전사적인 수준의 정보와 커뮤니케이션을 동원하여 여러 가지 대내외적인 리스크 요인들을 인식하고 일정한 허용 범위 내에서 효과적인 대응 방안을 수립 및 수행하고 모니터링 하는 지속적인 프로세스이다.

SCM

  • Supply Chain Management = 공급망 관리
  • 기업 간 또는 기업 내부에서 제품이나 부품의 최초 생산자부터 최종 소비자에 이르는 공급망을 효율적으로 관리해 불필요한 시간과 비용, 재고 등을 줄이려는 관리 기법
  • e-SCM: 디지털 기술을 활용하여 기존의 SCM 관련 기술들을 웹상에서도 수행할 수 있도록 한 것

SCM 구성요소

  • 공급망 계획 시스템
    • SCP(Supply Chain Planning)
    • 기업이 제품 수요를 예측하고 그 제품에 대한 조달 및 생산 계획을 수립하는 시스템
  • 공급망 실행 시스템
    • SCE(Supply Chain Execution)
    • 제품이 올바르게 전달될 수 있도록 제품의 흐름을 관리하는 시스템

PLM

  • Product Lifecycle Management = 제품 수명주기 관리
  • 기업이 제품의 원가를 낮추고 부가가치를 높일 수 있도록 기획부터 설계, 생산, 서비스, 폐기에 이르는 수명주기를 관리하는 것
  • 제품 개발의 전체 과정에 관한 정보를 통합적으로 관리함으로써 기업 내 담당자나 고객, 협력업체들과 제품 정보를 공유하거나 협업을 진행할 수 있어 제품 개발 과정의 효율성을 높여준다.

CRM

  • Customer Relationship Management = 고객 관계 관리
  • 고객의 요구나 의견을 분석하여 고객의 성향과 욕구를 충족시키는 마케팅을 실시하므로 고객 관리 비용을 최소화하고 지속적인 기업의 가치 창출을 위해 등장
  • 고객 정보를 세부적으로 분류하여 고객의 구매 관련 행동을 지수화하고 신규 고객 유치, 장기 고객 관리, 잠재 고객 발굴 등과 같은 사이클을 통해 고객과의 관계를 관리한다.

SRM

  • Supplier Relationship Management = 공급업체 관계 관리
  • 제품을 공급하는 공급업체와의 관계를 관리하고 평가하여 기업의 수익성을 높일 수 있도록 해주는 경영 기법
  • 기업이 최적의 공급망을 유지할 수 있도록 프로세스 전반에 걸쳐 공급업체를 관리, 평가한다.

MDM

  • Master Data Management = 기준 정보 관리
  • 기업 내외부에 산재해 있는 마스터 데이터의 단일화를 통해 활용도를 높이고 오류를 줄이기 위한 모든 활동의 집합
  • 데이터 품질이 중요하다.

VRM

  • Vendor Relationship Management = 벤더 관계 관리
  • 개인이 기업에게 제공할 개인 정보, 선호도, 패턴 등을 관리하는 기술
  • 기업이 고객의 정보를 분석 및 통합하여 관리하는 CRM에 반대되는 개념

EAI

  • Enterprise Application Integration = 전사적 응용 통합
  • 기업 내의 운영되는 여러 종류의 플랫폼 및 애플리케이션 등을 통합하고 유기적으로 처리할 수 있는 기반 기술을 통칭
  • 기존 방식은 각 시스템 간의 인터페이스 요구를 Point-to-Point 방식으로 연결했기 때문에 통합 관리가 불가능하고 유지보수가 어려웠으나 EAI는 기업 내 애플리케이션을 유기적으로 연결시켜 업무 프로세스들을 최대한 단순화, 자동화하고 여러 시스템 간의 실시간 정보 조회가 가능하도록 한다.

EIP

  • Enterprise Information Portal = 기업 정보 포털
  • EAI를 통해 기업 내부의 그룹웨어, 인트라넷 등을 통합해 하나의 웹 화면으로 제공하는 통합 정보 시스템
  • e-Portal이라고도 한다.

KMS

  • Knowledge Management System = 지식 관리 시스템
  • 기업 내의 지식을 관리하기 위한 분산 하이퍼미디어 시스템
  • 기업환경이 지적 재산의 중요도가 부각되는 지식 기반 사회로 급격히 이동함에 따라 기업 경영을 지식이라는 관점에서 새롭게 조명하는 접근방식

EA

  • Enterprise Architecture = 전사적 아키텍처
  • 기업의 목표와 요구사항을 효과적으로 지원하기 위해 IT 인프라 각 부분의 구성과 구현 기술을 체계적으로 기술하는 작업
  • 기업의 최고 정보 책임자(CIO)가 효율적인 IT 인프라와 전략 확보 차원에서 조직의 업무 활동과 IT간의 고나계를 현재와 미래에 추구할 모습으로 체계화한 청사진

BI

  • Business Intelligence = 비즈니스 인텔리전스
  • 기업 내부에 축적된 대량의 정보를 기업의 경영활동 전반에 활용될 수 있도록 정리, 분석하여 제공하는 애플리케이션과 기술을 총칭
  • 데이터 웨어하우스에 축적된 대량의 정보는 데이터 마트, 데이터 마이닝, OLAP 등의 기법을 이용해 분석되어 기업이 더 나은 의사 결정을 하는데 활용

BRMS

  • Business Rule Management System = 비즈니스 규칙 관리 시스템
  • 기업 정책, 가격 정책, 마케팅 전략, 이벤트 등 기업 운영에 사용되는 비구조적이고 복잡한 업무 프로세스를 자동으로 정의 및 제어함으로써 경험이 부족한 비전문가도 효과적인 업무 처리 및 상품 판매 등이 가능하도록 지원하는 시스템

BPO

  • Business Process Outsourcing = 업무 프로세스 아웃소싱
  • 기업의 경쟁력 강화를 위해 핵심 업무를 제외한 모든 업무를 외부 전문 업체에 위탁하여 자사 핵심 업무에 모든 역량을 집중하는 경영 기법
  • 제품 개발의 기획 단계부터 운영, 모니터링 등 모든 단계를 외부 업체에 맡겨 운영하는 것으로 비용 절감을 위해 단순 업무만을 위탁하던 기존의 아웃소싱 방식과는 구분된다.

ITO

  • Information Technology Outsourcing = 정보 기술 아웃소싱
  • 프로그래밍이나 인터넷 등의 IT 관련 업무들을 외부 전문 업체에 위탁하는 경영 기법
  • BPO의 하위 개념

SLA

  • Service Level Agreement = 서비스 수준 계약
  • 서비스 시간, 가용성, 성능, 복구 등 일정한 서비스 수준을 보장하기 위해 IT 서비스 사업자와 사용자 간에 맺는 계약
  • SLA가 맺어지면 IT 서비스 사업자는 SLM을 통해 지속적인 품질관리와 보고 업무를 수행한다.

SLM

  • Service Level Management = 서비스 수준 관리
  • IT 서비스 사업자와 사용자 간에 맺은 SLA에서 정의한 서비스에 대해 성과와 문제점을 정확히 측정,평가하고 개선해 나아가는 과정

ITSM

  • IT Service Management = IT 서비스 관리
  • 서비스 사용자에게 제공되는 IT 서비스의 계획, 설계, 제공, 운영 및 관리를 위해 서비스 제공자가 수행하는 프로세스 및 지원 절차 등을 의미

ITSM의 구성요소

  • 프로세스(Process)
  • 인력(People)
  • 조직(Organization)
  • 기술(Technology)

ITIL

  • IT Infrastructure Library = 정보기술 인프라 라이브러리
  • IT 서비스의 운영 및 관리를 돕기 위한 문서들의 집합
  • IT 조직이 기존의 기술 중심적인 운영에서 사용자들의 요구에 초점을 맞춘 고객 지향적인 운영방식을 채택함에 따라 각자 개별적인 IT 관리 관행을 만드는 것을 방지하기 위해 영국 정부가 다양한 IT 서비스들의 관리 방법들을 모아 만든 표준적인 참고문헌

ISO/IEC 20000

  • IT 서비스 관리에 대한 최초의 국제 표준
  • IT 서비스 관리 시스템의 필요한 사항들을 구체적으로 명시

전자상거래

B2C

  • Business to Customer = 기업과 소비자 간의 전자상거래
  • 소배자를 대상으로 하는 서비스업으로 소비자에게 유무형의 재화를 제공, 판매 및 중개를 한다.

B2B

  • Business to Business = 기업 간의 전자상거래
  • 특정 기업 간의 CALS 및 EDI를 통한 수주, 구매, 조달 및 납품 등과 관련된 기업 간의 전자상거래이다.

CALS

  • Commerce At Light Speed = 광속 상거래
  • 1985년 미국 국방부에서 컴퓨터를 이용해 군수 물자와 기술 흐름을 합리적으로 통제하여 군수품 납품 체계를 개선할 목적으로 처음 도입되었다.
  • 모든 기술 정보 등을 통합 데이터베이스로 관리

B2G

  • Business to Government = 기업과 정부 간의 전자상거래
  • 조달, 행정, 인증 등과 관련된 기업과 정부 간의 전자상거래

C2C

  • Customer to Customer = 소비자 간의 전자상거래
  • 소비자가 상품 구매자와 공급자가 되는 것

e-마켓플레이스

  • 인터넷 상에서 다수의 기업 간 공급과 수요 간에 유발되는 비즈니스 거래르 총칭하는 가상시장

Escrow 서비스

  • 조건부 양도증서 서비스
  • 전자상거래시 판매자와 구매자의 거래가 문제없이 이뤄질 수 있도록 제 3자가 도와주는 매매 보호서비스

Database 실기

· 약 55분
  • 통합된 데이터(Integrated Data): 검색의 효율성을 위해 중복이 최소화된 데이터의 모임
  • 저장 데이터(Stored Data): 컴퓨터가 접근 가능한 저장 매체에 저장된 데이터
  • 운영 데이터(Operational Data): 조직의 목적을 위해 존재 가치가 확실하고 반드시 필요한 데이터
  • 공유 데이터(Shared Data): 여러 응용 프로그램들이 공동으로 사용하는 데이터

DB 특징

  • 실시간 접근성(Real Time Accessibility): 사용자의 질의에 대해 즉시 처리하여 응답하는 특징
  • 계속적인 진화(Continuous Evolution): 삽입, 삭제, 갱신을 통하여 항상 최근의 정확한 데이터를 동적으로 유지하는 특징
  • 동시 공유(Concurrent Sharing): 여러 사용자가 동시에 원하는 데이터를 공용할 수 있는 특징
  • 내용에 의한 참조(Content Reference): 주소나 위치에 의해서가 아니라 사용자가 요구하는 내용에 따라 참조하는 특징
  • 데이터의 논리적, 물리적 독립성(Independence)
    • 논리적 독립성: 응용 프로그램과 DB 를 독립시킴으로써 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 변경되지 않는 특징
    • 물리적 독립성: 응용 프로그램과 보조기억장치와 같은 물리적장치를 독립시킴으로써 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만 변경될 수 있는 특징

데이터 언어

  • Data Language
  • DDL(데이터 정의어): 데이터베이스를 구축하거나 변경할 목적으로 사용하는 언어
  • DML(데이터 조작어): 데이터 처리를 위해 응용 프로그램과 DBMS 사이의 인터페이스를 위한 언어
  • DCL(데이터 제어어): 보안 및 권한제어, 무결성, 회복, 병행제어를 위한 언어

DB 사용자

  • DB 관리자(DBA): DDL 과 DCL 을 통해 DB 를 정의하고 제어하는 사람 또는 그룹
  • 데이터 관리자(Data Administrator): 기업 또는 조직 내에서 데이터에 대한 정의, 체계화, 감독 및 보안업무 등 데이터에 대한 관리를 총괄하고 정보 활용에 대한 계획 수립 및 통제를 수행한다.
  • 데이터 설계자(Data Architect): 데이터의 구조를 체계적으로 정의하는 사람
  • 응용 프로그래머: 호스트 프로그래밍 언어에 DML 을 삽입하여 DB 에 접근하는 사람
  • 일반 사용자(End User): 질의어를 통해 DBMS 에 접근하는 사람

DBMS 개념

  • 사용자와 DB 사이에서 사용자의 요구에 따라 정보를 생성해주고 DB 를 관리해주는 소프트웨어
  • 기존 fs 가 갖는 데이터의 종속성과 중복성문제를 해결하기 위한 시스템으로 모든 응용 프로그램들이 DB 를 공유할 수 있도록 관리해준다.
  • 데이터 종속성으로 인한 문제점: 데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 때 응용 프로그램도 같이 변경해야하는 문제점
  • 데이터 중복성으로 인한 문제점: 중복된 데이터 간에 데이터의 정확성이나 무결성을 효율적으로 유지할 수 없다는 문제점

DBMS 필수기능

  • 정의 기능(Definition Facility): 데이터의 타입과 구조, 데이터가 DB 에 저장될 때의 제약조건 등을 명시하는 기능
  • 조작 기능(Manipulation Facility): 체계적 데이터 처리를 위해 데이터 접근 기능(CRUD)을 명시하는 기능
  • 제어 기능(Control Facility): 데이터의 정확성과 안정성을 유지하기 위해 무결성, 보안 및 권한 검사, 병행제어 등을 명시하는 기능

DSMS

  • 데이터 스트림 관리 시스템(Data Stream Management System)
  • 대량의 스트림 데이터를 처리하고 관리하는 시스템
  • 온라인상의 데이터 스트림이라는 동적인 특성을 가진 데이터를 처리하고 관리하는 시스템
  • 입력 순서에 따라 데이터의 처리결과가 달라질 수 있다.

스키마

  • DB 의 구조와 제약 조건에 대한 전반적인 명세
  • 개체, 속성, 관계 및 제약조건 등에 관해 전반적으로 정의
  • 외부 스키마, 개념 스키마, 내부 스키마
  • 개체: 현실 세계의 객체로 유형 또는 무형의 정보를 대상으로 존재하며 서로 구별될 수 있는 것
  • 속성: 개체의 특성이나 상태를 기술하는 것으로 데이터의 가장 작은 단위
  • 관계: 2 개 이상의 개체 사이에 연관성을 기술한 것

스키마 특징

  • 데이터의 구조적 특성을 의미
  • 데이터 사전에 저장된다.
  • 현실세계의 특정한 한 부분의 표현으로 특정 데이터 모델을 이용해 만들어진다.
  • 시간에 따라 불변적이다.
  • 데이터의 논리적 단위에 명칭을 부여하고 그 의미를 기술

데이터 사전

  • 데이터 사전은 DB 에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지관리하는 시스템
  • 시스템 카달로그

메타 데이터

  • 데이터에 관한 데이터
  • 저장되는 데이터와 직간접적으로 관계가 있는 정보를 제공하는 데이터
  • MARC(Machine Readable Cataloging): 목록 레코드를 식별하여 축적유통할 수 있도록 코드화한 메타 데이터
  • DC(Dublin Core): 네트워크 환경에서 각종 전자 정보를 기술하는 메타 데이터
  • ONIX(ONline Information eXchange): 유통에 관한 통계와 체계적인 정보를 취급함으로써 정상적인 유통 및 관리를 위한 메타 데이터
  • MODS(Metadata Object Description Schema): 디지털 도서관의 범용 서지 정보 표준 메타 데이터

메타 데이터의 상호 운용성

  • 하나의 표준적인 메타 데이터로 통합하여 표현하는 방법
  • 상호 매핑을 통해 해결하는 방법
  • MDR에 의한 해결방법
    • Meta Data Registry
    • 메타 데이터의 등록과 인증을 통해 메타 데이터를 유지관리하며, 메타 데이터의 명세를 공유하는 레지스트리

스키마 3 계층

외부 스키마

  • 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 DB 의 논리적 구조를 정의
  • 하나의 DBMS 에는 여러 개의 외부 스키마가 존재할 수 있으며 하나의 외부 스키마는 여러 개의 응용 프로그램이나 사용자에 의해 공유될 수 있다.

개념 스키마

  • 개체 간의 제약 조건을 나타내고 DB 의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의
  • DB 의 전체적인 논리적 구조로 데이터를 통합한 조직 전체의 DB 명세로서 하나만 존재한다.
  • 기관이나 조직의 관점에서 DB 를 정의

내부 스키마

  • DB 의 물리적 구조를 정의
  • 물리적 저장장치의 관점에서 본 전체 DB 의 명세로 하나만 존재
  • 개념 스키마의 물리적 저장 구조에 대한 정의를 기술
  • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마

DB 설계

  • DB 스키마를 개발하는 과정
  • 요구 조건 분석(Requirement Analysis)
  • 개념적 설계(Conceptual Design)
  • 논리적 설계(Logical Design)
  • 물리적 설계(Physical Design)
  • DB 구현(Database Implementation)

요구 조건 분석

  • DB 를 사용할 사람이 필요로 하는 용도를 파악하는 작업

개념적 설계

  • 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정

논리적 설계

  • 시스템이 지원하는 논리적 데이터 구조로 변환시키는 과정

물리적 설계

  • 저장 구조와 접근 경로를 결정하는 과정
  • 응답 시간, DB 파일과 접근 경로 구조에 대한 저장 공간의 효율성, 트랜잭션 처리도 등을 고려

DB 구현

  • DB 를 실제로 구축하는 과정
  • DBMS 의 DDL 로 기술된 명령문을 실행시켜 DB 스키마와 DB 파일을 생성
  • DML 로 기술된 명령문을 가지는 프로그램 코드가 작성된다.

ER 모델

  • 네모: 개체 타입(Entity Type)
  • 마름모: 관계 타입(Relationship Type)
  • 타원: 속성
  • 밑줄타원: 기본키 속성
  • N:M: 개체 타입 간의 연관성
  • 선: 개체 타입과 속성을 연결
  • ISA: 특정 개체는 서로 구별되는 여러 하위 개체로 나눠질 수 있는데 이러한 상위 개체와 하위 개체 간의 관계를 ISA 관계라고 한다.
    • ex) 학생 개체 => 재학생, 휴학생, 졸업생 개체

개체 및 개체 타입

  • 개체는 현실 세계의 객체로 유형 또는 무형의 정보 대상으로 존재하며 서로 구별될 수 있는 것
  • 개체의 특성을 나타내는 속성을 갖는다.
  • 하나의 개체를 개체 어커런스 = 개체 인스턴스라한다.
  • 개체 어커런스들의 집합에 대한 공통의 특성을 갖는 개체 클래스를 개체 타입이라 한다.

관계 및 관계 타입

  • 관계는 2 개 이상의 개체 사이에 존재하는 연관성
  • 개체 타입의 개수에 대한 차수와 개체 어커런스의 개수에 대한 대응 카디널리티를 갖는다.
  • 차수에 따른 관계 종류
    • 단항(Unary): 관계에 참여하고 있는 개체타입이 1 개인 관계
    • 이항(Binary)
    • 삼항(Ternary)
    • n 항(n-ary)
    • 1:1: 두 개체 타입이 모두 하나씩의 개체 어커런스를 갖는 관계
    • 1:N: 한 개체 타입은 하나의 개체 어커런스, 다른 한 개체 타입은 여러개의 개체 어커런스를 갖는 관계
    • N:M: 두 개체 타입 모두 여러 개의 개체 어커런스를 갖는 관계
    • ISA

ISA

  • disjoint: 상위 개체의 멤버가 하나의 하위 개체에만 포함될 때
  • overlapping: 상위 개체의 멤버가 여러 하위 개체에 포함될 때
  • total: 상위 개체의 멤버가 하위 개체에 속할 때
  • partial: 상위 개체의 멤버가 하위 개체에 속하지 않을 때

속성

  • 개체의 특성이나 상태를 기술한 것
  • 도메인: 속성이 가질 수 있는 모든 가능한 값들의 집합
  • 단순 속성: 더 이상 다른 속성으로 나눌 수 없는 속성
  • 복합 속성: 2 개 이상 속성들로 분해할 수 있는 속성

릴레이션

  • 데이터를 원자값으로 갖는 이차원의 테이블
  • 릴레이션의 구조는 물리적인 구조를 나타내는 것이 아닌 논리적 구조
  • 릴레이션 스키마: 릴레이션 구조
  • 릴레이션 인스턴스: 실제 값
  • 속성: 릴레이션의 열(Column)
  • 튜플: 릴레이션의 행(Row)

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

  • 개념적인 데이터 모델인 ER 모델을 논리적 데이터 모델인 릴레이션 스키마로 변환하는 것
  • 매핑 룰(Mapping Rule)이라고 한다.
  • N:M 관계이면 릴레이션 A 와 B 의 기본키를 모두 포함한 별도의 릴레이션으로 표현한다. 이 때 생성된 별도의 릴레이션을 교차 릴레이션 또는 교차 엔티티라고 한다.

관계의 표현

  • 1:1(┼─┼): 양쪽에 반드시 1 개씩 존재
  • 1:0 또는 1:1(┼─Θ├): 왼쪽에는 반드시 1 개, 오른쪽에는 없거나 1 개 존재
  • 1:N(┼─<): 왼쪽에는 반드시 1 개, 오른쪽에는 반드시 여러개
  • 1:1 또는 1:N(┼─┤<): 왼쪽에는 반드시 1 개, 오른쪽에는 1 개 또는 여러개 존재
  • 1:0 또는 1:1 또는 1:N(┼─Θ│<): 왼쪽에는 반드시 1 개, 오른쪽에는 0 개 또는 1 개 또는 여러개 존재

식별관계

  • Identifying
  • 개체 A, B 사이의 관계에서 A 개체의 기본키가 B 개체의 외래키이면서 동시에 기본키가 되는 관계
  • ER 도형에서 실선으로 표시

비식별관계

  • Non-identifying
  • 개체 A, B 사이의 관계에서 A 개체의 기본키가 B 개체의 비기본키 영역에서 외래키가 되는 관계
  • B 개체의 존재 여부는 A 개체의 존재 여부와 관계없이 존재
  • ER 도형에서 점선으로 표시

슈퍼키

  • 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
  • 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 못한다.

후보키

  • Candidate Key
  • 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
  • 유일성과 최소성을 모두 만족한다.

복합키

  • 2 개 이상의 필드를 조합하여 만든 키

기본키

  • Primary Key
  • 후보키 중에서 특별히 선정된 키
  • 중복된 값을 가질 수 없다.
  • NULL 일 수 없다.

대체키

  • Alternate Key
  • 대체키는 후보키 중에서 선정된 기본키를 제외한 나머지 후보키

외래키

  • Foreign Key
  • 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

무결성

  • Integrity
  • DB 에 저장된 데이터 값과 그 것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미
  • 무결성 제약조건(Constraint): DB 에 저장된 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 DB 에 저장되는 것을 방지하기 위한 조건

무결성 종류

  • NULL 무결성: 특성 속성 값이 NULL 이 될 수 없음
  • 고유 무결성(Unique): 특정 속성에 대해 각 튜플이 갖는 속성 값이 서로 달라야 한다.
  • 도메인 무결성: 특정 속성의 값이 그 속성이 정의된 도메인에 속해야한다.
  • 키 무결성: 하나의 릴레이션에는 적어도 하나의 키가 존재해야한다.
  • 관계 무결성(Relationship): 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정
  • 참조 무결성(Referential): 외래키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야 한다.
  • 개체 무결성(Entity): 기본 릴레이션의 기본키를 구성하는 어떤 속성도 NULL 일 수 없다.

관계대수

  • Relational Algebra
  • 관계형 DB 에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어
  • 기본연산: SELECT, PROJECT, JOIN, DIVISION
  • 집합연산: UNION, DIFFERENCE, INTERSECTION, CARTESIAN PRODUCT

순수 관계 연산자

SELECT

  • 릴레이션에 존재하는 튜플들 중 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션을 만든다.
  • 튜플을 구하는 것이므로 수평 연산
  • 시그마 σ를 사용한다.
  • σ <조건>(테이블)

PROJECT

  • 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만든다.
  • 열에 해당하는 속성을 추출하는 것이므로 수직 연산
  • 파이 π를 사용한다.
  • π <속성>(테이블)

JOIN

  • 공통 속성을 중심으로 2 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만든다.
  • JOIN 연산의 결과는 CARTESIAN PRODUCT 연산을 수행한 다음 SELECT 연산을 수행한 것과 같다.
  • ▷◁ 를 사용한다.
  • 테이블▷◁(JOIN 조건)S
  • 세타 조인: 비교 연산자를 θ 로 일반화하여 θ 로 표현될 수 있는 조인
  • 자연 조인: 중복된 속성을 제거하여 같은 속성은 한 번만 나타나게 하는 연산

일반 집합 연산자

  • 수학적 집합에서 사용하는 연산자
  • 합집합(UNION): R∪S ≤ R + S
  • 교집합(INTERSECTION): R∩S ≤ MIN(R, S)
  • 차집합(DIFFERENCE): R-S ≤ R
  • 교차곱(CARTESIAN PRODUCT): (R×S) = (R)×(S)

관계해석

  • Relational Calculus
  • E.F. Codd 가 수학의 Predicate Calculus(술어해석)에 기반을 두고 관계 DB 를 위해 제안
  • 관계 데이터의 연산을 표현하는 방법
  • 원하는 정보를 정의할 때 계산 수식을 사용한다.
  • 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다.

DDL

  • DDL 로 정의된 내용은 메타데이터가 되며 시스템 카탈로그에 저장된다.

CREATE SCHEMA

CREATE SCHEMA 스키마명 AUTHORIZATION 유저;

CREATE DOMAIN

CREATE DOMAIN 도메인명 타입
[DEFAULT 기본값]
[CONSTRAINT 제약조건명 CHECK 제약조건];

CREATE DOMAIN GENDER CHAR(1)
DEFAULT 'M'
CONSTRAINT VALID-GENDER CHECK (VALUE IN ('M', 'F'));

CREATE TABLE

CREATE TABLE 테이블명 (
속성명 타입 [NOT NULL],
[PRIMARY KEY(속성),]
[UNIQUE(속성)]
[FOREIGN KEY(속성) REFERENCES 참조테이블(속성)
[ON DELETE 옵션]
[ON UPDATE 옵션]
]
[CONSTRAINT 제약조건명] [CHECK(조건)]
);

CREATE VIEW

CREATE VIEW 뷰명[(속성명)]
AS SELECT 속성 FROM 테이블
[WITH CHECK OPTION];
  • 속성명을 기술하지 않으면 SELECT 문의 속성명이 자동으로 사용된다.
  • WITH CHECK OPTION 은 뷰에 대한 갱신이나 삽입연산이 실행될 때 뷰의 정의 조건을 위배하면 갱신이나 삽입 연산의 실행을 거부하도록 지정하기 위한 것이다.

CREATE INDEX

CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명(속성명 정렬)
[CLUSTER];
  • CLUSTER: 지정된 키에 따라 튜플들을 그룹으로 지정하기 위해 사용한다.

CREATE TRIGGER

  • 트리거는 DB 에서 데이터의 입력, 갱신, 삭제 등의 이벤트가 발생할 때마다 자동적으로 수행되는 사용자 정의 프로시저이다.
CREATE TRIGGER 트리거명 [AFTER|BEFORE] [INSERT|DELETE|UPDATE]
ON 테이블명
REFERENCING [NEW|OLD] TABLE AS 테이블명
FOR EACH ROW
WHEN 조건

BEGIN
트리거 BODY
END;

/* 학생 테이블에 값이 삽입되기 전에 학년 속성이 없으면 신입생 값을 넣어준다 */
CREATE TRIGGER 학년정보트리거 BEFORE INSERT ON 학생
REFERENCING NEW TABLE AS temp
FOR EACH ROW
WHEN temp.학년 = ''
BEGIN
SET temp.학년 = '신입생';
END;

ALTER TABLE

ALTER TABLE 테이블명 ADD 속성명 타입 [DEFAULT '기본값'];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
ALTER TABLE 테이블명 DROP 속성명 [CASCADE];

DROP

DROP TABLE 테이블명 [CASCADE|RESTRICT];
DROP VIEW 뷰명 [CASCADE|RESTRICT];

SELECT

SELECT [DISTINCT] 속성 FROM 테이블
[WHERE 조건]
[GROUP BY 속성]
[HAVING 조건]
[ORDER BY 속성 순서]

JOIN

INNER JOIN

  • EQUI JOIN: 대상 테이블에서 공통 속성을 기준으로 = 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성하는 JOIN 방법
SELECT 속성, 속성2
FROM 테이블1, 테이블2
WHERE 테이블1.속성 = 테이블2.속성;

SELECT 속성, 속성2
FROM 테이블1 NATURAL JOIN 테이블2;

SELECT 속성, 속성2
FROM 테이블1 JOIN 테이블2 USING(속성);
  • NON-EQUI JOIN: =이 아닌 다른 비교연산자를 사용하는 JOIN 방법인데 잘 안쓴다.

OUTER JOIN

  • LEFT OUTER JOIN
SELECT 속성, 속성2
FROM 테이블1 LEFT OUTER JOIN 테이블2
ON 테이블1.속성 = 테이블2.속성;

SELECT 속성, 속성2
FROM 테이블1, 테이블2
WHERE 테이블1.속성 = 테이블2.속성(+);
  • RIGHT OUTER JOIN
SELECT 속성, 속성2
FROM 테이블1, 테이블2
WHERE 테이블1.속성(+) = 테이블2.속성;

SELF JOIN

  • 같은 테이블에서 2 개의 속성을 연결하여 EQUI JOIN 을 하는 JOIN 방법

DML

INSERT

INSERT INTO 테이블[(속성)]
VALUES (데이터);

DELETE

DELETE FROM 테이블 WHERE 조건;

UPDATE

UPDATE 테이블
SET 속성 = 데이터
WEHRE 조건;

DCL

  • 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어
  • DBA 가 데이터 관리를 목적으로 사용
  • COMMIT, ROLLBACK, GRANT, REVOKE

GRANT

GRANT 권한 TO 유저;
GRANT 권한 ON 테이블 TO 유저 [WITH GRANT OPTION];

REVOKE

REVOKE 권한 FROM 유저;
REVOKE [GRANT OPTION FOR] 권한 ON 테이블 FROM 유저 [CASCADE];
  • GRANT OPTION FOR 는 다른 사람에게 해당 권한을 부여하는 권한만을 취소한다.

내장 SQL

  • DB 내의 데이터를 정의하거나 접근하는 SQL 문을 응용프로그램 내에 내포하여 프로그램이 실행될 때 함께 실행되도록 호스트 프로그램 언어에 삽입한 SQL.

커서

  • 내장 SQL 의 실행 결과로 반환된 복수 개의 튜플을 접근할 수 있도록 해주는 개념
  • 질의 결과로 반환된 테이블의 튜플을 순서대로 가리키는 튜플에 대한 포인터
  • DECLARE: 커서 정의 등 커서에 관련된 선언을 하는 명령어
  • OPEN: 커서 질의 결과인 첫번째 튜플을 가리키도록 설정하는 명령어
  • FETCH: 다음 튜플로 커서를 이동시키는 명령어
  • CLOSE: 커서를 닫기 위해 사용하는 명령어
/* salary를 10% 증가시키는 갱신 연산 */
EXEC SQL DECLARE SECTION
int department;
int salary;
EXEC SQL END DECLARE SECTION

EXEC SQL DECLARE person CURSOR FOR
SELECT salary FROM EMPLOYEE
WHERE department = :department;

EXEC SQL OPEN person;
EXEC SQL FETCH person INTO :salary;

while(SQLSTATE == '00000'){
EXEC SQL UPDATE EMPLOYEE SET salary = salary * 1.1
WHERE CURRENT OF person;
EXEC SQL FETCH person INTO :salary;
}

EXEC SQL CLOSE person;

Stored Procedure

  • 모듈별 프로그래밍 허용
  • 빠른 SQL 실행: 한 번 실행된 후 메모리에 캐시되어 다음 실행에 빠르게 실행될 수 있다.
  • 보안성
  • 네트워크 통신량 감소
CREATE [OR REPLACE] PROCEDURE 프로시저명(IN|OUT|INOUT 파라미터)
[지역변수 선언]
BEGIN
프로시저 BODY;
END;

이상

  • Anomaly
  • 테이블에서 일부 속성들의 종속으로 데이터의 중복이 발생하고, 중복으로 인해 테이블 조작시 문제가 발생하는 현상 => 데이터 중복으로 인해 테이블 조작시 문제가 발생하는 현상

삽입 이상

  • Insertion Anomaly
  • 데이터를 삽입할 때 의도와는 상관없이 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상

삭제 이상

  • Deletion Anomaly
  • 테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 현상
  • 연쇄 삭제

갱신 이상

  • Update Anomaly
  • 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성(Inconsistency)이 생기는 현상

함수적 종속

  • Functional Dependency
  • X → Y 의 관계를 갖는 속성 X 와 Y 에서 X 를 결정자(Determinant), Y 를 종속자(Dependent)라고 한다.
  • 완전 함수적 종속: 어떤 속성이 기본키에 대해 완전히 종속적일 때를 말한다.
  • 부분 함수적 종속: 기본키의 일부에 대해 속성이 결정되는 경우.

정규화

  • Normalization
  • 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용해 테이블을 무손실 분해하는 과정
  • 무손실 분해: NATURAL JOIN 을 통해 원래 테이블로 정보 손실 없이 복귀되는 경우 분해된 테이블이 무손실 분해되었다고 한다.

제 1 정규형

  • 모든 속성의 도메인이 원자값만으로 되어 있는 정규형

제 2 정규형

  • 테이블이 제 1 정규형이고 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족하는 정규형

제 3 정규형

  • 테이블이 제 2 정규형이고 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수 종속을 만족하지 않는 정규형
  • 이행적 함수 종속: A → B 이고 B → C 일 때 A → C 를 만족하는 관계

BCNF

  • 테이블에서 모든 결정자가 후보키인 정규형
  • 일반적으로 제 3 정규형에 후보키가 여러 개 존재하고, 이러한 후보키들이 서로 중첩되어 나타나는 경우에 적용 가능하다.

제 4 정규형

  • 테이블에 다중 값 종속 A→→B 가 존재할 경우 테이블의 모든 속성이 A 에 함수적 종속 관계를 만족하는 정규형
  • 다중 값 종속
    • 다치 종속 = MVD = Multi Valued Dependency
    • A, B, C 3 개의 속성을 가진 테이블 R 에서 어떤 복합 속성(A, C)에 대응하는 B 값의 집합이 A 값에만 종속되고 C 값에는 무관하면 B 는 A 에 다중 값 종속이라고 한다.

제 5 정규형

  • 테이블의 모든 조인 종속이 테이블의 후보키를 통해서만 성립되는 정규형
  • 테이블 속성에 대한 부분 집합 X, Y, Z...가 있을 때 테이블이 자신의 프로젝션 X, Y, Z...를 모두 조인한 결과와 동일한 경우 테이블은 조인 종속을 만족한다.

역정규화

  • Denormalization
  • 정규화로 인해 여러 개로 분해된 릴레이션들에서 원하는 정보를 얻기 위해서 조인을 사용하여 다시 연결해야되는데 조인을 자주 사용하면 응답 속도가 떨어지므로 정규화에 위배되지만 성능 향상을 위해 다시 테이블을 합치는 것

시스템 카탈로그

  • DB 에 저장되어 있는 모든 데이터 개체들에 대한 정의나 명세에 대한 정보가 수록되어 있는 시스템 테이블

시스템 카탈로그의 구성요소

  • SYSOBJECTS: 각 개체에 관한 정보를 한 행으로 관리
  • SYSCOLUMNS: 각 테이블이 가지고 있는 모든 열에 대한 정보를 한 행으로 관리
  • SYSINDEXES: 모든 인덱스에 대한 정보를 한 행로 관리
  • SYSUSERS: 사용자와 그룹에 관한 정보를 한 행으로 관리
  • SYSPROTECTS: 사용자 권한에 관한 정보를 한 행으로 관리

인덱스

  • 데이터 레코드(튜플)에 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조

m-원 검색트리

  • m-Way Search Tree
  • 한 노드가 1 개의 키값과 2 개의 서브 노드를 갖는 이진 검색 트리를 일반화한 트리

B-트리

  • 인덱스를 구성하는 방법으로 많이 사용되는 균형된 m-원 검색트리
  • 키 값과 레코드를 가리키는 포인터들이 트리 노드에 오름차순으로 저장
  • 키 의 삽입과 삭제 시 노드의 분열과 합병이 발생할 수 있다.

B*-트리

  • B-트리의 문제점인 빈번한 노드의 분할을 줄이는 목적으로 제시된 B-트리의 변형
  • 각 노드가 가능한 한 최소 2/3 가 채워지도록 한 것이 특징

B+-트리

  • B-트리의 변형으로 단말 노드가 아닌 노드로 구성된 인덱스 세트와 단말 노드로만 구성된 순차 세트로 구분된다.

행 이주로 인한 검색 효율 저하

  • VARCHAR 형식을 INDEX 로 잡을 때 값이 변경될 경우 다음 블록을 또 읽어서 검색해 검색 속도가 떨어지는 현상

트랜잭션

  • DB 에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로 작업의 단위이다.
  • DBMS 에서 회복 및 병행 수행시 처리되는 작업의 논리적 단위

트랜잭션의 특성 (ACID)

원자성

  • Atomicity
  • 트랜잭션의 연산은 DB 에 모두 반영되든지 아니면 전혀 반영되지 않아야한다.

일관성

  • Consistency
  • 트랜잭션 수행이 성공적으로 완료되면 언제나 일관성 있는 DB 상태로 변환한다.

독립성

  • Isolation
  • 한 트랜잭션이 데이터를 갱신하는 동안 이 트랜잭션이 완료되지 전에는 갱신중인 데이터를 다른 트랜잭션들이 접근하지 못하도록 해야한다.

영속성

  • Durability
  • 트랜잭션의 실행이 성공적으로 실행 완료된 후에는 시스템에 오류가 발생하더라도 트랜잭션에 의해 변경된 내용은 계속 보존되어야 한다.

트랜잭션의 상태

  • 활동(Active): 트랜잭션이 실행중인 상태
  • 실패(Failed): 트랜잭션 실행중에 오류가 발생하여 중단된 상태
  • 철회(Aborted): 트랜잭션이 비정상적으로 종료되어 ROLLBACK 연산을 수행한 상태
  • 부분 완료(Partially Committed): 트랜잭션의 마지막 연산까지 수행하였지만 COMMIT 연산을 실행하기 전의 상태
  • 완료(Committed): 트랜잭션이 성공적으로 완료되어 COMMIT 연산을 수행한 후의 상태

회복

  • Recovery
  • 트랜잭션을 실행하는 도중에 장애가 발생하여 DB 가 손상되었을 경우 손상되기 이전의 정상 상태로 복구하는 작업

장애 유형

  • 실행 장애(Action Failure)
  • 트랜잭션 장애(Transaction Failure)
  • 시스템 장애(System Failure)
  • 미디어 장애(Media Failure)

회복 관리기

  • 로그: 트랜잭션 수행 중 작성된 DB 의 변경 내용에 대한 정보로 Redo 와 Undo 를 수행할 때 사용
  • 메모리 덤프: 메모리에 있는 DB 전체 또는 일부 내용을 주기적으로 별도의 디스크나 다른 파일로 복사해 두는 작업

Redo

  • DB 가 비정상적으로 종료되었을 때 디스크에 저장된 로그를 분석하여 트랜잭션의 시작과 완료에 대한 기록이 있는 트랜잭션의 작업을 재작업

Undo

  • DB 가 비정상적으로 종료되었을 때 디스크에 저장된 로그를 분석하여 트랜잭션의 시작을 나타내는 START 는 있지만 완료를 나타내는 COMMIT 이 없는 트랜잭션이 작업한 내용을 모두 취소시킨다.

회복 기법

연기 갱신 기법

  • Deferred Update
  • 트랜잭션이 성공적으로 종료될 때까지 DB 에 대한 실질적인 갱신을 연기하는 기법

즉각 갱신 기법

  • Immediate Update
  • 트랜잭션이 데이터를 변경하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 DB 에 반영하는 기법

그림자 페이지 기법

  • Shadow Paging
  • 갱신 이전의 DB 를 일정 크기의 페이지 단위로 구성하여 각 페이지마다 복사본인 그림자 페이지로 별도 보관해 두고, 실제 페이지를 대상으로 트랜잭션에 대한 변경 작업을 수행하는 기법

검사점 기법

  • Check Point
  • 시스템 장애가 발생하였을 경우, Redo 와 Undo 를 수행하기 위해 로그 전체를 조사해야하는 경우를 피하기 위한 기법
  • 검사점을 로그에 보관해 둔다.

미디어 회복 기법

  • Media Recovery
  • DB 의 내용을 주기적으로 안전한 저장장치에 덤프해 놓는 기법

병행 제어

  • Concurrency Control
  • 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 DB 의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술
  • 여러 개의 트랜잭션들이 동시에 인터리빙하게 실행되는 것

인터리빙

  • 트랜잭션들이 번갈아가며 조금씩 자신이 처리해야 할 일을 처리하는 것

병행 제어의 필요성

  • 갱신 분실(Lost Update): 2 개 이상의 트랜잭션이 같은 데이터를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상
  • 모순성(Inconsistency): 복수의 사용자가 동시에 같은 데이터를 갱신할 때 DB 내의 데이터들이 상호 일치하지 않아 모순된 결과가 발생하는 현상
  • 연쇄 복귀(Cascading Rollback): 병행 수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 ROLLBACK 되는 경우 다른 트랜잭션들도 함께 ROLLBACK 되는 현상

Lock

  • 잠금이란 DB 관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것을 의미
  • 교착상태(Dead Lock): 모든 트랜잭션들이 실행을 전혀 진전시키지 못하고 무한정 기다리고 있는 상태
  • 공유 잠금(Shared Lock): 트랜잭션이 데이터에 대해 공유 잠금을 걸면 트랜잭션은 데이터에 대해 읽기만 가능하고 기록은 불가능
  • 배타 잠금(Exclusive Lock): 트랜잭션이 데이터에 대해 배타 잠금을 걸면 트랜잭션은 데이터에 대해 읽기나 기록 모두 불가능

병행 제어 기법의 종류

2 단계 잠금 규약 기법

  • 트랜잭션 스케줄의 직렬성을 보장하는 대표적인 잠금 기법
  • 교착상태를 예방할 수 없다.
  • 확장(Growing) 단계: 트랜잭션이 잠금만 수행할 수 있고 잠금해제는 수행할 수 없는 단계
  • 축소(Shrinking) 단계: 트랜잭션이 잠금해제만 수행할 수 있고 잠금은 수행할 수 없는 단계

타임스탬프 순서 기법

  • 시스템이 각 트랜잭션을 실행할 때 부여하는 값인 타임스탬프로 순서에 따라 트랜잭션 작업을 수행한다.
  • 교착상태가 발생하지 않는다.

보안

  • DB 일부분 또는 전체에 대해 권한이 없는 사용자가 접근을 수행하는 것을 금지하기 위해 사용하는 기술

보안 기술의 목표

  • 정보 보호(Information Security): 정보의 불법적인 노출을 방지
  • 정보 인증(Information Authentication): 고의적으로 정보를 수정하거나 허위 정보를 저장시키려는 것을 방지
  • 사용자 인증(User Authentication): 패스워드나 음성, 지문 등을 대조하여 DB 를 이용하는 사람들의 신원을 확인

보안 기법

  • 뷰 기법
  • DCL 기법: 권한 부여 및 해제
  • 암호화 기법
    • 개인키 암호화 기법: 동일한 키로 데이터를 암복호화한다.
    • 공개키 암호화 기법: 데이터를 암호화할 때 사용하는 공개키는 DB 사용자에게 공개하고 복호화할 때의 비밀키는 관리자가 비밀리에 관리

튜닝

  • DB 튜닝이란 DB 응용 프로그램, DB 자체, 운영체제 등의 조정을 통하여 DBMS 의 성능을 향상시키는 작업

인덱스 튜닝

B-트리 인덱스

  • 일반적으로 사용되는 인덱스 방식
  • 루트 노드에서 하위 노드로 키 값의 크기를 비교해 나가면서 단말 노드에서 찾고자 하는 데이터를 검색

비트맵 인덱스

  • 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1 로 변환하여 인덱스 키로 사용하는 방법
  • 분포도가 좋은 컬럼에 적합하며 데이터가 Bit 로 구성되어 있기 때문에 효율적인 논리 연산이 가능하고 저장공간이 적다.

역방향 인덱스

  • 인덱스 컬럼의 데이터를 역으로 변환하여 인덱스 키로 사용하는 방법
  • B-트리 인덱스에서 발생할 수 있는 불균형 문제를 해결
  • 데이터의 분포도가 좋아져 검색 성능이 좋다.

클러스터드 인덱스

  • Clustered Index
  • 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
  • 실제 데이터가 순서대로 저장되어 있어 인덱스를 검색하지 않아도 원하는 데이터를 빠르게 찾을 수 있다.
  • 데이터 삽입, 삭제시 순서를 유지하기 위해 데이터를 재정렬해야한다.
  • 한 개의 릴레이션에 하나의 인덱스만 생성 가능하다.

논클러스터드 인덱스

  • Non-Clustered Index
  • 인덱스의 키 값만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식
  • 데이터를 검색하기 위해 인덱스를 검색하고 실제 데이터의 위치를 확인해야 하므로 클러스터드 인덱스에 비해 검색속도가 떨어진다.
  • 한 개의 릴레이션에 여러 개의 인덱스를 만들 수 있다.

결합 인덱스

  • 인덱스들이 자주 조합되어 사용하는 경우는 하나의 결합 인덱스를 생성한다.
  • 결합 인덱스의 컬럼 순서는 데이터 분포도가 좋은 컬럼을 선행 컬럼으로 설정

분포도

  • 선택성(Selectivity)
  • 전체 레코드 중 조건에 맞는 레코드의 숫자가 적은 경우 분포도가 좋다고 한다.
  • 분포도가 10~15%인 경우 효율적인 인덱스 검색을 할 수 있다.

객체 지향 DB

  • 오버로딩: 하나의 메소드 이름으로 다른 파라미터를 지정하여 사용하는 기법
  • 오버라이딩: 슈퍼 클래스에 있는 메소드를 서브 클래스에서 상속받아 다른 기능을 수행하는 메소드로 재정의하는 기법

분산 DB

분산 DB 시스템의 구성요소

  • 분산 처리기: 지리적으로 분산되어 있는 컴퓨터 시스템
  • 분산 DB: 지리적으로 분산되어 있는 DB
  • 통신 네트워크: 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 네트워크

분산 DB 의 목표

위치 투명성

  • Location Transparency
  • DB 의 실제 위치를 알 필요 없이 단지 DB 의 논리적인 명칭만으로 접근할 수 있다.

중복 투명성

  • Replication Transparency
  • 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용할 수 있고 시스템이 자동으로 여러 데이터에 대한 작업을 수행한다.

병행 투명성

  • Concurrency Transparency
  • 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않는다.

장애 투명성

  • Failure Transparency
  • 장애에도 불구하고 트랜잭션은 정확하게 수행된다.

멀티미디어 DB

  • 텍스트, 그래픽, 정지 화상, 동영상, 음성 등이 복합적으로 구성된 DB
  • 비정형 데이터이기 때문에 미디어별로 별도의 검색 방법이 필요하다.
  • 데이터의 구조가 복잡하고 관계를 구성하기가 어렵다.

주기억장치 DB

  • DB 전체를 주기억장치에 상주시킨 후 DB 연산을 수행하는 시스템

데이터 웨어하우스

  • Data Warehouse
  • 급증하는 다량의 데이터를 효과적으로 분석하여 정보화하고 이를 여러 계층의 사용자들이 효율적으로 사용할 수 있도록 한 DB

데이터 마트

  • Data Mart
  • 소규모 단일 주제의 데이터 웨어하우스를 말한다.

데이터 마이닝

  • Data Mining
  • 데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법

데이터 마이닝 기법

  • 연관(Association): 연관 관계를 발견하기 위한 방법
  • 연속(Sequence): 트랜잭션의 향후 발생 가능성을 예측하는 방법
  • 분류(Classfication): 다른 그룹과의 차별적인 특성을 도출하기 위한 방법
  • 클러스터링(Clustering): 상호 간에 유사한 특성을 갖는 데이터를 집단화하는 방법
  • 특성화(Characterization): 데이터의 요약 과정을 통해 특성을 발견하는 방법
  • 패턴 분석(Pattern Analysis): DB 내의 명시된 패턴을 찾는 방법
  • 경향 분석(Trend Analysis): 동적으로 변화하는 데이터를 분석하는 방법

OLAP

  • Online Analytical Processing
  • 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식

OLAP 연산

  • Roll-up: 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근하는 기능
  • Drill-down: 단계적으로 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는 기능
  • Drill-through: 데이터 웨어하우스나 OLTP 에 존재하는 상세 데이터에 접근하는 기능
  • Drill-across: 다른 데이터 큐브의 데이터에 접근하는 기능
  • Pivoting: 보고서의 행, 열, 페이지 차원을 바꿔 볼 수 있는 기능
  • Slicing: 다차원 데이터 항목을 다양한 각도에서 조회하고 비교하는 기능
  • Dicing: Slicing 을 더 세분화하는 기능

OLAP 종류

  • ROLAP(Relational-OLAP): 관계형 DB 와 관계형 질의어를 사용하여 다차원 데이터를 저장 및 분석
  • MOLAP(Multi-dimension OLAP): 데이터 검색 속도를 향상시키기 위해 큐브 캐시라고 하는 주기억장치 속에 데이터 큐브를 보관
  • HOLAP(Hybrid OLAP): ROLAP 과 MOLAP 의 특성을 모두 가졌고, 요약을 메모리에 저장하고 기본 데이터나 다른 요약들은 관계형 DB 에 저장

OLTP

  • Online Transaction Processing
  • 온라인 업무 처리 형태의 하나로 네트워크 상의 여러 이용자가 실시간으로 DB 의 데이터를 갱신하거나 검색하는 등의 단위 작업을 처리하는 방식

ODBC

  • 프로그램과 DB 의 종류에 관계없이 자유롭게 DB 에 접근하여 사용할 수 있도록 만든 표준 인터페이스
  • Application: DB 에 접속할 때 ODBC API 를 사용
  • Driver Manager: Application 과 ODBC Driver 간의 통신을 관리하는 라이브러리
  • DSN(Domain Service Name): 서버에 연결할 때 필요한 드라이버와 DB 정보를 저장
  • ODBC Driver: ODBC API 가 지원하는 함수를 구현하는 라이브러리

데이터 통신 정리

· 약 122분
  • Data Communication
  • 컴퓨터의 발달을 배경으로 하여 생겨난 것
  • 컴퓨터와 각종 통신 기기 사이에 디지털 형태로 표현된 2진 정보를 송수신하는 것
  • 데이터 전송 기술과 데이터 처리 기술을 포함

정보 통신

  • Information Communication
  • 컴퓨터와 통신 기술의 결합에 의해 통신 처리 기능, 정보 처리기능, 정보의 변환, 정보 저장 과정이 추가된 형태의 통신
  • 전기 통신(정보 전송)과 컴퓨터(정보 처리)를 포함

통신

  • 정보원 : Source 전송하는 장소
  • 수신원 : Destination 수신하는 장소
  • 전송 매체 : Transmission Media 정보원과 수신원을 연결하는 매개체

특징

  • 데이터 전송계와 데이터 처리계로 구분
  • 오류 제어 방식을 사용해 신뢰도가 높음
  • 분산 처리가 가능
  • 대형 컴퓨터와 대용량 파일을 공동으로 이용 가능
  • 대용량, 광대역 전송이 가능
  • 통신 비밀을 유지하기 위해 보안 시스템 개발이 필요

발달과정

  • SAGE : 1958년 미 공군 반자동 방공 시스템, 최초의 데이터 통신 시스템
  • ARPANET : 1969년 미 국방성에서 만든 최초의 유선 패킷 교환 시스템
  • ALOHA : 1970년 미 하와이 대학에서 실험적으로 설치한 최초의 무선 패킷 교환 시스템, 회선 제어 방식 중 경쟁 방식의 모체

데이터 통신의 구성

  • 데이터 전송계
    • 단말장치
    • 데이터전송회선 : 신호변환장치, 통신회선
    • 통신제어장치
  • 데이터 처리계 : 컴퓨터 (하드웨어, 소프트웨어)

단말장치

  • DTE = Data Terminal Equipment = 터미널 = 단말기 = 스테이션 = 노드
  • 데이터 통신 시스템과 외부 사용자의 접속점에 위치해 최종적으로 데이터를 입출력하는 장치
  • 입출력, 전송제어, 기억 기능을 가진다.

지능형 단말장치

  • Intelligent = 스마트 단말장치
  • CPU와 저장장치가 내장된 단말장치
  • 네트워크 환경에서 분산 처리를 수행하기 위해 사용

비지능형 단말장치

  • Non Intelligent = 더미 단말장치
  • 입출력 장치로만 구성되어 단독으로 작업을 처리할 수 있는 능력이 없는 단말장치
  • 통신 회선으로 연결된 컴퓨터(호스트)에 처리를 의존

신호 변환장치

  • DCE = Data Circuit Equipment = Data Circuit terminal Equipment = 데이터 회선 종단장치
  • 컴퓨터나 단말장치의 데이터를 통신 회선에 적합한 신호로 변경하거나 통신 회선의 신호를 컴퓨터나 단말장치에 적합한 데이터로 변경하는 신호 변환 기능을 수행
  • 전송 회선 양 끝에 위치한다.
장치회선형태신호변환
전화아날로그아날로그 > 아날로그
모뎀아날로그디지털 > 아날로그
코덱디지털아날로그 > 디지털
DSU디지털디지털 > 디지털

통신 회선

  • 단말 장치에 입력된 데이터 또는 컴퓨터에서 처리된 결과가 실질적으로 전송되는 전송선
  • 유선 매체 : 꼬임선, 통축케이블, 광섬유
  • 무선 매체 : 라디오파, 지상 마이크로파, 위성 마이크로파

통신 제어장치

  • CCU = Communication Control Unit
  • 데이터 전송 회선과 주 컴퓨터를 연결하는 장치
  • 데이터를 일정 크기로 묶는 직, 병렬 변환 작업을 수행

통신 제어 프로그램

  • CCP = Communication Control Program
  • 데이터 전송 회선과 통신 제어장치를 이용하여 컴퓨터와 단말장치 간의 데이터 송수신을 하기 위해 사용되는 프로그램
  • 데이터 송수신, 통신 하드웨어 제어, 사용자 인터페이스 제어 기능
  • CPU의 기능 분담
  • 하드웨어와의 인터페이스 기능
  • 데이터 통신 회선과 신호 변환기 등의 회선 제어
  • 접속의 확인과 종료를 제어하는 전송제어
  • 오류 제어
  • 데이터 처리와 교환
  • 코드 변환
  • 데이터 입출력 제어
  • 단말 제어
  • 데이터 버퍼링
  • 파일 관리와 회복

통신 회선

꼬임선

  • Twisted Pair Wire
  • 전기적 간섭 현상을 줄이기 위해 균일하게 서로 감겨져 있는 형태의 케이블
  • 저렴하고 설치가 간편
  • 거리, 대역폭, 데이터 전송률에 제약적
  • 다른 전기적 신호의 간섭이나 잡음에 영향을 받기가 쉽다.
  • 최근 100Mbps 이상 전송이 가능한 꼬임선이 개발되어 짧은 거리 고속 전송이 가능하다.
  • 비차폐 트위스트 페어 : UTP 전화 가입자 선으로 이미 건물 내에 설치되어 있어 LAN선으로 활용됨
  • 차폐 트위스트 페어 : STP

동축 케이블

  • Coaxial Cable
  • 중심 도체를 플라스틱 절연체를 이용하여 감싸고 이를 다시 외부 도체를 이용해 감싸는 형태로 구성
  • 주파수 범위가 넓어 데이터 전송률이 높음
  • 꼬임선보다 외부 간섭과 누화의 영향이 적다.
  • 신호 감쇠현상을 막기 위해 일정 간격마다 중계기를 설치해야한다.
  • 아날로그와 디지털 신호 전송에 모두 사용
  • 고주파 특성이 양호해 광대역 전송에 적합
  • 케이블 TV, 근거리 통신망, 장거리 전화 등

광섬유

  • Optical Fiber Cable = 광 케이블
  • 유리르 원료 제작된 가느다란 광섬유를 여러 가닥 묶어 케이블의 형태로 만든 것
  • 코어, 클래드, 재킷 세부분으로 구성
  • 가장 빠른 속도와 넓은 주파수 대역폭
  • 데이터 전송률 높음
  • 대용량, 장거리 전송 가능
  • 가늘고 가벼워 취급이 쉬움
  • 도청하기 어려워 보안성이 뛰어남
  • 유리는 절연성이 좋아 전자 유도의 영향을 받지 않아 안정된 통신 및 누화 방지가 가능
  • 감쇠율이 적어 리피터의 설치 간격이 넓어 리피터 소요가 적음
  • 설치 비용이 비싸지만 대용량 전송이 가능해 단위 비용이 저렴
  • 광 케이블간 연결이 어려워 고도의 기술이 필요

라디오파

  • 통신 장비의 이동이 빈번하고 통신 회선을 이용하기 어려운 지역간 통신에 사용
  • 무선 주파수 사용
  • 장거리 통신, TV나 휴대폰 음성 전송에 사용
  • 감쇠율이 적어 동축케이블보다 중계기가 적게 듦

위성 마이크로파

  • 지상에서 마이크로 주파수를 보내면 통신 위성을 통해 변환, 증폭한 후 다른 주파수로 지상에 송신하는 방식
  • 위성통신에 사용된다.
  • 3003000MHz인 UHF(Ultra High Frequency)나 330GHz인 SHF(Super)를 사용한다.
  • 통신 위성, 지구국, 채널로 구성
  • 대역폭이 넓어 고속, 대용량 통신이 가능하고 통신 비용이 저렴
  • 오류율이 적어 고품질의 정보 전송이 가능
  • 한 대의 통신위성은 지구표면의 1/3이상을 커버 가능
  • 전송 비용은 거리와 무관하게 일정
  • 데이터 전송시 반드시 통신 위성을 거쳐야하므로 전송 지연시간이 길다.
  • 수신용 안테나만 있으면 누구나 통신 내용 수신 가능하므로 보안성이 취약
  • 사용 주파수가 높을 수록 기상 현상에 의한 신호 감쇠가 크다.
  • 지상에 있는 무선 통신 시스템과의 상호 장애를 피하기 위해 지구국은 도시 외곽에 위치해야한다.

다중 접속 방식

  • 통신 위성을 공동으로 사용하기 위한 다중 접속 방식
  • FDMA : Frequency Division Multiple Access, 주파수 대역을 분할
  • TDMA : Time, 사용 시간을 분할
  • CDMA : Code, 주파수나 시간을 모두 공유하면서 각 데이터에 고유 코드를 부여

통신 제어장치

  • 데이터 전송 회선과 주 컴퓨터 사이에 위치
  • 데이터 전송에 관한 전반적인 제어기능 수행

전송제어

  • 다중 접속 제어
  • 교환 접속 제어 : 데이터 송수신을 위한 회선의 설정과 절단
  • 통신 방식 제어 : 단방향, 반이중, 전이중 선택
  • 우회 중계 회선 설정 : 장애시 경로설정

동기 및 오류제어

  • 동기 제어 : 컴퓨터 처리 속도와 통신 회선상의 전송 속도 차이 조정
  • 오류 제어 : 회선과 단말장치에서 발생하는 오류 제어
  • 흐름 제어 : 수신 가능한 데이터 양을 송신 측에 알려 원활한 정보 전송이 가능하게 조정
  • 응답 제어
  • 정보 전송 단위의 정합 : 전송 정보를 패킷 등의 길이로 분할 또는 결합
  • 데이터 신호의 직병렬 변환
  • 투과성 : 전송할 실데이터에 대한 비트열에 확장 비트를 부가 또는 소거
  • 정보 표시 형식의 변환 : 문자 코드, 데이터 형식 등의 변환
  • 우선권 제어
  • 제어 정보 식별
  • 기밀 보호 : 암호화 등 제어
  • 관리 기능 : 통신 요금, 통계정보 수집

종류

  • 통신 제어 장치 : CCU 전송 문자의 조립과 분해 기능을 수행
  • 통신 제어 처리 장치 : CCP 문자와 메세지의 조립과 분해 기능 수행
  • 전처리기
    • FEP = Front End Processor
    • 호스트 컴퓨터와 단말 사이에 고속 통신 회선으로 설치
    • 통신 회선 및 단말기 제어
    • 메세지의 조립과 분해
    • 전송 메세지 검사
    • 컴퓨터의 부담이 적어짐

분류

단위가 커질수록 통신 제어 장치의 기능과 구조가 복잡해지고 가격이 높아지지만 컴퓨터의 부담이 줄어든다.

  • 비트 버퍼 방식
  • 문자 버퍼 방식
  • 블록 버퍼 방식
  • 메세지 버퍼 방식

데이터

  • 아날로그 데이터 : 셀 수 없는 연속적인 값
  • 디지털 데이터 : 셀 수 있는 이산적인 값

신호

  • 아날로그 신호 : 정현파에 주파수, 진폭, 위상 특성을 포함하여 표현되는 전기적 신호가 연속적으로 변하는 파형
  • 디지털 신호 : 2진수 0과 1에 대한 전압 펄스의 연속적인 구성

주파수

  • 단위 시간(1초) 내에 신호 파형이 반복되는 횟수를 의미하는 것
  • Hz
  • 고주파 : 파형의 가록 폭이 좁고 고속 전송에 사용하고 전송거리가 짧다.
  • 저주파 : 파형의 가로 폭이 넓고 저속 전송에 사용하고 전송거리가 길다.
주파수대역
가청 주파수20 ~ 20000Hz
음성300 ~ 3400Hz
HF3 ~ 30MHz
VHF30 ~ 300MHz
UHF300 ~ 3000MHz
SHF3000 ~ 30,000MHz

대역폭

  • Bandwidth
  • 주파수의 변화 범위
  • 상한 주파수와 하한 주파수의 차이

전송 방식

아날로그 전송

  • 전송 매체를 통해 전달되는 신호가 아날로그 형태
  • 신호 감쇠 현상이 심하다.
  • 증폭기에 의해 신호를 다시 증폭하여 전송해야한다.
  • 신호에 포함된 잡음까지 증폭되기 때문에 오류율이 높다.

디지털 전송

  • 전송 매체를 통해 전달되는 신호가 디지털 형태
  • 신호 감쇠 현상은 나타나지만 중계기에 의해 원래 신호 내용을 복원한 후 전송하는 방식이다.
  • 잡음에 의한 오류율이 낮다.
  • 대역폭을 효율적으로 이용해 더 많은 용량을 전송할 수 있다.
  • 데이터 암호화를 쉽게 구현할 수 있다.

직렬 전송

  • 각 비트들이 하나의 전송 매체를 통하여 한 비트씩 순서대로 전송되는 형태
  • 전송 속도가 느리지만 구성 비용이 적다.
  • 원거리 전송에 적합
  • 대부분의 데이터 통신에 사용

병렬 전송

  • 각 비트들이 여러 개의 전송 매체를 통하여 동시에 전송되는 형태
  • 전송 속도는 빠르지만 구성 비용이 많다.
  • 근거리 전송에 적합
  • 주로 컴퓨터와 주변장치 사이의 데이터 전송에 사용

통신 방식

단방향 통신

  • Simplex
  • 한 방향으로만 전송이 가능한 방식
  • 라디오, TV

반이중 통신

  • Half Duplex
  • 양방향 전송이 가능하지만 동시에 양방향으로 전송은 할 수 없는 방식
  • 2선식 선로를 사용하여 송신과 수신을 번갈아 전송
  • 무전기, 모뎀을 이용한 데이터 통신

전이중 통신

  • Full Duplex
  • 동시에 양방향 전송이 가능한 방식
  • 4선식 선로를 사용, 주파수 분할을 이용할 시 2선식도 가능
  • 전송량이 많고 전송 매체의 용량이 클 때 사용
  • 전화, 전용선을 이용한 데이터 통신

비동기식 전송

  • 한 문자를 나타내는 부호 앞뒤에 Start Bit와 Stop Bit를 붙여 Byte와 Byte를 구분하여 전송하는 방식
  • 시작비트, 전송 문자(정보 비트), 정지 비트로 구성된 한 문자를 단위로 전송
  • 오류 검출을 위한 패리티 비트를 추가하기도 한다.
  • 문자와 문자 사이의 Idle Time이 불규칙하다.
  • 한꺼번에 많은 데이터를 보내면 프레이밍 에러의 가능성이 높아진다.
  • 2000bps 이하의 저속, 단거리 전송에 사용
  • 동기화가 단순하고 가격이 저렴
  • 문자마다 시작과 정지를 알리기 위한 비트가 추가되므로 전송 효율이 떨어짐
  • 정지 비트는 휴지 상태와 같으므로 송신기는 다음 문자를 보낼 준비가 될 때까지 정지 비트를 계속 전송

동기식 전송

  • 미리 정해진 수만큼의 문자열을 한 블록(프레임)으로 만들어 일시에 전송하는 방식
  • 송수신 양쪽의 동기를 유지하기 위해 타이밍 신호(클럭)을 계속적으로 공급하거나 동기 문자를 전송
  • 동기화된 방식으로 비트가 송수신되기 때문에 시작비트와 종료비트가 필요가 없다.
  • 블록과 블록 사이에 Idle Time이 없다.
  • 프레임 단위로 전송하므로 전송 속도가 빠르다.
  • 제어 정보의 앞부분은 프리앰블, 뒷부분은 포스트앰블
  • 전송 효율이 좋다.
  • 원거리 전송에 사용
  • 단말기는 반드시 버퍼 기억 장치를 내장해야 한다.
  • 비트 동기 방식과 블록 동기 방식으로 나뉜다.
  • 블록 동기방식
    • 문자 위주 동기 방식 : SYN 등의 동기 문자로 동기를 맞추는 방식, BSC에서 사용
    • 비트 위주 동기 방식 : 데이터 블록 처음과 끝에 8bit 플래그 비트(01111110)를 표시해 동기를 맞추는 방식, HDLC와 SDLC에서 사용

아날로그 데이터 전송 방식

아날로그 데이터에서 아날로그 신호

  • 아날로그 데이터를 아날로그 회선을 통해 전송하기 위해 아날로그 형태로 변조하는 것
  • 아날로그 데이터를 먼 거리까지 효율적으로 전송하거나 주파수 분할 다중화를 위해 변조한다.
  • 라디오, TV, 전화에서 주로 사용

변조 방법

  • 진폭 변조
  • 주파수 변조
  • 위상 변조

아날로그 데이터에서 디지털 신호

  • 아날로그 데이터를 디지털 회선을 통해 전송하기 위해 디지털 형태로 변환하는 것

코덱

  • CODEC = COder/DECoder
  • 아날로그 데이터를 디지털 통신 회선에 적합한 디지털 신호로 변환하거나 반대 과정을 수행
  • 펄스 코드 변조(PCM) 방식을 이용해 데이터를 변환한다.
  • 이동 통신이나 멀티미디어 분야에 사용

디지털 데이터 전송 방식

디지털 데이터에서 아날로그 신호

  • 디지털 데이터를 아날로그 회선을 통해 전송하기 위해 아날로그 형태로 변환하는 것
  • 모뎀을 이용한다.
  • 변조 방식은 ASK, FSK, PSSK, QAM이 있다.

모뎀

  • MODEM = MOdulation DEModulation
  • 디지털 데이터를 아날로그 회선에 적합한 아날로그 신호로 변환하는 변조 과정과 그 반대의 복조 과정을 수행한다.
  • 디지털 데이터를 공중 전화 교환망과 같은 아날로그 통신망을 이용하여 전송할 때 사용
  • Null 모뎀 : 모뎀을 사용하지 않고 두 대의 컴퓨터를 직접 접속해서 정보를 교환하는 방식

기능

  • 변복조 기능
  • 자동 응답 기능
  • 자동 호출 기능
  • 자동 속도 조절 기능
  • 모뎀 시험 기능 : Loop Test

디지털 데이터에서 디지털 신호

  • 디지털 데이터를 디지털 회선을 통해 전송하기 위해 디지털 형태로 변환하는 것
  • 2진 데이터의 각 비트를 디지털 신호 요소로 변환하며 DSU를 이용한다.

DSU

  • Digital Service Unit
  • 컴퓨터나 단말장치로부터 전송되는 디지털 데이터를 디지털 회선에 적합한 디지털 신호로 변환하는 과정과 그 반대를 수행한다.
  • 신호의 변조 과정 없이 단순히 유니폴라 신호를 바이폴라 신호로 변환하 주는 기능만 제공한다.
  • 모뎀에 비해 구조가 단순하다.
  • 디지털 데이터를 공중 데이터 교환망과 같은 디지털 통신망을 이용하여 전송할 때 사용
  • 송수신 기능과 타이밍 회복 기능을 DSU 자체에서 수행한다.
  • 속도가 빠르고 오류율이 낮다.

디지털 변조

  • Keying
  • 디지털 데이터를 아날로그 신호로 변환하는 것을 의미
  • 모뎀을 사용
  • 진폭 편이변조, 주파수 편이변조, 위상 편이변조, 직교 진폭변조

진폭 편이 변조

  • ASK = Amplitude Shift Keying
  • 2진수 0과 1을 서로 다른 진폭의 신호로 변조하는 방식
  • 이 방식의 모뎀은 구조가 단순하고 가격이 저렴하다.
  • 신호 변동과 잡음에 약해 데이터 전송용으로 거의 쓰이지 않는다.

주파수 편이 변조

  • FSK = Frequency Shift Keying
  • 2진수 0과 1을 서로 다른 주파수로 변조하는 방식
  • 1200bps 이하의 저속도 비동기식 모뎀에서 사용
  • 모뎀 구조가 단순하고 신호 변동과 잡음에 강하다.
  • 대역폭을 넓게 차지한다.

위상 편이 변조

  • PSK = Phase Shift Keying
  • 2진수 0과 1을 서로 다른 위상을 갖는 신호로 변조하는 방식
  • 일정한 진폭 또는 주파수를 갖는 정현파의 위상을 180/ 90/ 45도 단위로 2등분/ 4등분/ 8등분 했을 때의 각 위치에 신호를 할당하여 전송하는 방식
  • 파형의 시작 위치를 다르게 하여 신호를 전송
  • 한 위상에 1bit(2위상), 2bit(4위상), 3bit(8위상)를 대응시켜 전송하므로 속도를 증가시킬 수 있다.
  • 중고속의 동기식 모뎀에 많이 사용
  • 잡음에 크게 영향을 받지 않는다.
  • 2위상 편이 변조
    • DPSK, BPSK
    • 위상을 2등분하는 방식
    • 2등분된 각각의 위상에 1과 0을 할당하여 전송
  • 4위상 편이 변조
    • QDPSK QPSK
    • 위상을 4등분하는 방식
    • 4등분된 각각의 위상에 2비트(00, 01, 10, 11)씩 할당하여 전송
  • 8위상 편이 변조 : ODPSK

직교 진폭 변조

  • QAM = Quadrature Amplitude Modulation = 진폭 위상 변조 = 직교 위상 변조
  • 제한된 전송 대역 내에 고속 전송이 가능 (9600bps)
  • ITU-T에서 9600bps 모뎀의 표준 방식으로 권고
  • 신호의 진폭과 위상을 표시하는 신호의 구분점이 통신 회선의 잡음과 위상 변화에 대해 우수하다.
  • QAM 방식의 전송 비트 수 예시 : 4위상은 2² = 2bit, 2진폭은 2¹ = 1bit 이므로 3bit식 전송

펄스 코드 변조

  • 펄스 변조
    • 펄스파의 진폭, 폭 위상 등을 변화시키는 변조 방식
    • 연속 레벨 변조 : 펄스 진폭 변조, 펄스 폭 변조, 펄스 위상 변조
    • 불연속 레벨 변조 : 펄스 수 변조, 펄스 코드 변조, 델타 변조
  • PCM = Pulse Code Modulation
  • 화상, 음성, 동영상, 가상 현실 등과 같이 연속적인 시간과 진폭을 가진 아날로그 데이터를 디지털 신호로 변환하는 것
  • 코덱을 사용
  • 송신 측에서 아날로그 데이터를 표본화하여 PAM 신호로 만든 후 양자화, 부호화 단계를 거쳐 디지털 형태로 전송하는 방식

순서

표본화 => 양자화 => 부호화 => 복호화 => 여파화

표본화

  • Sampling
  • 연속적인 신호 파형을 일정 시간 간격으로 검출하는 단계
  • 샤논의 표본화 이론을 바탕 : 어떤 신호가 의미를 지니는 최고 주파수보다 2배 이상의 주파수로 균일한 시간 간격 동안 채집되면 이 데이터는 원래 신호가 가진 모든 정보를 포함
  • 표본화에 의해 검출된 신호를 PAM 신호라 하며 아날로그 형태이다.
  • PAM 신호는 양자화를 거쳐야 디지털 형태를 갖춘다.
  • 표본화 간격 = 1 / 표본화 횟수 = 1 / ( 2 * 주파수 대역폭 )

양자화

  • Quantizing
  • 표본화된 PAM 신호를 유한 개의 부호에 대한 대표값으로 조정하는 과정
  • 실수 형태의 PAM 신호를 반올림하여 정수형으로 만드는 것
  • PAM 신호 값이 양자화 레벨의 1/2 보다 높은 경우는 위의 레벨값으로 낮은 경우는 아래의 레벨값으로 조정
  • 양자화 잡음 : 표본 측정값과 양자화 파형과의 오차를 말하는 것, PCM 단국 장치에서 발생
  • 양자화 잡음은 양자화 레벨을 세밀하게 함으로 줄일 수 있으나 데이터 양이 많아지고 전송 효율이 낮아진다.
  • 양자화 레벨 : PAM 신호를 부호화할 때 2진수로 표현할 수 있는 레벨
  • 표본당 전송 비트수가 3Bit이면 8개, 5Bit이면 32개의 양자화 레벨이 필요
  • 원래 신호 => 표본화 => PAM 신호 => 양자화 => PCM 신호 => 부호화 => PCM 데이터

부호화

  • Encoding
  • 양자화된 PCM 펄스의 진폭 크기를 2진수로 표시하는 과정

복호화

  • Decoding
  • 수신된 디지털 신호인 PCM을 PAM 신호로 되돌리는 과정

여파화

  • Filtering
  • PAM 신호를 원래 입력 신호인 아날로그 데이터를 복원하는 과정

베이스밴드 전송

  • Base Band = 기저대역 전송
  • 컴퓨터나 단말장치 등에서 처리된 디지털 데이터를 다른 주파수 대역으로 변조하지 않고 직류 펄스 형태 그대로 전송하는 것
  • 신호만 전송되기 때문에 전송 신호 품질이 우수
  • 직류를 사용하므로 감쇠 등에 문제가 생겨 장거리 전송에는 비적합
  • 컴퓨터와 주변장치 간의 통신, LAN 등 가까운 거리에 사용

전송 방식

단류 NRZ

  • Non Return to Zero
  • 입력 데이터가 1이면 양의 전압을 주고 0이면 전압을 주지 않는다.
  • 송수신 회로의 구성이 간단하다.
  • 단거리 구간에 이용한다.

복류 NRZ

  • 0은 음, 1은 양의 전압으로 표현
  • 저속도 전송의 표준 방식으로 사용

NRZ-L

  • Non Return to Zero Level
  • 0은 양, 1은 음의 전압으로 표현
  • 가장 대표적인 디지털 파형

NRZ-M

  • Non Return to Zero Mark = 차등 부호 = Differential Encoding
  • 비트 간격 시작점에는 항상 신호 변화가 발생
  • 0은 신호 변화 없이 전 상태를 유지하고 1일 때는 신호 변화가 발생

NRZ-S

  • Non Return to Zero Space
  • NRZ-M과 동일한 신호 변화를 적용하되 입력신호의 보수를 취한 형태로 적용
  • 1일 때는 변화없음 0일 때는 변화

단류 RZ

  • Return to Zero
  • 입력 데이터가 1이면 하나의 데이터 폭을 두 개로 나눠 1/2시간 동안은 양의 전압으로, 나머지 1/2시간은 0으로 되돌아온다.
  • 0이면 전압을 주지 않는다.

복류 RZ

  • 하나의 데이터 폭을 두 개로 나눠 1/2시간 동안에 0은 음, 1은 양의 전압으로 표현하고 나머지 1/2시간은 0으로 되돌아온다.

바이폴라

  • Bipolar = AMI = 교호 부호 반전
  • 0은 신호 변화 없이 0V를 유지하고, 1은 +V와 -V 상태를 교대로 표현
  • 고속 디지털망에 사용

맨체스터

  • Manchester
  • 입력 데이터가 1이면 하나의 데이터 폭을 두 개로 나눠 1/2시간 동안 양의 전압으로 나머지 1/2시간 동안은 음의 전압으로 표현
  • 입력 데이터가 0이면 1/2시간 동안에는 음의 전압으로 나머지 1/2시간 동안에는 양의 전압으로 표현

기타

  • RB 방식
  • CMI 방식 = 부호화 마크 반전 방식
  • 차분 방식

다중화

  • Multiplexing
  • 하나의 고속 통신 회선을 다수의 단말기가 공유할 수 있도록 하는 것
  • 다중화기, 집중화기, 공동 이용기

공동이용기

  • 폴링 방식으로 네트워크를 제어시 통신 회선을 공동으로 이용할 수 있도록 하는 장치
  • 모뎀 공동 이용기, 선로 공동 이용기, 포트 공동 이용기
  • 네트워크를 단순화하고 비용을 절감

다중화기

  • MUX = MUltipleXer
  • 하나의 통신 회선에 여러 대의 단말기가 동시에 접속하여 사용할 수 있도록 하는 장치
  • 고속 통신 회선의 주파수나 시간을 일정한 간격으로 나눠 각 단말기에 할당하는 방식으로 운영
  • 여러 단말기가 같은 장소에 위차하는 경우 다중화 기능을 이용해 전송로의 수를 감소시킬 수 있다.
  • 주파수 분할 다중화기와 시분할 다중화기로 구분
  • 통신 회선을 공유함으로써 전송 효율을 높이고 통신회선 비용이 절감
  • 입력 회선 수와 출력 회선 수가 같다.
  • 여러 대의 단말기 속도의 합이 하나의 통신 회선 속도와 같다.

주파수 분할 다중화기

  • FDM = Frequency Division Multiplexer
  • 통신 회선 주파수를 여러 개로 분할하여 여러 대의 단말기가 동시에 사용할 수 있도록 한 것
  • 필요한 대역폭보다 통신 회선의 유효 대역폭이 큰 경우에 사용
  • 다중화기 자체에 변복조 기능이 있어 모뎀을 설치할 필요가 없다.
  • 구조가 간단하고 가격이 저렴하다.
  • 저속(1200bps)의 비동기식 전송, 멀티 포인트 방식에 적합
  • 아날로그 신호 전송에 적합
  • 전화, TV, 유선방송
  • 각 채널들 간 상호 간섭을 방지하기 위해 보호대역(Guard Band)가 필요
  • 보호 대역 사용으로 인한 대역폭 낭비 초래

시분할 다중화기

  • TDM = Time Division Multiplexer
  • 통신 회선의 대역폭을 일정한 시간 폭으로 나눠 여러 대의 단말장치가 동시에 사용할 수 있도록 한 것
  • 디지털 회선을 이용해 디지털 전송을 한다.
  • 디지털 회선에서 주로 사용하며 대부분 데이터 통신에 사용
  • point to point 방식에 적합

동기식 시분할 다중화기

  • STDM = Synchronous TDM
  • 일반적인 다중화기를 말한다.
  • 모든 단말에 균등한 시간폭을 제공
  • 전송되는 데이터의 시간폭을 정확히 맞추기 위해 동기 비트가 필요
  • 통신 회선의 데이터 전송률이 전송 디지털 신호의 데이터 전송률을 능가할 때 사용
  • 다중화기 내부 속도와 단말기 속도차이를 보완해주는 버퍼가 필요
  • 전송할 데이터가 없어도 시간폭이 제공되므로 효율성이 떨어짐
  • 송신 측에서는 입력된 데이터를 채널 별로 분리하여 각각의 채널 버퍼에 저장하고 이를 순차적으로 전송

비동기식 시분할 다중화기

  • ATDM = Asynchronous TDM = 지능 다중화기, 확률적 다중화기, 통계적 시분할 다중화기
  • 마이크로프로세서를 이용해 접속된 단말기 중 전송할 데이터가 있는 단말기에만 시간폭을 제공
  • 낭비되는 시간폭을 줄일 수 있어 전송 효율이 높음
  • 다중화기 내부 속도와 단말기의 속도 차이를 보완하기 위한 버퍼가 필요 (데이터의 임시 저장)
  • 데이터 전송량이 많아질 경우 전송 지연이 생김
  • 접속하는데 소요 시간이 길다.
  • 데이터와 함께 주소 정보를 헤더에 붙여 전송
  • 주소 제어, 흐름 제어, 오류 제어 등의 기능이 있어 복잡한 제어 회로와 임시 기억장치가 필요하며 가격이 비싸다.

역다중화기

  • Inverse Multiplexer
  • 광대역 회선 대신 두 개의 음성 대역 회선을 이용하여 데이터를 전송할 수 있도록 하는 장치
  • 광대역 통신 회선을 사용하지 않고도 9600bps 이상의 광대역 속도를 얻을 수 있어 통신비용이 절감
  • 하나의 통신 회선이 고장나도 나머지 하나의 회선을 통해 1/2 속도로 전송을 유지할 수 있다.
  • 여러 가지 변화에 대응해 다양한 전송 속도를 얻을 수 있다.
  • 음성 대역 회선의 특성상 두 회선의 상대적 전송 지연이 발생할 수 있어 두 회선의 속도 차이를 조절하기 위해 순환 기억장치가 사용된다.
  • 위 문제를 비트 스트림 혼란 방지라고 한다.
  • 성격이 다른 두 개의 채널을 사용할 수 있다.
  • 회선 변경이 쉽다.

집중화기

  • Concentrator
  • 하나 또는 소수의 통신 회선에 여러 대의 단말기를 접속하여 사용할 수 있도록 하는 장치
  • 실제 전송할 데이터가 있는 단말기에만 통신 회선을 할당하여 동적으로 통신 회선을 이용할 수 있도록 한다.
  • 한 개의 단말기가 통신 회선을 점유하면 다른 단말기는 통신 회선을 사용할 수 없다.
  • 다른 단말기의 자료를 임시로 보관할 버퍼가 필요
  • m개의 입력 회선을 n개의 출력회선으로 집중화하는 장치
  • 입력 회선의 수가 출력 회선의 수보다 같거나 많다.
  • 회선의 이용률이 낮고 불규칙적인 전송에 적합
  • 전송할 데이터의 유무를 판단해야 하므로 제어 조작이 어렵다.
  • 회선 교환, 메세지 교환, 패킷 교환 등의 교환방식에 사용
  • 여러 대의 단말기 속도의 합이 통신 회선의 속도보다 크거나 같다.

통신 속도와 통신 용량

변조 속도

  • 1초 동안 몇 개의 신호 변화가 있었는가를 나타내는 것
  • 단위는 baud를 사용한다.
  • 1개의 신호가 변조되는 시간을 t초라고 하면 baud = 1/t

신호 속도

  • 1초 동안 전송 가능한 비트의 수
  • 단위는 bps
  • bps = baud X 변조시 상태 변화 수
  • baud = bps / 변조시 상태 변화 수

변조 시 상태 변화 수

  • 모노비트 : 1bit
  • 디비트 : 2bit
  • 트리비트 : 3bit
  • 쿼드비트 : 4bit

전송 속도

  • 단위 시간에 전송되는 데이터 양을 나타낸다.
  • 문자, 블록, 비트, 단어 수 등

베어러 속도

  • 데이터 신호에 동기 문자, 상태 신호 등을 합한 속도
  • 단위는 bps

통신 용량

단위 시간 동안 전송 회선이 최대로 전송할 수 있는 통신 정보량

샤논의 정의

  • Shannon
  • 전송 회선의 대역폭과 신호, 잡음을 고려해 통신 용량을 정의한 것

shannon's_theorem

  • C : 통신 용량
  • B : 대역폭
  • S : 신호 전력
  • N : 잡음 전력 주파수 대역폭을 늘리고, 신호를 높이고, 잡음을 줄인다.

전송 제어

  • Transmission Control
  • 데이터의 원활한 흐름을 위해 입출력 제어, 회선 제어, 동기 제어, 오류 제어, 흐름 제어 등을 수행하는 것
  • OSI7 모델의 데이터 링크 계층에서 수행
  • 전송 제어 프로토콜, 데이터 링크 제어 프로토콜

절차

데이터 통신 회선 접속 => 데이터 링크 설정 => 정보 메세지 전송 => 데이터 링크 종결 => 데이터 통신 회선 절단

데이터 통신 회선의 접속

  • 교환 회선에서 통신 회선과 단말기를 물리적으로 접속하는 단계
  • 교환 회선을 이용하는 Point to Point 방식이나 Multi Point 방식으로 연결된 경우에 필요한 단계
  • 전용 회선을 이용한 Point to Point 방식에는 불필요하다.

데이터 링크의 설정

  • 접속된 통신 회선상에서 송수신 측 간의 확실한 데이터 전송을 수행하기 위해 논리적 경로를 구성하는 단계
  • 데이터 링크의 설정 방법에는 폴링/셀렉션 방식, 경쟁 방식이 있다.

정보 메세지 전송

  • 데이터를 수신 측에 전송하고 오류 제어와 순서 제어를 수행하는 단계

데이터 링크 종결

  • 송수신 측 간의 논리적 경로를 해제하는 단계

데이터 통신 회선의 절단

  • 통신 회선과 단말기 간의 물리적 접속을 절단하는 단계

데이터 링크 제어 프로토콜

  • 컴퓨터와 컴퓨터, 컴퓨터와 단말장치 등의 두 장치 상호 간에 신속하고 정확하게 데이터를 주고 받을 수 있도록 전송 제어를 수행하는 프로토콜
  • 데이터 링크 레벨 프로토콜 = 전송 제어 프로토콜
  • 문자위주 방식과 비트 위주 방식으로 구분된다.

BSC

  • Binary Synchronous Control
  • 문자 위주의 프로토콜
  • 각 프레임에 전송 제어 문자를 삽입하여 전송을 제어
  • 문자 코드 상에 정의된 전송 제어 문자를 이용해 링크를 제어하기 때문에 사용하는 문자 코드에 의존적이며 사용할 수 있는 코드가 제한적
  • 컴퓨터가 사용하는 문자 코드 체계가 통일되어야 한다.
  • 반이중 전송만을 지원한다.
  • 주로 동기식 전송 방식을 사용하나 비동기식 전송방식도 사용
  • Point to Point, Multi Point 방식에서 주로 사용
  • 오류 제어 및 흐름 제어를 위해 Stop and Wait ARQ를 사용
  • 전파 지연 시간이 긴 선로에서는 비효율적
  • 오류 검출이 어렵고 전송 효율이 나쁘다.

전송 제어 문자

  • 링크 관리, 프레임의 시작 끝의 구별, 오류 제어 등의 기능을 하는 것
  • SYN : Synchronous idle 문자 동기
  • SOH : Start of Heading 헤드의 시작
  • STX : Start of Text 본문의 시작 및 헤드의 종료
  • ETX : End of Text 본문의 종료
  • ETB : End of Transmission Block 블록의 종료
  • EOT : End Of Transmission 전송 종료 및 데이터 링크 해제
  • ENQ : ENQuiry 상대편에 데이터 링크 설정 및 응답 요구
  • DLE : Data Link Escape 전송 제어 문자 앞에 삽입하여 전송 제어 문자임을 알려줌, 데이터 투명성을 위해 삽입
  • ACK : ACKnowledge 긍정 응답
  • NAK : Negative AcKnowledge 부정 응답

HDLC

  • High level Data Link Control
  • 비트 위주의 프로토콜
  • 각 프레임에 데이터 흐름을 제어하고 오류를 검출할 수 있는 비트 열을 삽입하여 전송
  • Point to Point, Multi Point, Loop 등 다양한 데이터 링크 형태에 동일하게 적용 가능
  • 단방향, 반이중, 전이중 통신을 모두 지원
  • 동기식 전송 방식 사용
  • 오류 제어를 위해 GO-Back-N과 Selective Repeat ARQ를 사용
  • 흐름 제어를 위해 슬라이딩 윈도우 방식 사용
  • 전송 제어상의 제한을 받지 않고 자유로이 비트 정보를 전송할 수 있다.
  • 전송 효율과 신뢰성이 높다.

비트 스터핑

  • Bit Stuffing
  • 프레임에 임의의 비트를 삽입하여 데이터의 자유로운 전송을 보장하는 기능
  • 프레임 내의 플래그 비트와 다른 비트를 구분하여 기본적인 오류를 검출
  • 투명성을 보장한다.
  • 플래그 비트를 제외한 모든 비트는 '1'이 6개 이상 연속되지 않도록 한다.
  • '1'이 연속적으로 5개가 오면 다음 6번째 비트는 '0'을 강제로 추가해 송신한다.
  • '1'이 6개가 연속된 비트는 플래그 비트
  • '1'이 7개 이상 연속되면 오류 프레임으로 검출된다.

프레임 구조

  • 플래그 : 프레임 시작과 끝을 나타내는 고유한 비트 패턴 01111110
  • 주소부
    • Address Field
    • 송수신국을 식별하기 위해 사용
    • 불특정 다수에게 전송하는 방송용은 11111111
    • 시스템에 의해 임의로 수신국이 지정되는 시험용은 00000000
  • 제어부
    • Control Field
    • 프레임의 종류를 식별하기 위해 사용
    • 제어부의 첫 번째, 두 번째 비트를 사용하여 프레임 종류를 구별
    • I 프레임 : Information Frame = 정보 프레임, 제어부가 '0'으로 시작하는 프레임, 사용자에게 데이터를 전달하거나 피기백킹 기법을 통해 데이터에 대한 확인 응답을 보낼 때 사용
    • S 프레임 : Supervisory Frame = 감독 프레임, 제어부가 '10'으로 시작하는 프레임, 오류 제어와 흐름 제어를 위해 사용
    • U 프레임 : Unnumbered Frame = 비번호 프레임, 제어부가 '11'로 시작하는 프레임, 링크의 동작 모드 설정과 관리
  • 정보부
    • Information Field
    • 실제 정보 메세지가 들어 있는 부분
  • FCS
    • Frame Check Sequence Field = 프레임 검사 순서 필드
    • 프레임 내용에 대한 오류 검출을 위해 사용하는 부분
    • 일반적으로 CRC 코드가 사용된다.

피기백킹

  • Piggybacking
  • 데이터 프레임 확인 응답을 포함시켜 전송하는 것

HDLC의 Station

  • 주국 : 종속된 단말기를 제어하거나 정보를 제공해주는 컴퓨터, 주 스테이션 = 1차국 = 서버
  • 종국 : 주국으로부터 제어를 받고 정보를 제공받는 컴퓨터, 부 스테이션 = 2차국 = 클라이언트
  • 혼합국 : 상대국 컴퓨터의 제어를 받기도 하고 제어를 하기도 하는 동등한 위상을 가진 컴퓨터, 복합국

데이터 전송 모드

  • 표준 응답 모드
    • NRM = Normal Response Mode
    • 반이중 통신을 하는 Point to Point 또는 Multi Point 불균형 링크 구성에 사용
    • 종국은 주국의 허가가 있을 때만 송신
  • 비동기 응답 모드
    • ARM = Asynchronous Response Mode
    • 전이중 통신을 하는 Point to Point 불균형 링크 구성에 사용
    • 종국은 주국의 허가 없이도 송신이 가능하지만 링크 설정이나 오류 복구 등의 제어 기능은 주국만 가능
  • 비동기 균형(평형) 모드
    • ABM = Asynchronous Balanced Mode
    • Point to Point 균형 링크에서 사용
    • 혼합국끼리 허가 없이 언제나 전송할 수 있도록 설정

불균형 링크

  • 주국과 종국 사이의 통신 균형 링크
  • 모든 국의 동등한 혼합국끼리의 통신

회선 제어 방식

경쟁 방식

  • Contention
  • 회선 접속을 위해서 서로 경쟁하는 방식
  • 송신 요구를 먼저 한 쪽이 송신권을 갖는다.
  • Point to Point 방식에서 주로 사용
  • 송신 요구가 발생한 국이 주국이 되어 상대국에 셀렉팅 순서를 송신하여 상대국의 수신 가능 상태를 확인한 후 정보 메세지를 송신
  • 데이터 링크 설정되면 정보 전송이 종료되기 전까지는 데이터 링크의 종결이 이루어지지 않고 독점적으로 정보 전송을 하게 된다.
  • 송신 측에 전송할 메세지가 있을 경우 사용 가능한 회선이 있을 때까지 기다려야한다.
  • 대표적 시스템으로 ALOHA

폴링/셀렉션 방식

  • Polling/Selection
  • 주 컴퓨터에서 송수신 제어권을 가지고 있는 방식
  • 트래픽이 많은 Multi Point 방식으로 연결된 회선에서 사용

폴링

  • Polling
  • 주 컴퓨터에서 단말기에게 전송할 데이터가 있는지를 물어 전송할 데이터가 있다면 전송을 허가하는 방식
  • 단말기에서 주 컴퓨터로 보낼 데이터가 있는 경우에 사용

셀렉션

  • Selection
  • 주 컴퓨터가 단말기로 전송할 데이터가 있는 경우 그 단말기가 받을 준비가 되어있는가를 묻고 준비가 되어있으면 주 컴퓨터에서 단말기로 데이터를 전송하는 방식

오류 제어 방식

발생 원인

감쇠

  • Attenuation
  • 전송 신호 세력이 전송 매체를 통과하는 과정에서 거리에 따라 약해지는 현상
  • 주파수가 높을수록 감쇠 현상이 심해진다.

지연 왜곡

  • Delay Distortion
  • 유선 매체에서 발생하는 문제
  • 하나의 전송 매체를 통해 여러 신호를 전달했을 때 주파수에 따라 그 속도가 달라짐으로써 생기는 오류
  • 중심 주파수의 전달 속도가 가장 빠르고 양쪽 끝의 주파수일수록 느려진다.

백색 잡음

  • White Noise = 가우스 잡음 = 열 잡음
  • 전송 매체 내부에서 온도에 따라 전자의 운동량이 변화함으로써 생기는 잡음
  • 완벽하게 제거하기 힘들다.

상호 변조 잡음

  • Intermodulation Noise
  • 서로 다른 주파수들이 하나의 전송 매체를 공유할 때 주파수 간의 합이나 차로인해 새로운 주파수가 생성되는 잡음
  • 통신 시스템의 비선형성 때문에 발생

누화 잡음

  • Cross Talk Noise = 혼선
  • 인접한 전송 매체의 전자기적 상호 유도 작용에 의해 생기는 잡음
  • 신호의 경로가 비정상적으로 결합된 경우 나타난다.

충격성 잡음

  • Impulse Noise
  • 번개와 같은 외부적인 충격 또는 통신 시스템의 결함이나 파손 등의 기계적인 충격에 의해 생기는 잡음
  • 순간적으로 일어나는 높은 진폭의 잡음
  • 비연속적이고 불규칙적인 진폭을 가진다.

돌발성 잡음

  • 자연 현상, 통신 장비의 결함 등 예측할 수 없는 외부 요인에 의해 발생하는 잡음

위상 지터 잡음

  • Phase Jitter Noise
  • 전송 네트워크에서 전송 신호의 위상이 연속적으로 일그러지는 현상

위상 히트 잡음

  • Phase Hit Noise
  • 전송 네트워크에서 전송 신호의 위상에 불연속적인 순간 변화가 일어나는 현상

우연적 왜곡

  • 예측 할 수 없이 무작위로 발생하는 왜곡
  • 백색 잡음, 충격 잡음, 누화 잡음, 위상 히트 잡음

시스템적 왜국

  • 전송 매체에서 언제든지 일어날 수 있는 왜곡
  • 손실, 감쇠, 하모닉 왜곡

오류율

  • 비트 오류율 = 오류 비트수 / 전송한 총 비트 수
  • 블록 오류율 = 오류 블록 수 / 전송한 총 블록 수
  • 문자 오류율 = 오류 문자 수 / 전송한 총 문자 수

전송 오류 제어 방식

전진 오류 수정

  • FEC = Forward Error Corrction = 순방향 오류 수정
  • 데이터 전송 과정에서 발생한 오류를 검출하여 검출된 오류를 재전송 요구 없이 스스로 수정하는 방식
  • 송신 측에서는 문자나 프레임에 오류 검출을 위한 부가 정보를 추가시켜 전송하고, 수신 측에서는 부가정보를 이용해 자신이 수신한 데이터에 존재하는 오류를 발견하고 수정
  • 재전송 요구가 없어 역 채널이 필요 없고 연속적인 데이터 흐름이 가능하다.
  • 데이터 비트 외에 오류 검출 및 수정을 위한 비트가 추가로 전송되어야 하기 때문에 전송 효율이 떨어진다.
  • 해밍 코드 방식과 상승 코드 방식

후진 오류 수정

  • BEC = Backward Error Correction
  • 데이터 전송 과정에서 오류가 발생하면 송신 측에 재전송을 요구하는 방식
  • 패리티 검사, CRC, 블록 합 방식으로 오류 검출
  • ARQ에 의해 오류 제어

자동 반복 요청

  • ARQ = Automatic Repeat reQuest
  • 오류 발생시 수신측은 오류 발생을 송신 측에 통보하고 송신 측은 오류 발생 블록을 재전송하는 모든 절차를 의미
  • 정지대기 ARQ, Go-Back ARQ, 선택적 재전송 ARQ, 적응적 ARQ가 있다.

정지대기 ARQ

  • Stop and Wait ARQ
  • 송신 측에서 한 개의 블록을 전송한 후 수신 측으로부터 응답을 기다리는 방식
  • 수신 측의 응답이 ACK면 다음 블록을 전송하고 NAK면 앞서 송신했던 블록을 재전송한다.
  • 블록을 전송할 때마다 수신 측의 응답을 기다려야되므로 전송 효율이 가장 낮다.
  • 오류가 발생한 경우 앞서 송신한 블록만 재전송하면 되므로 구현 방법이 단순하다.

연속 ARQ

  • Continuous ARQ
  • 정지대기 ARQ가 갖는 오버헤드를 줄이기 위해 연속적으로 데이터 블록을 보내는 방식
  • 수신 측에서는 부정응답만을 송신
  • 프레임의 송신 순서와 수신 순서가 동일해야 수신이 가능하다.

Go-BACK-N ARQ

  • 여러 블록을 연속적으로 전송하고 수신 측에서 NAK를 보내면 송신 측이 오류가 밠애한 블록 이후의 모든 블록을 재전송
  • 전송 오류가 발생하지 않으면 쉬지 않고 연속적으로 송신이 가능하다.
  • 오류가 발생한 부분부터 모두 재전송하므로 중복 전송의 단점이 있다.

선택적 재전송

  • Selective Repeat ARQ
  • 여러 블록을 연속적으로 전송하고 수신 측에서 NAK를 보내면 송신 측이 오류가 발생한 블록만을 재전송
  • 수신 측에서 데이터를 처리하기 전에 원래 순서대로 조립해야 하므로 더 복잡한 논리 회로와 큰 용량의 버퍼가 필요하다.

적응적 ARQ

  • Adaptive ARQ
  • 전송 효율을 최대로 하기 위해 데이터 블록의 길이를 채널의 상태에 따라 동적으로 변경하는 방식
  • 제어 회로가 매우 복잡하고 비용이 비싸 현재는 거의 사용되지 않는다.

오류 검출 방식

  • 가장 대표적인 방법은 오류 검출 코드를 이용하는 방법
  • 전송 데이터에 오류 검출 코드를 부가해 그 코드로 수신된 데이터의 오류를 검출한다.
  • 패리티 검사, 순환 중복 검사, 궤환 전송 방식, 자동 연속 방식, 해밍 코드 방식, 상승 코드 방식

수직 패리티 체크

  • 수직 중복 검사 = VRC = Vertical Redundancy Check
  • 수직 방향으로 패리티 비트를 부여하는 방식
  • 보통의 패리티 검사를 일컫는다.
  • 짝수 패리티 : 주로 비동기식 전송에 사용
  • 홀수 패리티 : 주로 동기식 전송에 사용
  • 가장 간단하지만 두 개의 비트에 동시에 오류가 발생하면 검출이 불가능하다.
  • 오류를 검출만하고 수정은 못한다.

수평 패리티 체크

  • 세로 중복 검사 = LRC = Longitudinal Redundancy Check
  • 수평 방향으로 패리티 비트를 부여하는 방식
  • 전송 비트를 일정량의 블록으로 묶어서 블록의 맨 마지막에 패리티 비트를 부여

순환 중복 검사

  • CRC = Cyclic Redundancy Check
  • 다항식 코드를 사용하여 오류를 검출하는 방식
  • HDLC 프레임의 FCS에 사용되는 방식
  • 집단 오류를 검출할 수 잇고, 검출률이 높아 가장 많이 사용된다.

궤환 전송 방식

  • Echo Check
  • 수신 측에서 받은 데이터를 송신 측으로 되돌려 보내어 원본 데이터와 비교하여 오류가 있는 경우 재전송하는 방식

자동 연속 방식

  • 연속 전송 방식
  • 송신 측에서 동일 데이터를 두 번 이상 전송하면 수신 측에서 두 데이터를 비교해 이상 유무를 판별한 후 오류 발생 시 이를 수정하는 방식

해밍 코드 방식

  • Hamming Code = 자기 정정 부호
  • 수신 측에서 오류가 발생한 비트를 검출한 후 직접 수정하는 방식
  • 1bit의 오류만 수정이가능하다.
  • 정보 비트 외에 잉여 비트가 많이 필요하다.
  • 해밍 거리: 송신한 데이터와 수신한 데이터의 각 대응하는 비트가 서로 다른 비트의 수

상승 코드 방식

  • 순차적 디코딩과 한계값 디코딩을 사용하여 오류를 수정한다.
  • 수신 측에서 오류 데이터를 수정할 수 있다는 점은 해밍 코드와 같지만 상승 코드는 여러 비트의 오류도 수정할 수 있다.

전용 회선

  • Leased Line
  • 송수신 상호 간에 통신 회선이 항상 고정되어 있는 방식
  • Point to Point 방식과 Multi Point 방식이 있다.
  • 전송 속도가 빠르고 전송 오류가 적다.
  • 사용 방법이 간편하고 업무 적용이 쉽다.
  • 전송할 데이터의 양이 많고 회선 사용 시간이 많을 때 효율적
  • 고장 발생시 유지보수가 쉽다.

교환 회선

  • Switched Line
  • 교환기에 의해 송수신 상호 간이 연결되는 방식
  • 전용 회선에 비해 전송 속도가 느리다.
  • 보안을 위해 정보 누설과 파괴를 방지하는 조치가 필요하다.
  • 회선을 공유하므로 효용도가 높고 통신 장치와 회선 비용을 줄일 수 있다.
  • 전송할 데이터의 양이 많지 않고 회선 사용시간이 적을 때 효율적

데이터 교환 방식

  • 회선 교환 방식 : 통신 회선을 교환기에 의해 물리적으로 접속
    • 공간 분할 교환 방식
    • 시분할 교환 방식
  • 축적 교환 방식 : 교환기의 임시기억장치를 이용
    • 메시지 교환 방식
    • 패킷 교환 방식
      • 가상 회선 교환 방식
      • 데이터그램 교환 방식

성능 비교 요소

  • 전파 지연 : 신호가 한 노드에서 다음 노드로 도달하는 데 걸리는 시간
  • 전송 시간 : 데이터가 출발지에서 도착지까지 도달하는 데 걸리는 시간
  • 노드 지연 : 한 노드가 데이터를 교환하기 위하여 필요한 시간
  • 데이터 처리율 : 정해진 시간 동안 받아들이고 전송할 수 있는 데이터의 비율

회선 구성 방식

컴퓨터와 여러 대의 단말기를 연결하는 방식

포인트 투 포인트

  • 점 대 점 방식
  • 중앙 컴퓨터와 단말기를 일대일 독립적으로 연결하여 언제든지 데이터 전송이 가능하게 한 방식
  • 전송할 데이터의 양과 회선 사용 시간이 많을 때 효율적
  • 전용 회선 또는 교환 회선에 이용
  • 고장 발생 시 유지보수가 쉽다.
  • 통신망을 성형으로 구성할 때 사용

멀티 드롭 방식

  • Multi Drop = 멀티 포인트 = 다중 점 방식
  • 여러 대의 단말기를 한 개의 통신 회선에 연결하는 방식
  • 통신 회선은 전용 회선을 사용한다.
  • 제어용 컴퓨터가 주국이 되고 다말기가 종국이 된다.
  • 단말기는 주소 판단 기능과 데이터 블록을 일시 저장할 수 있는 버퍼 기억장치가 있어야한다.
  • 데이터의 양과 회선 사용 시간이 적을 때 효율적
  • 회선을 공유하기에 효용도가 높고 가격이 저렴
  • 통신망을 버스형으로 구성할 때 사용
  • 데이터 전송은 폴링과 셀렉션에 의해 수행

회선 다중 방식

  • Line Multiplexing = 다중화 방식
  • 여러 대의 단말기들을 다중화 장치를 이용해 중앙 컴퓨터와 연결하는 방식

회선 교환 방식

  • Circuit Switching
  • 통신을 원하는 두 지점을 교환기를 이용하여 물리적으로 접속시키는 방식
  • 음성 전화망
  • 공간 분할 교환 방식과 시분할 교환 방식으로 나뉜다.
  • 데이터 전송 전에 물리적 통신 회선을 통한 연결이 필요하다.
  • 접속이 되고나면 전용 회선에 의한 통신처럼 데이터가 전달된다.
  • 접속에는 긴 시간이 걸리나 접속되면 실시간 전송이 가능하다.
  • 회선이 접속되어도 수신 측이 준비가 되지 않으면 데이터 전송이 불가능
  • 접속된 두 지점이 회선을 독점하기 때문에 다른 단말기는 전달 지연을 갖는다.
  • 데이터가 전송되지 않아도 접속이 유지되기 때문에 통신 회선이 낭비된다.
  • 일정한 데이터 전송률을 제공하므로 동일한 전송 속도가 유지
  • 오류 제어나 흐름 제어는 사용자에 의해 수행

공간 분할 교환 방식

  • SDS = Space Division Switching
  • 기계식 접점과 전자 교환기의 전자식 접점 등을 이용해 교환을 수행하는 방식
  • 음성 전화용 교환기
  • 기존의 음성 전화망을 그대로 이용할 수 있어 간단한 저속 데이터 전송에 매우 효과적
  • 데이터 통신을 위해서는 융통성이 적고 오류율이 높다.
  • 연결 접속시간이 길고 고속 전송이 어렵다.
  • 속도나 코드의 변환이 어렵다.

1단 공간 분할 교환 방식

  • 장치 대 장치를 Cross Bar Matrix 형태의 공간으로 분할하는 방식
  • 입력이 m 출력이 n개 회선일 때 교차점의 개수는 m * n 개
  • 비효율적
  • 하나의 교차점이 고장나면 두 장치가 연결될 수 없다.

다단 공간 분할 교환 방식

  • 교차점의 수를 줄일 수 있고 Cross Bar의 이용도가 높아진다.
  • 장치 대 장치를 연결하는 경로가 하나 이상이므로 신뢰도가 향상
  • 제어 체계가 복잡
  • 연결할 중간 회선이 없으면 연결되지 않을 수 있다.

시분할 교환 방식

  • TDS = Time Division Switching
  • 전자 부품이 갖는 고속성과 디지털 교환 기술을 이용해 다수의 디지털 신호를 시분할적으로 동작시켜 다중화하는 방식
  • 데이터 전용 회선 교환 방식에 사용
  • TDM 버스 교환방식, 타임 슬롯 교환 방식, 시간 다중화 교환 방식

제어 신호

  • 감시 제어 신호 : 서비스 요청, 응답, 경보 및 휴지 상태 복귀 신호 기능
  • 주소 제어 신호 : 상대방 식별, 경로 배정
  • 호 정보 제어 신호 : 호 상태에 대한 정보를 송신자에게 제공
  • 망 관리 제어 신호 : 통신망의 운영, 유지, 고장 수리

축적 교환 방식

  • 송신 측에서 전송한 데이터를 송신 측 교환기에 저장시켰다가 이를 다시 적절한 통신 경로를 선택하여 수신 측 터미널에 전송하는 방식
  • 메세지 교환 방식과 패킷 교환 방식
  • 하나의 통신 회선을 여러 메세지가 공유 가능
  • 메세지를 저장 시켰다가 전송하므로 기억장치 필요
  • 전송 속도와 코드가 서로 다른 장치 간에도 통신이 가능하다.
  • 초기 설계 비용 및 통신 비용이 저렴
  • 부가적인 내용을 추가해 전송 가능
  • 전송 속도나 코드의 변환 및 전송 오류 정정이 가능

메세지 교환 방식

  • Message Switching
  • 교환기가 일단 송신 측의 메세지를 받아서 저장한 후 전송 순서가 되면 수신 측으로 전송
  • 각 메세지마다 전송 경로를 결정하고 수신 측 주소를 붙여서 전송
  • 전송 메세지는 교환기의 기억장치에 일정 기간동안 저장되어 검색이 가능
  • 전송 지연 시간이 매우 길다.
  • 응답 시간이 느려 대화형 데이터 전송에 부적절
  • 전송량이 폭주해도 저장 기능을 사용해 교환기의 혼란을 방지할 수 있다.
  • 송신 측과 수신 측이 동시에 운영 상태에 있지 않아도 된다.
  • 같은 메세지를 여러 곳에 전송 가능

패킷 교환 방식

  • Packet Switching
  • 패킷은 장애 발생 시의 재전송을 위해 패킷 교환기에 일시 저장되었다가 곧 전송되며 전송이 끝난 후 폐기된다.
  • 패킷 교환망은 OSI7 모델의 네트워크 계층에 해당
  • 패킷형 터미널을 위한 DTE와 DCE 사이의 접속 규정은 X.25
  • 패킷망 상호 간의 접속을 위한 프로토콜은 X.75
  • 하나의 통신 회선을 여러 사용자가 공유할 수 있어 회선 이용률이 높다.
  • 수신 측에서 분할된 패킷을 재조립해야한다.
  • 응답 시간이 빨라 대화형 응용이 가능하다.
  • 통신량의 제어를 통한 망의 안전성을 높일 수 있다.
  • 음성보다 데이터 전송에 적합
  • 장애 발생시 다른 정상적인 경로를 선택해 우회할 수 있다.

가상 회선 방식

  • 단말기 상호간 논리적인 가상 통신 회선을 미리 설정하여 송신지와 수신지 사이의 연결을 확립한 후 에 설정된 경로를 따라 패킷들을 순서적으로 운반하는 방식
  • 정보 전송 전에 제어 패킷에 의해 경로가 설정된다.
  • 데이터 전송의 안정성과 신뢰성이 보장
  • 패킷의 송수신 순서가 같다.
  • 호 설정 => 데이터 전송 => 호 해제
  • 모든 패킷이 전송되면 Clear Request Packet을 전송한다.

데이터그램 방식

  • 연결 경로를 설정하지 않고 인접한 노드들의 트래픽 상황을 감안해 각각의 패킷을 순서에 상관없이 독립적으로 운반하는 방식
  • 패킷마다 전송 경로가 달라 패킷은 목적지의 완전한 주소를 가진다.
  • 적절한 경로로 패킷을 전송하기 때문에 융통성이 좋다.
  • 순서에 상관 없이 여러 경로를 통해 도착한 패킷은 수신 측에서 순서를 재정리
  • 소수의 패킷으로 구성된 짧은 데이터 전송에 적합

패킷 교환망

  • PSDN = Packet Switched Data Network
  • 패킷 다중화 : 물리적으로는 한 개의 통신 회선을 사용하면서 패킷마다 논리 채널 번호를 붙여 동시에 다수 상대 터미널과 통신을 수행하도록 하는 기능
  • 경로 제어 : Routing
  • 논리 채널 : 송수신 단말기 사이에서 논리 채널(가상 회선)을 설정하는 기능
  • 순서 제어
  • 트래픽 제어 : 흐름 제어, 교착 상태 방지
  • 오류 제어
  • 구성 : 비패킷 단말기, 패킷형 단말기, 패킷 교환기, 패킷 다중화 장치 (NPT, PT, PSE, PMX)

경로 제어

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

경로 설정 프로토콜

효율적인 경로 제어를 위해 네트워크 정보를 생성, 교환, 제어하는 프로토콜

IGP

  • Interior Gateway Protocol = 내부 게이트웨이 프로토콜
  • 하나의 자율 시스템 내의 라우팅에 사용되는 프로토콜
  • RIP(Routing Information Protocol)
    • 현재 가장 많이 사용되는 라우팅 프로토콜
    • 소규모 동종 네트워크(자율 시스템, AS) ㅐ넹서 효율적인 방법
    • 최대 홉 수를 15로 제한하기에 대규모 네트워크에서는 RIP를 사용할 수 없다.
    • 라우팅 정보를 30초마다 네트워크 내의 모든 라우터에 알린다.
    • 180초 내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 상태 이상으로 간주
  • OSPF(Open Shortest Path First protocol)
    • 대규모 네트워크에서 많이 사용되는 라우팅 프로토콜
    • 라우팅 정보에 변화가 생길시 변화된 정보만 네트워크의 모든 라우터에게 알린다.

EGP

  • Exterior Gateway Protocol = 외부 게이트웨이 프로토콜
  • 자율 시스템(AS) 간의 라우팅
  • 게이트웨이 간의 라우팅에 사용

BGP

  • Border Gateway Protocol
  • 자율 시스템 간의 라우팅 프로토콜
  • EGP의 단점을 보완하기 위해 만들어짐
  • 초기 BGP 라우터들이 연결될 때 전체 라우팅 테이블을 교환하고 이후에는 변화된 정보만을 교환

경로 설정 방식

고정 경로 제어

  • Static Routing = 착국 부호 방식
  • 네트워크 내의 모든 쌍에 대해 경로를 미리 정해 놓은 방식
  • 통신망 설계자가 최적 경로를 미리 결정
  • 네트워크 상태 변화와 관계없이 경로를 설정하는 비적응 경로 배정에 해당

적응 경로 제어

  • Adaptive Routing
  • 통신망 내에서 변하는 통화량에 따른 교환기 및 통신망 상태 등에 의해 전송 경로를 동적으로 결정하는 방식

범람 경로 제어

  • Flooding
  • 네트워크 정보를 요구하지 않고, 송신처와 수신처 사이에 존재하는 모든 경로로 패킷을 전송하는 방식
  • 각 교환기에 도착하는 패킷을 다른 모든 교환기로 복사하여 전송하는 방식
  • 경로 제어표가 필요 없다.

임의 경로 제어

  • Random Routing
  • 인접하는 교환기 중 하나를 임의로 선택하여 전송하는 방식

트래픽 제어

  • Traffic Control
  • 패킷 흐름 또는 그 양을 조절하는 기능
  • 흐름 제어, 폭주 제어, 교착상태 방지 기법

흐름 제어

  • Flow Control
  • 패킷의 양이나 속도를 규제하는 기능
  • 송신 측과 수신 측 간의 처리 속도 또는 버퍼 크기 차이에 의해 생길 수 있는 수신 측 버퍼의 오버플로를 방지하기 위한 기능

Stop and Wait

  • 수신 측의 확인 신호를 받은 후에 다음 패킷을 전송
  • 한 번의 하나의 패킷만을 전송

슬라이딩 윈도우

  • Sliding Window
  • 수신 통지를 이용하여 송신 데이터의 양을 조절하는 방식
  • 수신 측의 확인 신호를 받지 않더라도 미리 정해진 패킷의 수만큼 연속적으로 전송하는 방식
  • 한 번의 여러 개의 패킷을 전송할 수 있어 효율이 좋다.
  • 송신 측은 수신 측으로부터 ACK 없이도 보낼 수 있는 패킷의 최대치를 미리 약속 받는다.
  • 이 패킷의 최대치가 윈도우 크기이다.
  • 윈도우 크기는 이전 응답이 ACK일 경우 늘어나고 NAK일 경우 감소한다.

폭주 제어

  • Congesting Control = 혼잡 제어
  • 네트워크 내의 패킷 수를 조절하여 네트워크의 오버플로를 방지하는 기능
  • 네트워크 내의 모든 단말의 패킷 수를 제어

교착상태 방지

  • 패킷이 같은 목적지를 갖지 않도록 할당
  • 교착상태 발생 시 교착상태에 있는 한 단말장치를 선택해 패킷 버퍼를 폐기

망 구성 형태

성형

  • Point to Point 방식
  • 각 단말은 중앙 컴퓨터를 통해 데이터를 교환
  • 추가와 제거가 쉽다.
  • 교환 노드의 수가 가장 적다.
  • 중앙이 고장나면 통신망이 마비

링형

  • 루프형
  • 서로 이웃하는 단말끼리 Point to Point
  • 분산 및 집중 제어 모두 가능
  • 단말의 추가/제거 및 기밀 보호가 어렵다.
  • 각 단말에서 전송 지연이 발생할 수 있다.
  • 중계기가 많아짐
  • 데이터는 단방향 또는 양방향으로 전송된다.
  • 단방향의 경우 단말 하나라도 고장시 통신 마비

버스형

  • 한 개의 통신 회선에 여러 대에 단말이 연결된 형태
  • 물리적 구조가 간단
  • 단말 추가와 제거가 쉽다.
  • 단말이 고장나도 통신망 전체에 영향이 되지 않는다.
  • 신뢰성이 높다.
  • 기밀 보장이 어렵다.
  • 통신 회선 길이에 제한이 있다.

계층형

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

망형

  • Mesh
  • 모든 지점의 컴퓨터와 단말을 서로 연결한 형태
  • 많은 단말로 많은 양의 통신을 필요로 하는 경우에 유리
  • 공중 데이터 통신망에서 사용
  • 통신 회선의 총 경로가 가장 길다.
  • 회선 수는 n(n-1)/2, 포트 수는 n-1

LAN

  • Local Area Network
  • 제한된 지역내의 통신
  • 광대역 전송 매체의 사용으로 고속 통신 가능
  • 공유 매체를 사용하므로 경로 선택 없이 매체에 연결된 모든 장치로 데이터를 전송
  • 오류 발생률이 낮다.
  • 네트워크 확장이나 재배치가 쉽다.
  • 꼬임선, 동축 케이블, 광섬유 케이블 등을 사용

표준안

  • IEEE 802에 의해 추진
  • OSI7의 물리 계층과 데이터 링크 계층을 대상으로 한다.
  • 데이터 링크 계층
    • 매체 접근 제어 : MAC 물리 네트워크에 대한 접근 제어 담당
    • 논리 링크 제어 : LLC 매체 접근 제어에 의해 확보된 채널을 사용하여 메세지를 전송할 때 필요한 연결 관리 절차와 ACK, NAK, 순서화, 오류 제어, 흐름 제어 담당
  • 802.3 : CSMA/CD 방식
  • 802.4 : 토큰 버스 방식
  • 802.5 : 토큰 링 방식
  • 802.11 : 무선 LAN

CO-LAN

  • Central Office LAN
  • 여건이 안 되는 기관 간에 인근 전화국의 데이터 교환망과 기존 통신망을 연동시켜 구성하는 통신망

매체 접근 제어

  • MAC = Media Access Control
  • LAN에서 하나의 통신 회선을 여러 단말이 원활하게 공유할 수 있도록 해주는 통신회선에 대한 접근 방식
  • CSMA, CSMA/CD, 토큰 버스, 토큰 링

CSMA/CD

  • Carrier Sence Multiple Access / Collision Detection
  • 데이터 프레임 간의 충돌이 발생하는 것을 인전하고 이 문제를 해결하기 위해 CSMA 방식에 충돌 검출 기능과 충돌 발생시 재송신하는 기능을 추가했다.
  • 통신 회선이 사용 중이면 일정 시간 동안 대기하고, 통신 회선상에 데이터가 없을 경우 송신한다.
  • 송신 중에도 전송로의 상태를 계속 감시한다.
  • 송신 도중 충돌이 발생하면 송신을 중지하고 모든 노드의 충돌을 알린 후 일정 시간 후에 다음 데이터를 재송신한다.
  • 버스형 LAN에 가장 많이 사용된다.
  • 전송량이 적을 때 매우 효율적이고 신뢰성이 높다.
  • 알고리즘이 간단
  • 노드 장애가 시스템 전체에 영향을 주지 않고 장애 처리가 간단
  • 충돌과 채널 경쟁을 위한 기법에는 non persistent, 1- persistent, p-persistent가 있고 효율적인 1-persistent 기법을 주로 사용한다.
  • 일정 길이 이하의 데이터를 송신할 경우 충돌 검출이 불가능하다.
  • 전송량이 많아지면 충돌이 많아져 채널 이용률이 떨어지고 전송 지연 시간이 급격히 증가
  • 충돌 발생시 다른 노드에서 데이터를 전송할 수 없다.
  • 충돌 발생시 지연 시간을 예측하기 어렵다.

이더넷

  • Ethernet
  • CSMA/CD 방식을 사용하는 LAN
  • 가장 많이 보급된 네트워크
  • 10 BASE T : 전송 속도가 10Mbps, BASEBand 방식, Twisted Pair Wire 케이블을 사용
  • 10 BASE 2 : 얇은 동축 케이블을 사용, 한 세그먼트의 최장기리가 약 200m
  • 10 BASE 5 : 굵은 동축 케이블 사용, 한 세그먼트의 최장 기리가 500m
  • 10 BASE F : 광섬유 케이블을 사용하는 이더넷
  • 고속 이더넷 : 100 BASE T, 100Mbps, CSMA/CD 사용
  • 기가비트 이더넷 : 1Gbps, 기존의 이더넷과 완벽 호환성, CSMA/CD 사용

토큰 버스 방식

  • Token Bus
  • 버스형 LAN에서 사용하는 방식
  • 토큰이 논리적으로 형성된 링을 따라 각 노드를 차례로 옮겨 다니는 방식
  • 토큰은 논리적인 링을 따라 순서대로 전달되고 토큰을 점유한 노드는 정보를 전송할 수 있고 전송이 끝나면 다음 노드로 토큰을 보낸다.
  • 각 노드가 공평한 송신 권한을 가진다.
  • 전송 시간을 가변적으로 조절할 수 있다.
  • 전송량이 많아도 안정적이고 액세스 시간이 일정하다.
  • CSMA/CD보다 장치가 복잡하고 평균 대기 시간이 길다.
  • 노드나 통신 회선에 장애 발생시 전체적인 장애가 될 수 있다.

토큰 링 방식

  • Token Ring
  • 링형 LAN에서 사용하는 방식
  • 물리적으로 연결된 링을 따라 순환하는 토큰을 이용하여 송신 권리를 제어
  • 프리 토큰 : 회선을 사용할 수 있는 상태
  • 비지 토큰 : 회선이 데이터 전송에 사용중인 상태
  • 각 노드가 공평한 송신 권한을 가진다.
  • 노드의 수가 많아질 수록 토큰의 순회 시간이 길어지므로 네트워크 속도가 저하 될 수 있다.

VAN

  • 부가 가치 통신망 = Value Added Network
  • 공중 통신 사업자로부터 통신 회선을 임대해 사설망을 구축하고 이를 통해 정보의 축적, 가공, 변환 처리 등 부가 가치를 첨가한 후 불특정 다수를 대상으로 서비스하는 통신망

구조

기본 통신 계층(전송 계층), 네트워크 계층(교환 계층), 통신 처리 계층, 정보 처리 계층

통신 처리 기능

  • 축적 교환 기능과 변환 기능을 이용해 서로 다른 기종 간, 다른 시간 대에 통신이 가능하도록 제공하는 서비스
  • 프로토콜 변환 : 서로 다른 네트워크 간 또는 서로 다른 기종 간 통신이 가능하도록 통신 절차를 변환하는 기능

정보 처리 기능

  • 온라인 실시간 처리, 원격 일괄 처리, 시분할 시스템을 이용해 응용 소프트웨어를 처리하는 기능

ISDN

  • 종합 정보 통신망 = Integrated Service Digital Network
  • 다양한 통신 서비스를 하나의 디지털 통신망에서 제공할 수 있도록 통합한 것
  • 통신 방식 및 전송로가 모두 디지털 방식
  • 단일 통신망으로 음성, 문자, 영상 등의 다양한 서비스를 제공
  • 고속 통신이 가능
  • 확장성과 재배치성이 좋다.
  • 동시에 복수 통신이 가능
  • 통신망의 중복 투자를 피할 수 있어 경제적
  • 64Kbps 1회선 교환 서비스가 기본
  • 회선 교환 방식과 패킷 교환 방식

통신 서비스

  • 베어러 서비스 : ISDN 사용자와 망 간의 인터페이스에서 단말이 전송하는 정보를 변형없이 그대로 전달만 하는 서비스
  • 텔레 서비스 : 베어러 서비스를 기본으로 통신망, 단말장치 등에서 이용하는 고도의 기능을 부가하여 제공하는 서비스
  • 부가 서비스 : 베어러 서비스나 텔레 서비스에 기능을 부가하여 서비스 이용률을 높이는 서비스

구조

B

  • Bearer Channel
  • 64Kbps
  • 디지털 정보용 채널
  • 정보를 전송하기 위한 기본적인 사용자 채널
  • PCM화된 디지털 음성이나 회선 교환에 의한 제어 신호, 패킷 교화넹 의한 정보 전송에 이용

D

  • Data Channel
  • 16Kbps, 64Kbps
  • 디지털 신호용 채널
  • 서비스 제어를 위한 신호 메세지를 전달하는 역할
  • 저속 패킷 교환에 의한 정보 전송을 위해 사용

H

  • Hybrid Channel
  • 384Kbps, 1536Kbps, 1920Kbps
  • 고속의 디지털 정보용 채널
  • B채널을 통해 제공하는 모든 방식의 정보를 고속으로전송
  • 고속 팩스나 화상회의, 고속 대용량 정보 전송

참조점

  • Referance Point = 기준점 = 접속점 = 분계점
  • ISDN을 구성하는 각 요소간 인터페이스를 구분하는 기능
  • 정보 통신망을 연결할 때 시설, 운영, 유지보수의 책임 한계를 구분하기 위한 접속점
  • U : User 내부망과 외부망 구분
  • T : Terminal 사용자 영역과 네트워크 영역을 구분
  • S : System 사용자 장비와 네트워크 장비를 구분
  • R : Rate 비 ISDN 단말기와 ISDN 장비를 구분

B-ISDN

  • 광대역 종합 정보 통신망 = BroadBand ISDN
  • 광대역 전송 방식과 광대역 교환 방식을 통해 다양한 형태의 통신 서비스를 제공하는 광대역 ISDN
  • 1.5 ~ 2Mbps 이상의 고속 전송과 고속 교환 기술
  • 전송 방식은 ATM을 사용

B-ISDN 참조 계층

  • 물리 계층 : Physical Layer ATM 셀 전송
  • ATM 계층 : Asynchronous Transfer Mode Layer 가입자 정보 유형에 따라 셀 헤더 생성, 가입자 채널 다중화
  • ATM 적응 계층 : Asynchronous Transfer Mode Adaption Layer 패킷 메세지 생성

ATM

  • Asynchronous Transfer Mode
  • 회선 교환과 패킷 교환의 장점을 결합한 교환 및 다중화 기술
  • 고정 길이의 셀 다누이로 전송하므로 전송 지연 시간을 예측 가능
  • 가변 길이 패킷보다 처리가 간단하고 신뢰성이 더 높다.

인터넷

  • TCP/IP 프로토콜을 기반으로 컴퓨터와 네트워크가 연결된 광범위한 컴퓨터 통신망
  • ARPANET에서 시작
  • 유닉스 운영체제를 기반
  • 모든 컴퓨터는 고유한 IP를 갖는다.
  • 컴퓨터 또는 네트워크를 서로 연결하기 위해서 브리지, 라우터, 겡이트웨이가 사용됨
  • 백본 : Backbone 인터넷의 주가 되는 기간망

인터넷 서비스

  • TCP/IP 응용계층에서 제공
  • WWW : HTTP 프로토콜을 사용하는 하이퍼텍스트 기반
  • Email : SMTP, POP3, MIME
  • 텔넷 : 원격 접속, 가상 터미널 기능
  • HTTP : Hyper Text Transfer Protocol 하이퍼 텍스트 문서를 전송하기위해 사용되는 프로토콜
  • FTP
  • ASDL
    • ASymmetri Digital Subscriber Line = 비대칭 디지털 가입자 회선
    • 기존 전화선을 이용해 주파수가 서로 다른 음성 데이터와 디지털 데이터를 함께 보내는 방식
    • 한 전화선으로 전화와 데이터 통신을 모두 처리 가능
    • 전화국과 가정이 1대 1로 연결된 것
    • 고속 데이터 통신이 가능
    • 다운로드 속도가 업로드 속도보다 빠름

인터넷 주소 체계

IP

  • Internet Protocol Address
  • 숫자로 8bit 씩 4부분, 32bit로 구성
  • 네트워크 부분의 길이에 따라 A~E클래스의 5단계로 구성

A Class

  • 국가나 대형 통신망에 사용
  • 2^24 개의 호스트 사용 가능
  • 0과 127은 예약된 주소로 1~126으로 시작

B Class

  • 중대형 통신망에 사용
  • 2^16 = 65536개의 호스트 사용 가능

C Class

  • 소규모 통신망에 사용
  • 2^8 = 256 개의 호스트 사용 가능

D Class

  • 멀티 캐스트 용으로 사용

E Class

  • 실험적 주소로 공용되지 않음

서브네팅

  • Subnetting
  • 할당된 네트워크 주소를 다시 여러 개의 작은 네트워크로 나눠 사용하는 것
  • 4Byte의 IP 주소 중 네트워크 주소와 호스트 주소를 구분하기 위한 비트를 Subnet Mask라고 한다.
  • 이를 변경해 네트워크 주소를 여러 개로 분할하여 사용
  • 서브넷 마스크 기본값
    • A Class = 255.0.0.0
    • B Class = 255.255.0.0
    • C Class = 255.255.255.0

IPv6

  • 현재 사용하고 있는 IP 주소 체계인 IPv4의 주소 부족문제를 해결하기 위해 개발
  • 128bit
  • Ipv4에 비해 자료 전송 속도가 빠르다.
  • 인증성, 기밀성, 데이터 무결성의 지원으로 보안 문제 해결
  • 실시간 흐름 제어로 향상된 멀티미디어 기능 지원
  • Traffic Class, Flow Label을 이용해 등급, 서비습려 패킷을 구분할 수 있어 품질 보장이 용이

IPv4에서 IPv6

  • 듀얼 스택 : 호스트에서 IPv4와 v6을 모두 처리할 수 있게 두개의 스택을 구성하는 것
  • 터널링 : IPv6에서 인접한 IPv4망을 거쳐 IPv6망으로 통신할 때 IPv4 망에 터널을 만들어 IPv6 패킷이 통과할 수 있도록 하는 것
  • 헤더 변환 : IP 계층에서 IPv6 패킷 헤더를 IPv4 헤더나 그 반대로 변환하는 방식
  • 전송 계층 릴레이 방식 : 전송 계층에서 IPv6 헤더를 IPv4 헤더나 그 반대로 변환하는 방식
  • 응용 계층 게이트웨이 방식 : 응용 계층에서 IPv6 패킷 헤더를 IPv4 패킷 헤더나 그 반대로 변화하는 방식

도메인 네임

  • Domain Name
  • 숫자로 된 IP주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것
  • 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 역할을 하는 시스템을 DNS

네트워크 장비

허브

  • 사무실이나 가까운 거리의 컴퓨터를 연결하는 장치
  • 신호 증폭 기능을 하는 리피터의 역할도 포함

리피터

  • 전송되는 신호가 전송 선로의 특성 및 외부 충격의 요인으로 원래의 형태와 다르게 왜곡되거나 약해질 경우 원래의 신호 형태로 재생하여 다시 전송하는 역할
  • OSI7의 물리계층

브리지

  • Bridge
  • LAN과 LAN을 연결하거나 LAN안에서의 세그먼트(컴퓨터 그룹)를 연결하는 기능 수행
  • 데이터 링크 계층 중 MAC 계층에서 사용 = MAC 브리지
  • 트래픽 병목 현상을 줄인다.
  • 네트워크를 분산적으로 구성할 수 있어 보완성을 높인다.
  • 브리지를 이용한 서브넷 구성시 전송 가능한 회선 수는 n(n-1)/2

라우터

  • 브리지와 같이 LAN과 LAN의 연결 기능에 데이터 전송의 쵲거 경로를 선택할 수 있는 기능이 추가된 것
  • 서로 다른 LAN이나 LAN과 WAN의 연결도 수행
  • OSI7의 네트워크 계층
  • 접속 가능한 경로에 대한 정보를 라우팅 테이블에 저장하여 보관
  • 네트워크 계층 까지의 프로토콜 구조가 다른 네트워크 간의 연결으 위해 프로토콜 변환 기능을 수행

게이트웨이

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

통신 프로토콜

  • Communication Protocol
  • 서로 다른 기기 간의 데이터 교환을 원활하게 수행하도록 표준화 시켜놓은 통신 규약
  • 통신을 제어하기 위한 표준 규칙과 절차의 집합
  • 하드웨어와 소프트웨어, 문서를 모두 규정한다.
  • 구성 요소 : 구문(Syntax), 의미(Semantics), 시간(Timing)

기능

단편화

  • Fragmentation
  • 송신 측에서 전송할 데이터를 전송에 알맞은 일정 크기의 작은 블록으로 자르는 작업
  • 단편화를 통해 세분화된 데이터 블록을 프로토콜 데이터 단위(PDU)라 한다.

재결합

  • Reassembly
  • 수신 측에서 단편화된 블록을 원래의 데이터로 모으는 것

캡슐화

  • Encapsulation = 요약화
  • 단편화된 데이터에 송수신지 주소, 오류 검출코드, 프로토콜 기능을 구현하기 위한 프로토콜 제어 정보 등의 정보를 부가하는 것
  • 데이터 링크 제어 프로토콜의 HDLC 프레임이 있다.

흐름 제어

  • Flow Control
  • 수신 측 처리능력에 따라 송신 측에서 송신하는 데이터의 전송량이나 전송 속도를 조절하는 기능
  • 정지 대기, 슬라이딩 윈도우 방식

오류 제어

동기화

순서 제어

  • Sequencing
  • 전송되는 데이터 블록에 전송 순서를 부여하는 기능
  • 연결 위주의 데이터 전송방식에서만 사용

주소 지정

다중화

경로 제어

전송 서비스

전송 방식

문자 전송 방식

  • 전송 제어 문자를 사용해 데이터 프레임의 시작과 끝을 나타내느 방식
  • BSC

바이트 전송 방식

  • 데이터 프레임 헤더에 전송 데이터 프레임의 문자 수, 메세지 수신 상태 등의 제어 정보를 삽입하여 전송하는 방식
  • DDCM

비트 방식

  • 데이터 프레임의 시작과 끝을 나타내는 고유한 비트 패턴을 삽입해 전송하는 방식
  • HDLC, SDLC, LAPB

OSI 7 Layer

  • Open System Interconnection
  • 다른 시스템 간의 원활한 통신을 위해 ISO에서 제안한 통신 규약
  • 하위 계층 : 물리 계층 => 데이터 링크 계층 => 네트워크 계층
  • 상위 계층 : 전송 계층 => 세션 계층 => 표현 계층 => 응용 계층
  • 물 데 네 전 세 표 응

목적

  • 서로 다른 시스템 간 상호 접속하기 위한 개념 규정
  • OSI 규격을 개발하기 위한 범위 설정
  • 관련 규정의 적합성을 조절하기 위한 공통적 기반 제공

데이터 단위

프로토콜 데이터 단위

  • PDU = Protocol Data Unit
  • 동일 계층 간에 교환되는 정보의 단위
  • 물리 계층 : 비트
  • 데이터 링크 계층 : 프레임
  • 네트워크 계층 : 패킷
  • 전송 계층 : 세그먼트
  • 세션, 표현, 응용 계층 : 메세지

서비스 데이터 단위

  • SDU = Service Data Unit
  • SAP 를 통해 상하위 계층끼리 주고 받는 정보의 단위
  • SAP : 서비스 접근점 = 하위 계층과 상위 계층의 통신 경계점

물리 계층

  • 전송에 필요한 두 장치 간의 실제 접속과 절단 등 기계적, 전기적, 기능적, 절차적 특성에 대한 규칙을 정의
  • 물리적 전송 매체와 전송 신호 방식을 정의
  • RS-232C, X.21

데이터 링크 계층

  • 두 개의 인접한 개방 시스템 간의 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 한다.
  • 송수신 측의 속도차이를 해결하기 위한 흐름 제어 기능
  • 프레임의 시작과 끝을 구분하기 위한 프레임 동기화 기능
  • 오류의 검출과 회복을 위한 오류 제어 기능
  • 프레임의 순서적 전송을 위한 순서 제어 기능
  • HDLC, LAPB, LLC, LAPD, PPP

네트워크 계층

  • 망 계층
  • 개방 시스템들 간의 네트워크 연결을 관리하는 기능 및 데이터의 교환 기능, 중계 기능
  • 네트워크 연결을 설정, 유지, 해제하는 기능
  • 경로 설정, 데이터 교환 및 중계, 트래픽 제어, 패킷 정보 전송 수행
  • X.25, IP

전송 계층

  • Transport Layer
  • 논리적 안정과 균일한 데이터 전송 서비스를 제공함으로 종단 시스템 간에 투명한 데이터 전송을 가능하게 함
  • 하위 3계층과 상위 3계층 사이의 인터페이스 담당
  • 종단 시스템 간의 전송 연결 설정, 데이터 전송, 연결 해제 기능
  • 주소 설정, 다중화, 오류 제어, 흐름 제어
  • TCP, UDP
  • 연결형과 비연결형 서비스로 구분

세션 계층

  • 송수신 측 간의 관련성을 유지하고 대화 제어를 담당하는 계층
  • 대화 구성 및 동기 제어, 데이터 교환 관리 기능
  • 송수신 측 간의 대화 동기를 위해 전송하는 정보의 일정한 부분을 체크점을 두어 정보의 수신 상태를 체크하며 이 것을 동기점이라 한다.

표현 계층

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

응용 계층

  • Application Layer
  • 사용자 또는 응용 프로그램이 OSI환경에 접근할 수 있도록 서비스 제공
  • 응용 프로세스 간의 정보 교환, 전자 사서함, 파일 전송, 가상 터미널 등의 서비스 제공

X.25

  • DTE(데이터 터미널 장치)와 DCE(데이터 회선 종단 장치) 간의 인터페이스를 제공하는 프로토콜
  • 두 단말장치가 패킷 교환망을 통해 패킷을 원할히 전달하기 위한 통신 절차
  • 1976년 ITU-T에서 제정
  • 연결형 프로토콜로 흐름제어, 오류 제어 기능
  • 강력한 오류 체크 기능으로 신뢰성이 높다.
  • 한 회선에 장애가 있어도 정상적인 경로를 선택해 우회 가능
  • 디지털 전송을 기본
  • 전송 품질 우수
  • 가상 회선 방식을 사용해 하나의 물리적 회선에 다수의 논리 채널을 할당하므로 효율성이 높다.
    • 영구 가상회선 : PVC 두 단말기 사이에 영구적으로 가상회선이 연결된 것으로 호설정이나 해제의 절차가 필요 없음
    • 교환 가상회선 : SVC 두 단말기 사이에 필요할 때마다 가상 회선 연결을 위해 호 설정과 호 해제 절차가 필요한 것 = 가상 호
  • X.25 모든 패킷은 최소 3옥텟의 헤더를 가진다.
  • 축적 교환 방식을 사용해 전송을 위한 처리 지연 발생

계층 구조

물리 계층

  • 단말장치(DTE)와 패킷 교환망(DCE) 사이의 물리적 접속에 관한 인터페이스를 정의하는 계층
  • X.21을 사용

프레임 계층

  • 패킷의 원할한 전송을 위해 데이터 링크의 제어를 수행하는 계층
  • 링크 계층
  • OSI 7 계층의 데이터 링크 계층에 해당
  • 전송 제어를 위해 HDLC 프로토콜의 변형인 LAPB를 사용
  • 다중화, 순서 제어, 오류 제어, 흐름 제어

패킷 계층

  • OSI 7 계층의 네트워크 계층
  • 호 설정 => 데이터 전송 => 호 해제
  • 데이터 전송 시 오류 제어, 순서 제어, 흐름 제어, 다중화, 망 고장시 복구 등의 데이터 전송 제어 기능 수행
  • 호를 설정한 후 호 해제까지 가상 회선을 이용하여 통신 경로를 유지하므로 패킷을 끝까지 안전하게 전송 가능

LAPB

  • Link Access Procedure on Balanced
  • HDLC의 원리를 이용한 비트 중심의 프로토콜
  • X.25의 2계층에서 사용
  • 프레임 순서 번호를 유지하므로 오류 발견 및 회복이 쉽다.

X.75

  • 두개의 X.25 네트워크를 연결하기 위한 프로토콜
  • 다른 네트워크에 존재하는 사용자들이 데이터를 교환하고 자원을 공유하기 위한 절차를 정의

TCP/IP

  • Transmission Control Protocol/Internet Protocol
  • 인터넷에 연결된 서로 다른 기종의 컴퓨터가 데이터를 주고받을 수 있도록 하는 표준 프로토콜
  • 1960년 말 ARPA에서 개발에서 ARPANET에서 사용하기 시작
  • UNIX의 기본 프로토콜
  • 현재 인터넷 범용 프로토콜

TCP

  • OSI 7 계층의 전송 계층에 해당
  • 신뢰성 있는 연결형 서비스 제공
  • 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어 기능 제공
  • 스트림 전송 기능 제공
  • 헤더에는 순서를 제어하기 위한 긴급 포인터, 순서 번호와 오류 제어를 위한 체크섬이 포함
  • 투명성이 보장되는 통신 제공

IP

  • OSI 7 계층의 네트워크 계층에 해당
  • 데이터그램을 기반으로 하는 비연결형 서비스 제공
  • 패킷의 분해/조립, 주소지정, 경로 선택기능 제공
  • 헤더의 길이는 최소 20Byte에서 최대 60Byte
  • 신뢰성이 보장되지 않는다.

구조

응용 계층

  • OSI의 응용, 표현, 세션 계층
  • 응용 프로그램 간 데이터 송수신 제공
  • TELNET, FTP, SMTP, SNMP

전송 계층

  • OSI의 전송 계층
  • 호스트들 간의 신뢰성 있는 통신 제공
  • TCP, UDP

인터넷 계층

  • OSI의 네트워크 계층
  • 데이터 전송을 위한 주소 지정, 경로 설정 제공
  • IP, ICMP, IGMP, ARP, RARP

네트워크 액세스 계층

  • OSI의 데이터 링크계층, 물리 계층
  • 실제 데이터를 송수신하는 역할
  • Ethernet, IEEE 802, HDLC, X.25, RS-232C

응용 계층 주요 프로토콜

  • FTP
  • SMTP
  • TELNET
  • SNMP : 간이 망 관리 프로토콜
  • DNS : 도메인 네임 서비스

전송 계층 주요 프로토콜

  • TCP

UDP

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

RTCP

  • RealTime Control Protocol
  • RTP 패킷의 전송 품질을 제어하기 위한 프로토콜
  • 세션에 참여한 각 참여자에게 주기적으로 제어 정보를 전송
  • 하위 프로토콜은 데이터 패킷과 제어 패킷의 다중화를 제공
  • 데이터 전송을 모니터링하고 최소한의 제어와 인증 기능만을 제공
  • 32bit의 경계로 끝난다.

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

  • IP

ICMP

  • Internet Control Message Protocol
  • IP와 조합하여 통신중 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메세지를 관리하는 역할
  • 헤더는 8Byte

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 : 패킷 교환망을 통한 DTE와 DCE 간의 인터페이스르 제공하는 프로토콜
  • RS-232C : 공중 전화 교환망을 통한 DTE와 DCE 간의 인터페이스를 제공하는 프로토콜

소프트웨어 공학 정리

· 약 115분
  • 하드웨어를 동작시켜 사용자가 작업을 편리하게 수행하도록하는 프로그램과 자료구조
  • 프로그램 개발, 운용, 유지보수 관련된 모든 문서와 정보를 포함
  • 상품성 : 개발된 소프트웨어는 상품화되어 판매된다.
  • 견고성 : 일부 수정으로 소프트웨어 전체에 영향을 줄 수 있다.
  • 복잡성 : 개발과정이 복잡, 비표준화
  • 순응성 : 사용자의 요구나 환경 변화에 적절히 변경
  • 비가시성 : 소프트웨어 구조는 외관으로 나타나지 않고 코드로 숨어 있다.
  • 비마모성 : 마모되거나 소멸되지 않는다.
  • 비제조성 : 하드웨어처럼 제작이 아니라 논리적인 절차에 맞게 개발
  • 비과학성 : 과학적이 아니라 조직, 인력, 시간, 절차 등 중심

분류

  • 기능에 의한 분류 : 시스템, 응용
  • 사용 분야에 의한 분류 : 프로그래밍, 문서, 통신, 분산처리, 멀티미디어, 개발, 인공지능
  • 개발 과정 성격에 따른 분류 : 프로토타입, 프로젝트 산출물, 패키지
  • 정보처리 방법에 따른 분류 : 일괄처리, 온라인, 실시간

시스템 구성요소

  • 입력 : 처리 방법, 처리할 데이터, 조건을 시스템에 투입하는 것
  • 처리 : 입력된 데이터를 처리 방법과 조건에 따라 처리하는 것
  • 출력 : 처리된 결과를 시스템에서 산출하는 것
  • 제어 : 자료를 입력하여 출력될 때까지의 처리 과정이 올바르게 진행되는지 감독하는 것
  • 피드백 : 출력된 결과가 예정된 목표를 만족시키지 못할 경우 목표 달성을 위해 반복 처리 하는 것

위기

여러가지 원인해 의해 개발 속도가 하드웨어의 개발속도를 따라가지 못해 소프트웨어에 대한 사용자들의 요구사항을 처리할 수 없는 문제가 발생함을 의미

  • 소프트웨어의 특징에 대한 이해 부족 : 물리적이지 않고 논리적인 소프트웨어 특징을 이해하지 못함
  • 소프트웨어의 관리 부재 : 소프트웨어에 대한 관리를 소홀히 하여 효율적인 자원 통제가 이루어지지 못했다.
  • 프로그래밍에만 치중 : 소프트웨어 품질이나 유지보수는 고려하지 않고, 프로그래밍만 하려하므로 다양하고 복잡해지는 소프트웨어의 요구사항을 처리하지 못함
  • 개발 인력 부족과 그로 인한 인건비 상승
  • 성능 및 신뢰성 부족
  • 개발 기간 지연 및 개발 비용 증가
  • 유지보수가 어려워져 비용 증가
  • 소프트웨어의 생산성 저하
  • 소프트웨어의 품질 저하

소프트웨어 공학

  • 소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문
  • 소프트웨어의 품질과 생산성 향상을 목적
  • IEEE 정의 : 소프트웨어의 개발, 운용, 유지보수, 폐기 처분에 대한 체계적인 접근 방안
  • Fairley 정의 : 지정된 비용과 기간 내의 소프트웨어를 체계적으로 생산하고 유지보수하는 데 관련된 기술적이고 관리적인 원리
  • Boehm 정의 : 과학적인 지식을 소프트웨어 설계와 제작에 응용하는 것이며 이를 개발 운용, 유지보수하는 데 필요한 문서 작성 과정
  • 제품을 단지 생산하는 것이 아니라 가장 경제적인 방법으로 양질의 제품을 생산하는 것
  • 계층화 기술을 사용한다.

계층화 기술

도구, 방법, 절차가 있다.

  • 도구 : Tool 절차와 방법을 자동 또는 반자동으로 처리하는 기능을 제공, 대표적으로 CASE를 사용
  • 방법 : Method 소프트웨어를 구축하는 기술적인 방법을 제공
  • 절차 : Process
    • 소프트웨어 개발에 사용되는 개발 방법과 도구가 사용되는 순서
    • 계층화 기술들을 결합시켜 합리적이고 적절한 방법으로 소프트웨어를 개발하고 유지

기본 원칙

  • 현대적인 프로그래밍 기술을 계속적으로 적용해야한다.
  • 개발된 소프트웨어 품질이 유지되도록 지속적으로 검증해야한다.
  • 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야한다.

발전 과정

  • 1960 : 소프트웨어 공학의 시작, 구조적 프로그래밍
  • 1970 : 구조적 분석/설계 개념 도입, 상품화
  • 1980 : 하드웨어 가격 하락
  • 1985~ : 객체지향 기술 사용, CASE 등의 활용, 재공학

품질과 생산성

품질

  • 사용자가 요구하는 대로 동작
  • 하드웨어 자원을 효율적으로 이용
  • 일정 시간 내에 주어진 조건하에서 원하는 기능을 실행
  • 처리 절차에 맞게 수행되어 정확하게 결과가 산출
  • 소프트웨어의 개발, 유지보수 등이 초기 예상 비용 이내에서 수행
  • 적당한 사용자 인터페이스를 제공해 사용하기가 편리해야한다.
  • 유지보수가 용이하고 신뢰성이 높아야한다.
  • 에러가 최소화
  • 소프트웨어 사용법, 구조의 설명, 성능, 기능이 이해하기 쉬어야한다.
  • 실행 속도가 빠르고, 기억 용량을 적게 차지해야 한다.

생산성

투입된 비용, 노력에 대한 생산량을 의미

  • 개발자의 능력
  • 원활한 의사 전달
  • 프로젝트의 복잡도와 성격
  • 기술 수준
  • 관리 기술

생명 주기

  • 소프트웨어 수명 주기
  • 소프트웨어 개발 방법론의 바탕
  • 소프트웨어를 개발하기 위해 정의하고 운용, 유지보수 등의 과정을 단계별로 나눈 것
  • 프로젝트 비용 산정과 개발 계획을 수립할 수 있는 기본 골격
  • 프롲게트 진행 방향을 명확하게 파악
  • 용어 및 기술의 표준화를 가능하게 한다.
  • 프로젝트 관리를 용이하게 한다.
  • 여러 소프트웨어 간 상호 일관성을 유지하게 한다.

단계

정의 단계, 개발단계, 유지보수 단계로 나뉨

정의 단계

  • 소프트웨어를 개발할 것인지 정의하는 단계
  • 관리자와 사용자가 가장 많이 참여하는 단계
  • 타당성 검토단계, 개발 계획단계, 요구사항 분석 단계로 나뉨

개발 단계

  • 실제적으로 소프트웨어를 개발하는 단계
  • 설계 단계 : 구조, 알고리즘, 자료구조를 작성하는 단계로 에러가 가장 많이 발생
  • 구현 단계 : 설계 단계에서 작성된 문서를 기초로 하여 코딩하고 번역하는 단계
  • 테스트 단계 : 구현된 소프트웨어에 내재되어 있는 오류를 찾아주는 단계

유지보수 단계

  • 소프트웨어를 적응 및 유지시키는 단계
  • 소프트웨어 생명 주기 단계 중에서 시간과 비용이 가장 많이 든다.

정의 : 개발 계획, 요구사항 분석 설계 : 구조, 알고리즘 구현 : 코딩 테스트 : 오류 검출

생명 주기 모형

폭포수 모형

  • 소프트웨어 개발이 각 단계를 확실히 매듭짓고 그 결과를 철저히 검토하여 승인한 뒤 다음 단계로 진행
  • 이전 단계로 넘어갈 수 없는 방식
  • 가장 오래되고 가장 폭넓게 사용된 전통적인 소프트웨어 생명 주기 모형
  • 고전적 생명 주기 모형
  • 앞 단계가 끝나야만 다음 단계로 넘어갈 수 있는 선형 순차적 모형
  • 제품의 일부가 될 매뉴얼을 작성해야 한다.
  • 타당성 검토 => 계획 => 요구 분석 => 설계 => 구현(코딩) => 테스트(검사) => 유지보수
  • 모형 적용 경험과 성공 사례가 많다.
  • 단계별 정의가 분명하고 전체 공조의 이해가 용이하다.
  • 단계별 산출물이 정확하여 개발 공정의 기준점을 잘 제시한다.
  • 개발 중 발생하는 새로운 요구나 경험을 반영하기 어려워 처음부터 사용자가 모든 요구사항을 명확하게 제시해야한다.
  • 오류 없이 다음 단계로 진행해야 하는데 현실적으로 힘들다.
  • 업무에 운용할 때 검출되지 않은 오류가 발생할 수 있다.

프로토타입 모형

  • 사용자의 요구사항을 정확하게 파악하기 위해 프로토타입(견본품)을 만들어 최종 결과물을 예측하는 모형
  • 시제품은 사용자와 시스템 사이의 인터페이스에 중점을 두어 개발한다.
  • 폭포수 모형의 단점을 보완
  • 프로토타입은 요구 분석 단계에서 사용한다.
  • 소프트웨어 생명주기에서 유지보수가 없어지고, 개발 단계 안에서 유지 보수가 이뤄지는 것으로 볼 수 있다.
  • 요구 수집 => 빠른 설계 => 프로토타입 구축 => 고객 평가 => 프로토타입 조정 => 구현
  • 요구사항을 충실히 반영하며 요구사항의 변경이 용이
  • 최종 결과물이 만들어지기 전에 의뢰자가 최종 결과물의 일부 또는 모형을 볼 수 있다.
  • 프로토타입은 의뢰자나 개발자 모두에게 공동의 참조 모델을 제공한다.
  • 미리 제작된 소프트웨어를 사용할 경우 실제 소프트웨어와의 차이가 발생할 수 있다.
  • 단기간 제작해야되기 때문에 비효율적 언어나 알고리즘을 사용할 수 있다.

나선형 모형

  • Boehm이 제안한 것으로 폭포수와 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형
  • 여러 번의 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발하는 것
  • 점진적 모형
  • 소프트웨어를 개발하면서 발생하는 위험을 관리하고 최소화하는 것을 목적으로 한다.
  • 계획 및 정의 => 위험 분석 => 공학적 개발 => 고객평가의 반복
  • Planning => Risk Analysis => Engineering => Customer Evalutation
  • 가장 현실적인 모형
  • 대규모 프로젝트나 큰 시스템에 적합하다.
  • 개발 과정이 반복되므로 누락되거나 추가된 요구사항을 추가할 수 있고, 정밀하며 유지보수가 필요 없다.
  • 위험성 평가에 크게 의존하기 때문에 발견하지 못하면 문제가 발생한다.
  • 비교적 최신 기법이라 널리 사용되지 않는다.

4GT 모형

  • 사용자와 개발자가 쉽게 접근하고 사용할 수 있는 4세대 언어를 이용하여 개발자가 조사한 요구사항 명세서로부터 원시 코드를 자동으로 생성할 수 있게 해주는 모형
  • 설계 단계를 축소하고 요구 분석단계에서 코딩단계로 전환할 수 있는 비절차적 모형
  • 요구사항 수집 => 설계 전략 => 4세대 언어를 이용한 구현 => 제품화
  • 중소형 소프트웨어 개발에는 시간이 감소하지만 대규모에서는 자동화로 인해 분석 설계 단계에서 더 많은 시간이 필요

프로젝트 관리

  • 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 활동
  • 소프트웨어 개발 계획을 세우고 분석, 설계, 구현 등 작업을 통제하는 것
  • 소프트웨어 생명 주기의 전 과정에 걸쳐 진행된다.

관리 대상

  • 계획관리 : 프로젝트 계획, 비용산정, 일정 계획, 조직 계획
  • 품질관리
  • 위험관리

3대 요소

  • 사람 : People 프로젝트 관리에서 가장 기본이 되는 인적자원
  • 문제 : Problem 사용자 입장에서 문제를 분석하여 인식
  • 프로세스 : Process 소프트웨어 개발에 필요한 전체적인 작업 계획 및 구조

구성 단계

  • 프로젝트 계획 수립
  • 프로젝트 가동
  • 프로젝트 통제
  • 프로젝트 종료

프로젝트 계획 수립

  • 프로젝트가 수행되기 전에 소프트웨어 개발 영역 결정, 필요한 자원, 비용, 일정 등을 예측하는 작업
  • 관리자가 합리적으로 예측할 수 있도록 프레임워크 제공
  • 소프트웨어 개발 과정에서 발생할 수 있는 위험성 최소화
  • 계획 수립 후에는 시스템 정의서와 프로젝트 계획서가 산출
  • 프로젝트 관리자의 임무

소프트웨어 개발 영역 결정

  • 프로젝트 계획 수립의 첫 번째 업무
  • 개발될 소프트웨어의 영역을 결정
  • 주요 요소 : 처리될 데이터, 소프트웨어에 대한 기능, 성능, 제약 조건, 신뢰도, 인터페이스 등
  • 인터페이스
    • 소프트웨어에 의해 간접적으로 제어되는 장치와 소프트웨러를 실행하는 프로세서나 하드웨어
    • 운영체제, 서브루틴 패키지와 같이 새로운 소프트웨어에 연결되어야 하는 소프트웨어
    • 키보드나 기타 I/O 장치를 통해 소프트웨어를 사용하는 사람
    • 순서적인 연산에 의해 소프트웨어를 실행하는 절차

자원 추산

  • 소프트웨어 개발에 필요한 자원을 예측하는 것
  • 인적자원, 재사용 소프트웨어자원, 환경 자원

소프트웨어 프로젝트 추산

  • 프로젝트 수행에 필요한 비용을 예측하는 것

프로젝트 계획 수립시 고려사항

  • 프로젝트 복잡도
  • 프로젝트 규모
  • 구조적 불확실성의 정도
  • 과거 정보의 가용성
  • 위험성

소프트웨어 프로젝트 추산

  • 비용을 예측하는 작업
  • 가장 어렵고 오차 발생이 심한 작업

프로젝트 비용 결정 요소

프로젝트 요소

  • 제품의 복잡도
  • 시스템의 크기
  • 요구되는 신뢰도 : 일정한 기간 내에 주어진 조건 하에서 필요한 기능을 수행하는 정도

자원 요소

  • 인적 자원 : 관리자, 개발자의 자질
  • 하드웨어 자원
  • 소프트웨어 자원 : 개발 지원 도구

생산성 요소

  • 개발자의 능력
  • 개발 기간 : 개발 기간이 길어질수록 개발 비용이 적어짐

비용 산정 기법

하향식

전문가 감정 기법

  • 경험이 많은 두 명 이상의 전문가에게 비용 산정 의뢰
  • 개인적이고 주관적
  • 편리하고 신속하게 비용 산정
  • 의뢰자에게 신뢰를 얻을 수 있음

델파이 기법

  • 전문가 감정 기법의 주관적 편견을 보완하기 위함
  • 많은 전문가의 의견을 종합해 선정하는 방법
  • 한 명의 조정자와 여러 명의 전문가

상향식

프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법

LOC 기법

  • 원시 코드 라인수 기법
  • 소프트웨어 각 기능의 원시 코드 라인 수와 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
  • 측정이 용이하고 이해하기 쉬워 가장 많이 사용된다.
  • 예측치 = (낙관치 + (4 X 기대치) + 비관치) / 6 = (a + 4m + b) / 6
  • ManMonth = 개발 기간 X 투입 인원 = LOC / 1인당 월평균 코딩량
  • 개발 비용 = ManMonth X 1인 인건비
  • 개발 기간 = ManMonth / 투입 인원
  • 생산성 = LOC / ManMonth

개발 단계별 인원수 기법

  • Effort Per Task
  • 각 기능을 구현시키는데 필요한 ManMonth를 생명 주기의 각 단계별로 산정
  • LOC보다 정확하다.

수학적 산정 기법

  • 상향식 비용 산정 기법
  • 경험적 추정 모형 = 실험적 추정 모형
  • COCOMO, Putnam, FP 모형

COCOMO 모형

  • COnstructive COst MOdel
  • Boehm이 제안
  • 원시 프로그램 규모인 LOC에 의한 비용 산정 기법
  • 개발할 소프트웨어의 규모를 예측한 후 소프트웨어의 종류에 따라 다르게 책정되는 비용 산정 방정식에 대입하여 비용을 구한다.
  • 비용 견적의 강도 분석 및 유연성이 높아 널리 사용된다.
  • 같은 규모의 프로그램이라도 성격에 따라 비용이 다르게 산정된다.
  • 비용 산정 결과는 ManMonth로 나타낸다.

조직형

  • Organic Mode
  • 중소규모, 5만 라인 이하의 소프트웨어 개발
  • 사무처리, 업무, 과학용 응용 소프트웨어 개발에 적합

반분리형

  • Semi-Detached Mode
  • 30만 라인 이하의 소프트웨어 개발
  • 트랜잭션 처리 시스템, 운영체제, DBMS, 컴파일러, 인터프리터 등 유틸리티 개발에 적합

내장형

  • Embedded Mode
  • 30만 라인 이상의 소프트웨어 개발
  • 최대형 규모의 트랜잭션 처리 시스템, 운영체제, 신호기 제어, 미사일 유도, 실시간 처리 등 시스템 프로그램 개발에 적합

종류

  • 기본형 : Basic 소프트웨어 크기와 개발 유형만을 이용
  • 중간형 : Intermediate 기본 COCOMO를 사용하나 제품, 컴퓨터, 개발요원, 프로젝트 특성에 따라 비용을 산정한다.
  • 발전형 : Detail 개발 공정별로 보다 자세하고 정확하게 노력을 산출하여 비용을 산정하는 모형, 소프트웨어 환경과 구성요소가 사전에 정의되어 있어야하고 개발과정 후반부에 주로 적용한다.

Putnam 모형

  • Putnam이 제안
  • 생명 주기 예측 모형
  • 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.
  • SLIM : Rayleigh-Norden 곡선과 Putnam 예측 모델을 기초로하여 개발된 자동화 추정 도구

FP 모형

  • 기능 점수 = Function Point
  • Albrecht이 제안
  • 소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여하고 가중치와 영향도를 합하여 기능 점수를 구한 후 비용을 산정하는 기법
  • 최근에 유용성과 간편성으로 비용 산정 기법 가운데 최선의 평가를 받고 있다.
  • ESTIMACS : FP 모형을 기초로하여 개발된 자동화 추정 도구

프로젝트 일정 계획

  • 프로젝트 프로세스를 이루는 소작업의 순서와 일정을 정하는 것
  • 소프트웨어 개발 기간의 지연을 방지하고 프로젝트가 계획대로 진행되도록 일정을 계획
  • 계획된 일정은 프로젝트의 진행을 관리하는데 기초 자료가 된다.
  • 계획된 일정과 프로젝트의 진행도를 비교하여 차질이 있을 경우 조정할 수 있다.
  • WBS, PERT/CPM, 간트 차트가 사용된다.

사람-노력 관계

  • 소규모 개발 프로젝트에서는 한 사람이 요구사항을 분석하고 설계, 코딩, 테스트까지 수행할 수 있다.
  • 프로젝트의 크기가 증가할수록 더 많은 사람들이 참여해야 한다.
  • Brooks의 법칙 : 프로젝트 중 새로운 인력을 투입할 경우 작업 적응기간과 부작용으로 인해 일정이 더 지연된다.

노력 분배

  • 노력을 개발과정에 분배할 때는 40-20-40 규칙을 권장한다.
  • 분석 설계에 40, 코딩에 20, 테스트에 40

WBS

  • Work Breakdown Structure = 업무 분류 구조
  • 개발 프롲게트를 여러 개의 작은 관리 단위로 분할하여 계층적으로 기술한 업무 구조

PERT/CPM

  • 프로젝트 지연을 방지하고 계획대로 진행되게 하기 위한 일정을 계획하는 것
  • 초단시간 내 계획 완성을 위한 프로젝트 일정 방법
  • 프로젝트 개발 기간을 결정하는 임계 경로를 제공한다.
  • 통계적 모델을 적용해 개별 작업에 대한 가장 근접한 시간을 측정하는 기준이 된다.
  • 각 작업에 대한 시작 시간을 정의하여 작업들 간의 경계 시간을 계산할 수 있게 한다.
  • 가장 빠른 완료시간, 가장 늦은 완료시간, 총 자유시간을 구할 수 있다.

PERT

  • Program Evaluation and Review Technique = 프로그램 평가 및 검토 기술
  • 프로젝트에 필요한 전체 작업의 상호 관계를 표시하는 네트워크
  • 낙관적인 경우, 가능성이 있는경우, 비관적인 경우로 나누어 각 단계별 종료 시기를 결정하는 방법
  • 과거에 경험이 없어 소요 기간 예측이 어려운 소프트웨어에서 사용
  • 노드와 간선으로 구성되며 원 노드에는 작업을 화살표 간선에는 낙관치, 기대치, 비관치를 표시한다.
  • 결정 경로, 작업에 대한 경계시간, 작업 간의 상호관련성을 알 수 있다.
  • 작업 예측치 = (비관치 + (4 X 기대치) + 낙관치) / 6

CPM

  • Critical Path Method = 임계 경로 기법
  • 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용하는 기법
  • 노드와 간선으로 구성된 네트워크로 노드는 작업을, 간선은 작업사이의 전후 의존 관계를 나타낸다.
  • 원형 노드는 작업과 소요기간을 표시하고, 박스 노드는 이정표를 의미하며 예상 완료 시간을 표시한다.
  • 전 작업이 완료된 후 다음 작업을 진행할 수 있다.
  • 각 작업의 순서와 의존관계, 작업의 동시성을 한 눈에 볼 수 있다.
  • 프로젝트 규모 추정 => 단계별 필요작업 분할 => 작업의 상호 의존 관계를 CPM 네트워크로 나타냄 => 일정 계획을 간트 차트로 나타냄

Gantt Chart

  • 간트 차트 = 시간선 = Time Line
  • 프로젝트의 각 작업들이 언제 시작하고 언제 종료되는지에 대한 작업 일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표
  • 중간 목표 미달성시 그 이유와 기간을 예측 가능
  • 사용자와의 문제점이나 예산의 초과 지출 등을 관리
  • 자원 배치와 인원 계획에 사용 가능
  • 다양한 형태로 변경 가능
  • 작업 경로를 표시할 수 없다.
  • 계획의 변화에 대한 적응성이 약하다.
  • 계획 수립 또는 수정 때 주관적 수치에 기울어지기 쉽다.
  • 이정표, 작업 일정, 작업 기간, 산출물로 구성

프로젝트 조직 구성 계획

분산형 팀 구성

  • 팀원 모두가 의사 결정에 참여하는 비이기적인 구성 방식
  • 민주주의식 팀 구성
  • 팀 구성원의 참여도와 만족도를 높이고 이직률을 낮게 한다.
  • 팀 구성원 각자가 서로의 일을 검토하고 다른 구성원이 일한 결과에 대해 같은 그룹의 일원으로 책임을 진다.
  • 여러 사람의 의사를 교류하므로 복잡하고 이해되지 않는 문제가 많은 장기 프로젝트 개발에 적합
  • 링 모양의 구조를 가진다.
  • 팀 구성 방법 중 가장 많은 의사 소통 경로를 갖는다.

중앙 집중형 팀 구성

  • 관리자가 의사 결정을 하고 그 결정에 따르는 구성 방식
  • 책임 프로그래머 팀 구성
  • 프로젝트 수행에 따른 모든 권한과 책임을 한 명의 관리자에게 위임하고 기술 및 관리 지원을 위해 인력을 투입하는 형태
  • 소규모 프로젝트에 적합
  • 프로젝트의 성공은 책임 프로그래머의 능력에 달렸다.
  • 책임 프로그래머에 따라 의사 결정이 이뤄지기 때문에 의사 결정이 빠르고 의사 교환 경로를 줄일 수 있다.
  • 책임 프로그래머 : 요구 분석 및 설계, 기술적 판단, 프로그래머 작업 지시 및 배분
  • 프로그래머 : 책임 프로그래머 지시에 따른 코딩, 테스트, 디버깅, 문서 작성
  • 프로그램 사서 : 프로그램 리스트, 설계 문서, 테스트 계획 관리
  • 보조 프로그래머 : 책임 프로그래머의 업무 지원, 기술적 문제에 대한 자문, 사용자와 품질 보등 담당자 섭외, 책임 프로그래머 감독 하 분석, 설계 구현 담당

계층적 팀 구성

  • 분산형과 중앙 집중형을 혼합한 형태로 혼합형 팀 구성
  • 초급 프로그래머를 작은 그룹으로 만들어 각 그룹을 고급 프로그래머가 관리
  • 경험자와 초보자를 구별
  • 기술 인력이 관리를 담당하게 되어 좋은 기술력을 사장시킬 수 있고, 기술 인력이 업무 관리 능력을 갖춰야한다.

소프트웨어 품질 보증

품질 표준

소프트웨어의 운영적인 특성, 소프트웨어의 변경 수용능력, 새로운 환경에 대한 소프트웨어의 적응 능력에 따라 분류

운영특성

  • 정확성 : Correctness 사용자의 요구 기능 충족
  • 신뢰성 : Reliability 요구된 기능을 오류 없이 수행하는 정도
  • 효율성 : Efficiency 소프트웨어가 자원을 쓸데없이 낭비하지 않아야한다.
  • 무결성 : Integrity 허용되지 않는 사용이나 자료의 변경을 제어하는 정도
  • 사용 용이성 : Usability 소프트웨어는 적절한 UI와 문서를 가지고 있어야한다.

변경 수용 능력

  • 유지보수성 : Maintainability 변경 및 오류 사항 교정에 대한 노력을 최소화 하는 정도, 소프트웨어를 진화하는 것이 가능해야 한다.
  • 유연성 : Flexibility 소프트웨어를 얼마만큼 쉽게 수정할 수 있는가의 정도
  • 시험 역량 : Testability 프로그램을 시험할 수 있는 정도

적응 능력

  • 이식성 : Portability 다양한 하드웨어 환경에 운용이 가능하도록 쉽게 수정될 수 있는 정도
  • 재사용성 : Reusability 전체나 일부 소프트웨어를 다른 목적으로 사용할 수 있는가의 정도
  • 상호 운용성 : Interoperability 다른 소프트웨어와 정보를 교환할 수 있는 정도

품질 보증

  • SQA = Software Quality Assurance
  • 어떠한 소프트웨어가 이미 설정된 요구사항과 일치하는가를 확인하는 데 필요한 개발 단계 전체에 걸친 계획적이고 체계적인 작업
  • 소프트웨어 개발 초기에 소프트웨어 특성과 요구사항을 철저히 파악하여 품질 목표를 설정하고, 개발 단계에서는 정형 기술 검토를 통해 품질 목표의 충족 여부를 점검하며, 개발 후에는 디버깅과 시험 과정을 거친다.

정형 기술 검토

  • FTR = Formal Technical Review
  • 가장 일반적인 검토 방법으로 소프트웨어 기술자들에 의해 수행되는 소프트웨어 품질 보증 활동
  • 검토회의, 검열 등이 있으며 회의 형태로 수행된다.
  • 검토중인 소프트웨어가 해당 요구사항과 일치하는지를 검증
  • 미리 정해진 표준에 따라 표현되는지를 확인
  • 기능과 로직에 오류가 있는지 확인
  • 소프트웨어가 균일한 방식으로 개발되도록 한다.
  • 프로젝트를 용이하게 관리하도록 한다.

정형 기술 검토 지침사항

  • 제품 검토에만 집중
  • 의제를 제한하여 진행
  • 논쟁과 반박을 제한
  • 문제 영역을 명확히 표현
  • 해결책이나 개선책에는 논하지 말라
  • 참가자의 수를 제한하고 사전 준비를 강요
  • 검토될 확률이 있는 각 제품에 대한 체크리스트 개발
  • 자원과 시간 일정을 할당
  • 모든 검토자들을 위해 훈련
  • 사전에 작성한 메모를 공유
  • 검토 과정과 결과를 재검토

정형 기술 검토 유형

Walkthrough

  • 검토 회의 = 워크스루
  • 소프트웨어 개발 각 단계에서 개최하는 기술 평가 회의
  • 소프트웨어 구성요소와 같은 작은 단위를 검토하는 것
  • 오류의 조기 검출을 목적으로 하며 발견된 오류는 문서화
  • 검출된 오류는 회의 후에 해결
  • 3~5명이 검토에 참여해야하며 두 시간 이내
  • 검토를 위한 자료를 미리 배포하여 검토, 미리 검토하는 시간도 두 시간 이내

Inspections

  • 검열 = 심사
  • 검토 회의를 발전시킨 형태
  • 소프트웨어 개발 단계에서 산출된 결과물의 품질을 평가하며 이를 개선시키는데 사용

기타

  • 검증 : Verification 설계의 각 과정이 올바른지, 프로그램이나 하드웨어에 오류가 있는지를 검사
  • 확인 : Validation 올바른 제품을 생산할 수 있도록 정의, 분석이 잘 되었는지를 검사
  • 인증 : Certification 사용자 또는 전문가가 소프트웨어 품질을 공식적으로 확인
  • 소프트웨어 시험 : Test
  • 오류 수정 : Debugging

소프트웨어 신뢰성과 가용성

  • 신뢰성 : 프로그램이 주어진 환경에서 주어진 시간동안 오류 없이 작동할 확률로 측정과 예측이 가능하다.
  • 가용성 : 한 프로그램이 주어진 시점에서 요구사항에 따라 운영되는 확률

측정

  • 신뢰성 측정은 MTBF를 이용한다.
  • MTBF
    • Mean Time Between Failure
    • 평균 고장 간격
    • 수리가 가능한 시스템이 고장난 후부터 다음 고장이 날 때까지의 평균 시간
    • MTBF = MTTF + MTTR
  • MTTF
    • Mean Time To Failure
    • 평균 가동 시간 = 고장 평균 시간
    • 수리 불가능한 시스템의 사용 시점부터 고장이 발생할 때까지의 가동 시간 평균
    • MTTF = (가동중1 + 가동중2 + 가동중3 + ... + 가동중 n) / n
  • MTTR
    • Mean Time To Repair
    • 평균 수리 시간
    • 시스템 고장이 발생하여 가동하지 못한 시간들의 평균
    • MTTR = (고장중1 + 고장중2 + 고장중3 + ... + 고장중 n) / n
  • 가용성 측정
    • 시스템의 총 운용 시간 중 정상적으로 가동된 시간의 비율
    • 가용성 = 가동시간 / (가동시간 + 고장시간) = MTBF / (MTBF + MTTR)

위험 관리

  • Risk Analysis
  • 프로젝트 추진 과정에서 예상되는 각종 돌발 상황을 미리 예상하고 대책을 수립하는 활동
  • 위험은 불확실성과 손실을 가지고 있는데, 위험관리로 대비한다.
  • 위험 식별 => 위험 분석 및 평가 => 위험 관리 계획 => 위험 감시 및 조치

범주

  • 프로젝트 위험 : Project Risk
  • 기술 위험 : Technical Risk
  • 비즈니스 위험 : Business Risk

종류

  • 인력 부족
  • 예산 관리
  • 일정 관리
  • 사용자 요구사항 변경 : 대표적 위험 요소

Charette가 제안한 종류

  • 알려진 위험 : 프로젝트 계획서, 기술적 환경, 정보 등에 의해 발견 될 수 있는 위험
  • 예측 가능한 위험 : 과거의 경험으로 예측 가능한 위험
  • 예측 불가능한 위험 : 사전 예측이 매우 어려운 위험

위험 분석 및 평가

  • 프로젝트에 내재한 위험 요소를 인식하고 그 영향을 분석하는 활동
  • 위험 추산(Risk Estimation) 작업을 통해 수행된다.
  • 가능한 모든 위험 요소와 영향을 분석하여 의사결정에 반영
  • 위험표(Risk Table)을 작성하여 활용한다.

위험표

  • 위험 내용
  • 위험 범주
  • 발생 확률
  • 영향력
  • 위험 감시 및 조치

위험 감시 및 조치

  • 위험 회피 : Risk Avoidance 예상하고 회피
  • 위험 감시 : Risk Monitoring 위험 요소 징후에 대해 계속적으로 인지하는 것
  • 위험 관리 : Risk Management
  • 비상 계획 수립 : Contingency Plan 위험 회피 전략이 실패할 경우 위험에 대해 관리하고 대비책과 비상 계획을 수립한다.

소프트웨어 형상 관리

  • SCM = Software Configuration Management
  • 소프트웨어 변경 사항을 관리하기 위해 개발된 일련의 활동
  • 소프트웨어 변경의 원인을 알아내고 제어하며 적절이 변경되고 있는지 확인하여 담당자에게 통보하는 작업
  • 형상 관리는 소프트웨어 개발의 전 단계에 적용되는 활동
  • 유지보수 단계에서도 수행
  • 형상 관리는 소프트웨어 개발의 전체 비용을 줄인다.
  • 개발 과정의 여러 방해 요인을 최소화시킨다.
  • 형상은 소프트웨어 각 개발 단계의 결과물

형상 항목

  • SCI = Software Configuration Item
  • 스시템 명세서
  • 소프트웨어 프로젝트 계획서
  • 소프트웨어 요구사항 명세와 실행가능한 프로토타입
  • 예비 사용자 매뉴얼
  • 설계 명세서
  • 원시 코드 목록
  • 테스트 계획, 절차, 시험 사례, 결과
  • 운영과 설치에 필요한 매뉴얼
  • 실행 프로그램
  • DB 기술서 : 스키마, 파일 구조, 초기 내용
  • 구축된 사용자 매뉴얼
  • 유지보수 문서 : 변경 요청서, 변경 처리 보고서
  • 소프트웨어 공학을 위한 표준과 절차

관리 기능

  • 형상 식별 : 대상에게 이름과 관리 번호를 부여하고 계층(트리)구조로 구분
  • 버전 제어 : 다른 버전과의 형상 항목을 관리하려 특정 절차와 도구를 결합시키는 작업
  • 변경 제어 : 형상 항목의 변경 요구를 검토해 현재의 기준선이 잘 반영될 수 있도록 조정
  • 형상 감사 : 기준선의 무결성을 평가
  • 형상 상태 보고

전통적 소프트웨어 개발 방법

  • 고전적 소프트웨어 개발 방법 = 구조적 소프트웨어 개발 방법
  • 과거의 많은 소프트웨어 개발 경험을 토대로하여 성공적으로 평가되는 소프트웨어 분석 및 설계 방법들을 집대성하여 하나의 개발 방법으로 정형화한 것

요구사항 분석

  • 소프트웨어 개발의 첫 단계
  • 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화하는 활동
  • 사용자 요구의 타당성을 조사하고 비용과 일정에 대한 제약 설정
  • 사용자 요구를 정확하게 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정
  • 요구사항 분석을 통한 결과는 소프트웨어 설계단계에서 필요한 자료가 된다.
  • 사용자의 요구사항을 정확하고 일관성있게 분석하여 문서화
  • 소프트웨어 분석가에 의해 요구사항 분석이 수행

요구사항 분석작업

  • 문제 인식 : 사용자 면담, 설문조사 및 협조, 문서 검토
  • 평가와 종합 : 요구사항에 대한 정보를 평가하고 해결책 종합
  • 모델 제작 : 내용을 이해하기 쉽도록 모델로 작성
  • 문서화와 검토 : 요구사항 분석 명세서 작성

요구사항 분석의 어려움

  • 대화 장벽 : 다이어그램 및 프로토타입 이용
  • 시스템의 복잡도 : 구조적 분석이나 객체지향 분석 이용
  • 요구의 변경 : 수정 요구와 상반된 요구들의 수용 기술 필요
  • 요구 명세화의 어려움 : 제도적인 요구 분석 기술 필요

분석가의 자질

  • 개발 경험이 많아야한다.
  • 사용자의 요구를 정확히 수용하고 환경을 이해해야한다.
  • 설계에 필요한 자료를 충분히 제공
  • 시간 배정과 계획을 빠른 시간내에 파악
  • 하드웨어 소프트웨어를 포함한 컴퓨터 기술에 대한 이해
  • 고객 관점에서의 문제 파악

구조적 분석 기법

  • 자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법
  • 도형 중심의 도구를 사용하므로 분석가와 사용자 간의 대화가 용이
  • 하향식 방법을 사용해 시스템을 세분화하고 분석의 중복을 배제할 수 있다.
  • 자료흐름도, 자료사전, 소단위 명세서, 개체 관계도, 상태 전이도, 제어 명세서

구조적 분석 도구

자료 흐름도

  • DFD = Data Flow Diagram = 자료 흐름 그래프 = 버블 차트
  • 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법
  • 시스템 안의 프로세스와 자료 저장소 사이의 자료 흐름을 나타내는 그래프
  • 자료흐름과 처리를 중심으로하는 구조적 분석 기법
  • 자료 흐름과 기능을 자세히 표현하기 위해 단계적으로 세분화된다.
  • 자료는 처리(프로세스)를 거쳐 변환될 때마다 새로운 이름이 부여된다.
  • 처리는 입력 자료가 발생하면 기능을 수행한 후 출력 자료를 산출한다.
  • 자료 흐름도를 세분화 할 수 록 소프트웨어 설계와 구현작업이 용이해진다.

자료흐름도

자료 흐름도 구성요소

  • 프로세스
    • 자료를 변환시키는 시스템의 한 부분을 나타낸다.
    • 처리 = 기능 = 변환 = 버블
    • 원이나 둥근 사각형으로 표시하고 안에 프로세스 이름을 적는다.
  • 자료 흐름
    • Data Flow
    • 자료의 흐름이나 연관관계를 나타낸다.
    • 화살표 위에 자료의 이름을 적는다.
  • 자료 저장소
    • Data Store
    • 시스템에서의 자료 저장소를 나타낸다.
    • 파일, 데이터베이스
    • 도형 안에 자료 저장소 이름을 적는다.
  • 단말
    • Terminator
    • 시스템과 교신하는 외부 개체
    • 입력 데이터가 만들어지고 출력 데이터를 받는다.
    • 정보의 생산자와 소비자
    • 도형 안에 이름을 적는다.

자료 사전

  • DD = Data Dictionary = 데이터의 데이터 = Meta Data
  • 자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것
  • 데이터를 설명하는 데이터

자료 사전 기호

  • = : 자료의 정의 is composed of
    • : 자료의 연결 and
  • ( ) : 자료의 생략 optional
  • [ | ] : 자료의 선택 or
  • : 자료의 반복 Iteration of
  • * * : 자료의 설명 comment

소단위 명세서

  • Mini Specification = 프로세스 명세서
  • 세분화된 자료 흐름도에서 최하위 단계 프로세스의 처리 절차를 기술한 것
  • 분석가의 문서
  • 자료 흐름도를 지원하기 위해 작성
  • 서술 문장, 구조적언어, 의사결정나무, 의사 결정표, 그래프 등을 이용해 기술

개체 관계도

  • ERD = Entity Relationship Diagram
  • 시스템에서 처리되는 개체와 개체의 구성과 속성, 개체 간의 관계를 표현하여 자료를 모델화하는 데에 사용
  • Entity, Attribute, Relationship으로 구성

상태 전이도

  • STD = State Transition Diagram
  • 시스템에 어떤 일이 발생할 경우 시스템의 상태와 상태 간의 전이를 모델화한 것
  • 상태 전이도를 통해 개발자는 시스템의 행위를 정의할 수 있다.

CASE

요구사항 분석을 위한 자동화 도구

  • SADT : Structured Analysis and Design Technique
  • SREM : Software Requirements Engineering Methodology = RSL/REVS
  • PSL/PSA : Problem Statement Language / Problem Statement Analyzer
  • TAGS : Technology for Automated Generation of Systems

HIPO

  • Hierarchy Input Process Output
  • 시스템의 분석 및 설계나 문서화할 때 사용되는 기법
  • 기본 시스템 모델은 입력, 처리, 출력으로 구성
  • 하향식 소프트웨어 개발을 위한 문서화 도구
  • 기호, 도표 등을 사용하므로 이해하기 쉽다.
  • 기능과 자료의 의존 관계를 동시에 표현할 수 있다.
  • 변경, 유지보수가 쉽다.

HIPO Chart

  • 시스템의 기능을 여러 개의 고유 모듈로 분할하여 이들 간의 인터페이스를 계층 구조로 표현한 것
  • 가시적 도표, 총체적 도표, 세부적 도표가 있다.

가시적 도표

  • 도식 목차 = Visual Table of Contents
  • 시스템 전체적인 기능과 흐름을 보여주는 트리 구조도

총체적 도표

  • 총괄 도표 = 개요 도표 = Overview Diagram
  • 프로그램을 구성하는 기능을 기술한 것
  • 입력, 출력, 처리에 대한 전반적인 정보를 제공

세부적 도표

  • 상세 도표 = Detail Diagram
  • 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표

설계

  • 구조적 분석 기법의 결과물인 자료 흐름도 등으로 소프트웨어 기능과 프로그램 구조, 모듈 설계 전략, 평가 지침, 문서화 도구를 제공하는 체계화된 기법
  • 자료 흐름 중심 설계 기법
  • 자료 흐름도, 자료 사전, 개체 관계도, 소단위 명세서가 준비된 이후에 설계

설계 모형

  • 데이터 설계, 구조 설계, 인터페이스 설계, 프로시저 설계로 구성된다.
  • 소프트웨어 품질 평가를 위한 지침

데이터 설계

  • Data Design
  • 요구사항 분석 단계에서 생성된 정보를 소프트웨어를 구현하는데 필요한 자료 구조로 변환하는 것
  • ERD를 이요하여 정의된 개체와 관계, 자료 사전에 정의된 자료의 설명 등이 데이터 설계의 기초가 된다.

구조 설계

  • Architectural Design
  • 소프트웨어를 구성하는 모듈 간의 관계와 프로그램 구조를 정의하는 것
  • DFD, DD, STD 등과 모듈의 상호 작용이 구조 설계의 기초가 된다.

인터페이스 설계

  • Interface Design
  • 소프트웨어와 상호 작용하는 시스템, 사용자 등과 어떻게 통신하는지를 기술하는 것
  • DFD 등이 인터페이스 설계의 기초가 된다.

프로시저 설계

  • 절차 설계
  • 모듈이 수행할 기능을 절차적 기술로 바꾸는 것
  • 소단위 명세서, 상태 전이도의 정보가 절차 설계의 기초가 된다.

기타 분류

  • 사용자적 관점
    • 내부 설계 : 시스템 내부 조직과 세부 절차를 개념화하고 명세화
    • 외부 설계 : 시스템 외부 특성 명세화
  • 관리적 관점
    • 기본 설계 : 요구사항 분석 단계에서 생성된 정보를 자료 구조와 소프트웨어 구조로 변경
    • 상세 설계 : 기본 설계 사항을 구체적인 자료 구조와 알고리즘으로 표현

설계 기본 원리

모듈화

  • Modularity
  • 소프트웨어를 모듈 단위로 나누는 것

추상화

  • Abstraction = 개념화
  • 문제의 세부 사항을 먼저 설계하기 보다는 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하여 구체화시켜 나가는 설계 방법
  • 기능 추상화 : 입력 자료를 출력 자료로 변환하는 과정을 추상화하는 방법
  • 제어 추상화 : 제어의 정확한 메커니즘을 정의하지 않고 원하는 효과를 정하는 데 이용하는 방법
  • 자료 추상화 : 자료와 자료에 적용될 수 있는 기능을 함께 정의함으로써 자료 객체를 구성하는 방법

단계적 정제

  • Stepwise Refinement
  • 문제를 사윙의 중요 개념으로부터 하위의 개념으로 구체화시키는 분할 기법

정보 은닉

  • Information Hiding
  • 한 모듈 내부에 포함된 절차와 자료들의 정보가 감추어져 다른 모듈이 접근하거나 변경하지 못하도록 하는 기법
  • 모듈을 독립적으로 수행할 수 있고, 하나의 모듈이 변경되더라도 다른 모듈에 영향을 주지 않으므로 수정, 시험, 유지보수가 쉽다.

프로그램 구조

  • Program Structure = 제어 계층 구조
  • 모듈의 계층적 구성을 나타내는 것
  • 일반적으로 트리 구조의 다이어그램으로 표기
  • 공유도 : Fan - In 어떤 모듈을 제어(호출)하는 모듈의 수
  • 제어도 : Fan - Out 어떤 모듈에 의해 제어(호출)되는 모듈의 수

자료 구조

  • 자료 사이의 논리적인 관계를 표현한 것

좋은 설계

  • 소프트웨어 구조를 나타내야한다.
  • 독립적인 기능적 특성을 가진 요소(모듈)로 구성되어야 한다.
  • 특정 기능 또는 부기능을 수행하는 논리적 요소들로 분리되는 구조를 가져야 한다.
  • 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료조직이 제시되어야 한다.
  • 자료와 프로시저에 대한 분명하고 분리된 표현을 포함해야 한다.
  • 모듈 간과 외부 개체 간의 연결 복잡성을 줄이는 인터페이스를 가져야 한다.
  • 요구사항 분석에서 얻어진 정보를 이용하여 반복적인 방법으로 이루어져야 한다.
  • 요구사항을 모두 구현해야 하고, 유지보수가 쉬워야한다.
  • 모듈의 기능을 예측할 수 있도록 정의한다.
  • 적당한 모듈의 크기를 유지한다.
  • 모듈 간의 결합도는 낮추고 응집도는 높인다.
  • 전체적이고 포괄적인 개념을 설계한 후 차례대로 세분화하여 구체화시켜 나간다.
  • 이식성을 고려한다.

모듈

  • 모듈화 : 소프트웨어를 각 기능별로 분할하는 것
  • 모듈 : 각 기능별로 분할한 것

기능적 독립성

  • 모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 독립됨을 의미
  • 모듈화, 추상화, 정보 은닉의 부산물
  • 모듈이 하나의 기능만을 수행하고 다른 모듈과의 과도한 상호작용을 배제
  • 독립된 모듈은 특정 기능을 수행하고 다른 모듈과는 간단한 인터페이스만을 가지므로 개발이 쉽고 재사용이 가능
  • 독립성이 높은 모듈일 수록 모듈을 수정하더라도 다른 모듈에게는 영향을 미치지 않음
  • 오류가 발생해도 쉽게 발견할 수 있고 해결 가능
  • 결합도와 응집도에 의해 측정되며 결합도는 약하게, 응집도를 강하게 하고 모듈의 크기를 작게 만들어야한다.
  • 결합도와 응집도는 소프트웨어 설계시 평가 지침이 된다.

결합도

  • Coupling
  • 모듈 간에 상호 의존하는 정도
  • 각 모듈 간의 결합도가 약해야 하며 의존하는 모듈이 적어야한다.
  • 결합도가 강하면 시스템 구현 및 유지보수 작업이 어렵다.

결합 정도

약함강함
자료 결합도스탬프 결합도제어 결합도외부 결합도공통 결합도내용 결합도

자료 결합도

  • Data Coupling
  • 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도
  • 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주고, 호출받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 것
  • 모듈 간의 내용을 전혀 알 필요가 없는 상태로 한 모듈의 내용을 변경하더라도 다른 모듈에는 전혀 영향을 미치지 않는 가장 좋은 결합도

스탬프 결합도

  • Stamp Coupling = 검인 결합도
  • 모듈 간의 인터페이스로 배열이나 레코드 등의 자료구조가 전달될 때의 결합도
  • 두 모듈이 동일한 자료 구조를 조회하는 경우의 결합도

제어 결합도

  • Control Coupling
  • 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어신호를 이용하여 통신하거나 제어 요소를 전달하는 결합도
  • 상위 모듈이 하위 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우 발생
  • 권리 전도현상이 발생

외부 결합도

  • External Coupling
  • 모듈에서 외부로 선언한 데이터(변수)를 다른 모듈에서 참조할 때의 결합도

공통 결합도

  • Common Coupling = 공유 결합도
  • 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
  • 공통 데이터 영역이 내용을 변경하면 이를 사용하는 모든 모듈에 영향을 미친다.

내용 결합도

  • Content Coupling
  • 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도
  • 모듈에서 다른 모듈로 제어가 이동하는 경우에도 내용 결합도

응집도

  • Cohesion
  • 정보 은닉 개념을 확장한 것
  • 명령어나 호출문 등 모듈의 내부 요소들의 서로 관련되어 있는 정도
  • 모듈이 독립적인 기능으로 정의되어 있는 정도
  • 독립적인 모듈이 되기 위해서는 각 모듈의 응집도가 강해야한다.

응집 정도

강함약함
기능적 응집도순차적 응집도교환적 응집도절차적 응집도시간적 응집도논리적 응집도우연적 응집도

기능적 응집도

  • Functional Cohesion
  • 모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우

순차적 응집도

  • Sequential Cohesion
  • 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도

교환적 응집도

  • Communication Cohesion = 통신적 응집도
  • 동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도

절차적 응집도

  • Procedural Cohesion
  • 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도

시간적 응집도

  • Temporal Cohesion
  • 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도

논리적 응집도

  • Logical Cohesion
  • 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도

우연적 응집도

  • Coincidental Cohesion
  • 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도

효과적인 모듈 설계

  • 결합도는 줄이고 응집도는 높여 모듈의 독립성을 높인다.
  • 모듈의 제어영역에서 모듈의 영향영역을 유지시킨다.
  • 복잡도와 중복성을 줄이고 일관성을 유지시킨다.
  • 모듈의 기능은 예측이 가능해야한다.
  • 유지보수가 쉬어야한다.
  • 모듈 크기는 시스템의 전반적인 기능과 구조를 이해하기 쉬운 크기로 분해한다.
  • 하나의 입구와 하나의 출구를 갖도록 한다.

설계 방법

자료설계

  • 설계의 첫번째 작업
  • 요구사항 분석에서 생성된 여러 모델들을 소프트웨어를 구현하는 데 필욯나 자료 구조로 변환하는 것

구조 설계

  • 프로그램 구조를 개발하고 소프트웨어 구성 요소들 간의 관계를 정의하는 것
  • 구조 도표 : 소프트웨어 기능을 몇 개의 고유 기능으로 분할하여 블랙 박스로 나타내고 블랙 박스 간의 인터페이스를 계층 구조로 표현하는 것
  • 변환 분해 접근법 : DFD를 흐름에 따라 구분하여 프로그램 구조 도표로 변환시키는 방법
  • 거래 분해 접근법 : DFD에서 거래에 해당하는 부분을 중심으로 자료 흐름도를 거래 중심 구조 도표로 변환하는 방법

구조적 설계 절차

  1. 정보 흐름의 유형을 설정
  2. 흐름의 경계를 표시
  3. 자료 흐름도를 프로그램 구조로 사상
  4. 제어 계층을 분해시켜서 정의
  5. 경험적 방법으로 구체화

인터페이스 설계

소프트웨어 상호 작용하는 시스템, 사용자 등과 어떻게 통신하는지를 기술하는 과정

인터페이스 경고 메세지 지침

  • 메세지 내용을 이해하기 쉬어야한다.
  • 오류 회복을 위한 구체적인 설명이 제공되어야 한다.
  • 소리나 색을 이용해 듣거나 보기 쉽도록 의미를 전달해야 한다.
  • 오류로 인해 발생될 수 있는 부정적 내용은 절대 사용하면 안 된다.

UI 평가 기준

  • 소프트웨어 사용법을 쉽게 배울 수 있고, 특정 기능 수행 속도가 빨라야한다.
  • 사용중 오류 발생 빈도가 적어야한다.
  • 소프트웨어를 사용하는 사용자의 만족을 충족시켜야 한다.
  • 소프트웨어 사용법을 쉽게 기억할 수 있도록 제작되어야 한다.

프로시저 설계

  • 절차 설계는 데이터, 아키텍쳐, 인터페이스 설계가 이뤄진 후 수행되는 설계 작업
  • 모듈이 수행할 기능을 절차적 기술로 바꾸는 것
  • 코드에 가까운 추상화 수준의 모듈 명세서를 작성하는 것
  • 그래픽 설계 표기법이나 프로그램 설계 언어 등을 사용해서 나타낸다.

흐름도

  • 그래픽 설계 표기법
  • Flowchart

N-S 차트

NS Chart

  • Nassi-Schneiderman Chart = 박스 다이어그램 = Chapin Chart
  • 그래픽 설계 표기법
  • 논리의 기술에 중점을 둔 도형을 이용한 표현 방법
  • 박스를 기본 요소로 하여 연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조를 표현
  • GOTO나 화살표를 사용하지 않는다.
  • 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는 데 적합하다.
  • 선택과 반복 구조를 시각적으로 표현한다.
  • 이해하기 쉽고, 코드 변환이 용이하다.
  • 읽기는 쉽지만 작성하기가 어렵다.
  • 임의로 제어를 전이하는 게 불가능하다.
  • 총체적인 구조 표현과 인터페이스를 나타내기가 어렵다.
  • 단일 입구와 단일 출구로 표현한다.

프로그램 설계 언어

  • PDL = Program Design Language = 의사 코드 = Pseudo Code = 구조적 영어
  • 영어 단어를 이요해 구조적 프로그래밍의 제어 구조를 기술하는 것
  • 하향식 접근 방식으로 논리의 전체 흐름을 표현한다.
  • 사용자와의 의사소통을 용이하게 한다.
  • 현재 프로그래밍 언어와 유사한 서술적 표현에 의해 프로그램, 설계, 시스템 검토, 문서화 기법에 사용된다.

자료 구조 중심 설계

  • 자료 구조 중심 분석 기법에서 생성한 요구사항 분석 명세서를 토대로 입력과 출력 자료 구조로부터 프로그램의 구조와 세부 절차를 도출해 내는 방법
  • Jackson의 JSD, Warnier-Orr의 DSSD

구현

  • 설계 단계에서 생성된 설계 명세서를 컴퓨터가 알 수 있는 모습으로 변환하는 과정
  • 프로그래밍 = 코딩
  • 각 모듈을 프로그래밍 언어를 사용해 원시 코드로 작성하고 문서화하는 작업
  • 설계를 철저히 반영시키고 원시 코드를 간단 명료하게 작성한다.
  • 사용할 프로그램이 언어와 코딩 스타일 등을 결정해야한다.

프로그래밍 언어

  • 1세대 : 기계어, 어셈블리어
  • 2세대 : FORTRAN, ALGOL, COBOL, BASIC
  • 3세대 : PL/1, PASCAL, C, Lisp, C++
  • 4세대 : 비절차적 언어, 자연언어, 사용자 중심언어, 응용 프로그램 생성기 언어, 프로토타입 언어, SQL, 정보 검색어, 보고서 작성기

구조적 프로그래밍

  • Dijkstra에 의해 제안
  • 신뢰성 있는 소프트웨어의 생산과 코딩의 표준화 등을 위해 개발
  • 순차, 선택, 반복 (Sequence, Selection, Iteration)

검사

Test

검사 사례 설계 고려사항

  • 모듈 내의 모든 독립적인 경로가 적어도 한 번은 수행되어야 한다.
  • 가능한 복잡한 논리는 배제한다.
  • 임의의 조건을 만족시켜야 한다.
  • 내부 자료 구조를 사용하여 테스트를 수행한다.

화이트 박스 테스트

  • 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 검사하여 검사 사례를 설계하는 방법
  • 설계된 절차에 초점을 둔 구조적 테스트
  • 프로시저 설계의 제어 구조를 사용하여 검사 사례를 설계한다.
  • 테스트 초기에 적용된다.
  • 모듈 안 작동을 직접 관찰한다.
  • 원시 코드의 모든 문장을 한 번 이상 수행한다.
  • 논리 흐름도, 루프 구조, 순환 복잡도에 관한 오류를 찾을 수 있다.
  • 기초 경로 검사, 제어 구조 검사 (조건 검사, 루프 검사, 데이터 흐름 검사)

기초 경로 검사

  • Basic Path Testing
  • Tom McCabe가 제안
  • 대표적인 화이트 박스 테스트
  • 절차
    1. 흐름도 작성
    2. 논리적 복잡도 측정
    3. 독립 경로들의 기초 집합 결정
    4. 기초 집합의 각 경로를 실행시키는 검사 사례 선정
  • 제어 흐름도
    • 제어 흐름을 표현하기 위해 사용되는 그래프
    • 프로그램 그래프 = 흐름 그래프
    • 노드(원) : 절차적 명령문
    • 화살표 : 제어의 흐름
    • 영역 : 화살표와 노드로 둘러싸인 구역, 외부 구역도 하나의 영역에 포함된다.
  • 순환 복잡도
    • 한 프로그램의 논리적인 복잡도를 측정하기 위한 소프트웨어의 척도
    • 제어 흐름도 이론에 기초를 둔다.
    • 순환 복잡도는 제어 흐름도의 영역 수와 일치하므로 영역 수를 계산한다.
    • 순환복잡도 = 화살표 수 - 노드 수 + 2

제어 구조 검사

  • 조건 검사
    • Condition Testing
    • 모듈 내에 있는 논리적 조건을 검사하는 검사 사례 설계 기법
  • 루프 검사
    • Loop Testing
    • 반복 구조에 초점을 맞춰 실시하는 검사 사례 설계 기법
    • 초기화 오류, 인덱싱 증가 오류, 경계값 오류 등을 발견할 수 있다.
  • 데이터 흐름 검사
    • Data Flow Testing
    • 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 검사 사례 설계 기법

블랙 박스 테스트

  • 소프트웨어가 수행할 특정 기능을 알기 위해 각 기능이 완전히 작동되는 것을 입증하는 검사
  • 기능 검사
  • 소프트웨어 인터페이스에서 실시되는 검사
  • 테스트 과정 후반부에 적용
  • 적합한 입력에 대한 출력의 정확성을 점검
  • 동치 분할 검사, 경계값 분석, 원인효과 그래프 검사, 오류 예측 검사, 비교 검사

동치 분할 검사

  • Equivalence Partitioning Testing = 동등 분할 기법
  • 입력 자료에 초점을 맞춰 검사 사례를 만들고 검사하는 방법
  • 입력 조건에 타당한 입력 자료와 그렇지 않는 입력 자료의 개수를 균등하게 하여 검사 사례를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 방법

경계값 분석

  • Boundary Value Analysis
  • 입력 자료에만 치중한 동치 분할 기법을 보완하기 위한 기법
  • 입력 조건의 중간 값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용
  • 입력 조건의 경계값을 검사 사례로 선정

원인효과 그래프 검사

  • Cause-Effect Graphing Testing
  • 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석하여 효용성이 높은 검사 사례를 선정하여 검사하는 기법
  • 그래프로 표현한다.

오류 예측 검사

  • Fault Based Testing = Mutation Testing = 데이터 확인 검사
  • 과거의 경험이나 확인자의 감각으로 검사하는 기법
  • 보충적 검사 기법

비교 검사

  • Comparison Testing
  • 여러 버전의 프로그램에 동일한 검사 자료를 제공해 동일한 결과가 출력되는지 검사하는 기법

검사 전략

  • 설계된 검사 사례를 수행하는 것
  • 단위 검사 : 프로그램의 기본 단위인 모듈 수준에서 시작
  • 통합 검사 : 단위 검사 후 모듈을 결합하여 전체 시스템에 대해 검사
  • 검증 검사 : 사용자의 요구사항을 충족시키는가를 검사
  • 시스템 검사 : 개발된 소프트웨어가 컴퓨터 시스템에서 완벽하게 수행되는지를 검사

단위 검사

  • Unit Test
  • 코딩이 이뤄진 후 모듈에 초점을 맞춰 검사하는 것
  • 화이트 박스 테스트 기법을 사용
  • 인터페이스, 외부적 I/O, 자료구조, 독립적 기초 경로, 오류 처리경로, 경계 조건 등을 검사

통합 검사

  • Integration Test
  • 단위 검사가 완료된 모듈을 결합하여 하나의 시스템으로 완성시키는 과정에서의 검사
  • 모듈 간 인터페이스와 연관된 오류를 밝히기 위한 검사 기법

비점진적 통합 방식

  • 단계적으로 통합하는 절차 없이 모든 모듈이 미리 결합되어 프로그램 전체를 검사하는 방법
  • 전체 프로그램을 대상으로 하므로 오류 발견이 힘들고 수정이 어렵다.

점진적 통합 방식

  • 모듈 단위로 단계적으로 통합하면서 검사하는 방식
  • 하향식, 상향식, 혼합식 통합 방식이 있다.
  • 오류 수정이 용이하고 인터페이스와 연관된 오류를 완전히 검사할 가능성이 높다.

하향식 통합 검사

  • Top Down Integration Test
  • 프로그램 상위 모듈에서 하위 모듈 방향으로 통합하면서 검사
  • 주요 제어 모듈을 드라이버로 사용하고, 주요 제어 모듈의 종속 모듈들은 스터브로 대체한다.
  • 스터브 : 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈
  • 스터브 사용 이유 : 상위 모듈은 하위 모듈이 모두 결합되어야 정상적으로 검사될 수 있으므로 스터브를 사용해서 검사한다.

상향식 통합 검사

  • Bottom Up Integration Test

  • 프로그램 하위 모듈에서 상위 모듈 방향으로 통합하면서 검사

  • 순서

    1. 하위 모듈을 클러스터로 결합
    2. 검사 사례 입출력을 조정하기 위해 드라이버를 작성
    3. 클러스터 검사
    4. 드라이버를 제거하고 클러스터는 프로그램 구조의 상위로 이동하여 결합

혼합식 통합 검사

  • 하위 수준에서는 상향식 통합, 상위 수준에서는 하향식 통합을 사용해 쵲거의 검사를 지원하는 방식
  • 샌드위치식 통합 검사 방법

검증 검사

  • Validation Test = 확인 검사 = 인수 검사
  • 소프트웨어가 사용자의 요구사항을 충족시키는가를 중점으로 검사
  • 블랙 박스 테스트를 이용하여 진행
  • 형상 검사, 알파 검사, 베타 검사 등이 있다.

형상 검사

  • 구성 검토 = 감사
  • 소프트웨어 구성요소, 목록, 유지보수를 지원하기 위해 필요한 모든 사항들이 제대로 표현되었는지를 검사

알파 검사

  • 개발자의 장소에서 사용자가 개발자 앞에서 행하는 검사 기법
  • 통제된 환경에서 행해지며 오류를 사용자와 개발자가 함께 확인하면서 기록한다.

베타 검사

  • 선정된 최종 사용자가 여러 명의 사용자 앞에서 행하는 검사 기법
  • 실업무를 가지고 사용자가 직접 시험하는 것
  • 개발자에 의해 제어되지 않은 상태에서 검사가 행해지며, 오류는 기록 후 개발자에게 주기적으로 보고한다.

시스템 검사

  • 개발된 소프트웨어가 해당 컴퓨터 시스템에서 완벽하게 수행되는가를 검사
  • 복구 검사, 보안 검사, 강도 검사, 성능 검사
  • 복구 검사 : 실패 후 올바르게 복구되는가
  • 보안 검사 : 침투로부터 시스템이 보호되는가
  • 강도 검사 : 비정상적인 양, 빈도로 호출시 소프트웨어가 실행되는가
  • 성능 검사 : 소프트웨어 실시간 성능을 검사하기 위한 것으로 검사 단계 전 과정에 걸쳐 수행

디버깅

  • 검사사례에 의해 오류를 찾은 후 그 오류를 수정하는 과정
  • 검사기법은 아니다.
  • 맹목적 강요 : 가장 비효율적 방법
  • 역추적 : Backtracking 오류가 발견된 위치에서 원인이 발견될 때까지의 코딩 부분을 거슬러 수정하는 일반적인 방법
  • 원인 제거 : Cause Elimination 오류 가능성이 있는 원인을 제거해 버그를 분리

단위 검사 : 코드 통합 검사 : 설계 검증 검사 : 요구사항

유지보수

  • 소프트웨어 개발 단계 중 가장 많은 노력과 비용이 투입되는 단계
  • 시험 용이성, 이해성, 수정 용이성, 이식성이 고려되어야 한다.
  • 수리 보수, 적응 보수, 완전화 보수, 예방 보수 활동으로 구분된다.

수정 보수

  • Corrective
  • 시스템을 운영하면서 검사 단계에서 발견핟지 못한 잠재적인 오류를 찾아 수정하는 활동
  • 오류의 수정과 진단을 포함한다.

적응 보수

  • Adaptive = 환경 적응 = 조정 보수
  • 소프트웨어 수명 기간 중 발생하는 환경의 변화(하드웨어, OS)를 기존 소프트웨어에 반영하기 위해 수행하는 활동
  • 프로그래밍 환경의 변화 또는 주변장치, 시스템 요소의 업그레이드시 대처할 수 있는 유지보수 활동

완전화 보수

  • Perfective = 기능 개선 = 기능 보수
  • 소프트웨어 본래 기능에 새로운 기능을 추가하거나 성능을 개선하기 위해 소프트웨어를 확장시키는 활동
  • 유지보수 활동 중 가장 큰 업무 및 비용을 차지한다.

예방 보수

  • Preventive = 소프트웨어 재공학
  • 소프트웨어의 오류 발생에 대비하여 미리 예방 수단을 강구하는 활동

유지보수 과정

  1. 유지보수 요구
  2. 현 시스템에 대한 이해
  3. 수정 및 시험

유지보수 비용

  • 소프트웨어 개발에 필요한 비중 중 약 70%
  • Belady, Lehman에 의해 제안된 공식으로 구한다.

image from hexo

유지보수 부작용

  • 코딩 부작용 : 코딩 내용 변경으로 발생
  • 자료 부작용 : 자료나 자료 구조의 변경으로 발생
  • 문서화 부작용 : 자료 코드에 대한 변경이 설계문서나 사용자 매뉴얼에 반영되지 않을 때 발생

외계인 코드

  • Alien Code
  • 아주 오래 전에 개발되어 유지보수 작업이 매우 어려운 프로그램
  • 일반적으로 15년이 더 된 프로그램
  • 문서화로 방지할 수 있다.

객체지향 소프트웨어 공학

  • 현실 세계의 개체를 기계의 부품처럼 하나의 객체로 만들어 부품을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때에도 객체들을 조립해서 작성할 수 있도록 하는 기법
  • 구조적 기법의 문제점 해결
  • 소프트웨어 재사용 및 확장을 용이하게 해서 빠르게 개발이 가능하고 유지보수가 쉽다.
  • 복잡한 구조를 단계적, 계층적으로 표현한다.
  • 멀티미디어 데이터 및 병령 처리를 지원한다.
  • 현실 세계를 모형화하여 사용자와 개발자가 쉽게 이해할 수 있다.

객체

  • Object
  • 데이터와 데이터를 처리하는 함수를 묶어 놓은 하나의 소프트웨어 모듈
  • 데이터
    • 객체가 가지고 있는 정보로 속성이나 상태, 분류를 나타낸다.
    • 속성 = Attribute = 상태 = 변수 = 상수 = 자료 구조
  • 함수
    • 객체가 수행하는 기능으로 객체가 갖는 데이터를 처리하는 알고리즘
    • 객체의 상태를 참조하거나 변경하는 수단이 되는 것
    • 메소드 = 서비스 = 동작 = 연산
    • 기존 구조적 기법에서의 함수, 프로시저에 해당하는 연산 기능
  • 객체는 상태와행위를 가지고 있다.
  • 다른 객체와 구별될 수 있는 이름을 가지고 있다.
  • 일정한 기억 장소를 가지고 있다.
  • 객체의 메소드는 다른 객체로부터 메세지를 받을 때 수행하게 된다.

클래스

  • 공통된 속성과 연산을 갖는 객체의 집합
  • 객체의 일반적인 타입을 의미
  • 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀
  • 인스턴스 : 클래스에 속한 각각의 객체
  • 인스턴스화 : 클래스로부터 새로운 객체를 생성하는 것
  • 최상위 클래스는 상위 클래스를 갖지 않는 유일한 클래스
  • 슈퍼클래스는 특정 클래스의 상위 클래스
  • 서브클래스는 특정 클래스의 하위 클래스

메세지

  • 객체들 간에 상호작용을 하는 데 사용되는 수단
  • 객체에게 어떤 행위를 하도록 지시하는 명령 또는 요구사항
  • 메세지를 받은 수신 객체는 요구된 메소드를 수행한다.

객체지향 기법의 기본 원칙

캡슐화

  • Encapsulation
  • 데이터와 데이터를 처리하는 함수를 하나로 묶는 것
  • 캡슐화된 객체의 세부내용이 외부에 은폐된다.
  • 캡슐화된 객체는 재사용이 용이하다.
  • 객체 간의 메세지를 주고받을 때 각 객체의 세부 내용은 알 필요가 없으므로 인터페이스가 단순해지고 객체 간의 결합도가 낮아진다.

정보 은닉

  • Information Hiding
  • 캡슐화에서 가장 중요한 개념
  • 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것
  • 각 객체의 수정이 다른 객체에 주는 영향을 최소화하는 기술
  • 유지보수와 소프트웨어 확장시 오류를 최소화

추상화

  • Abstraction
  • 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 모델화하는 것

상속성

  • Inheritance
  • 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
  • 다중 상속성 : Multiple Inheritance 한 개의 클래스가 두 개 이상의 상위 클래스로부터 속성과 연산을 상속받는 것

다형성

  • Polymorphism
  • 객체들은 동일한 메소드명을 사용하며 같은 의미의 응답을 한다.
  • 응용 프로그램 상에서 하나의 함수나 연산자가 두 개 이상의 서로 다른 클래스의 인스턴스들을 같은 클래스에 속한 인스턴스처럼 수행할 수 있도록하는 것

객체지향 기법의 생명주기

각 과정이 명확하게 순찾거으로 이루어지지는 않는다.

  1. 계획 및 분석
  2. 설계
  3. 구현
  4. 테스트 및 검증

객체지향 분석

  • OOA = Object Oriented Analysis
  • 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스, 연관된 속성과 연산, 관계 등을 정의하여 모델링 하는 작업
  • 소프트웨어를 개발하기 위한 비즈니스를 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나눠서 분석한다.
  • 분석가에게 주요한 모델링 구성요소인 클래스, 속성, 연선달을 표현해서 문제를 모형화할 수 있게 해준다.
  • 객체는 클래스로부터 인스턴스화되고, 클래스를 식별하는 것이 객체지향 분석의 주요한 목적이다.

객체지향 분석 방법론

Rumbaugh 방법

  • 럼바우 방법
  • 가장 일반적으로 사용되는 방법
  • 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행

Booch 방법

  • 부치 방법
  • 미시적Micro 개발 프로세스와 거시적Macro 개발 프로세스 모두를 사용하는 분석 방법
  • 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의한다.

jacobson 방법

  • Use Case를 강조하여 사용하는 분석 방법이다.

Coad와 Yourdon 방법

  • E-R 다이어그램을 사용하여 객체의 행위를 모델링한다.

Wirfs-Brock 방법

  • 분석과 설계 간의 구분이 없고 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 기법

Rumbaugh 분석 기법

  • 모든 소프트웨어 구성요소를 그래픽 표기법을 이용하여 모델링하는 기법
  • 객체 모델링 기법 = OMT = Object Modeling Technique
  • 객체 모델링, 동적 모델링, 기능 모델링을 통해 이뤄진다.

객체 모델링

  • Object Modeling = 정보 모델링
  • 관계를 규정하여 객체 다이어그램으로 표시하는 것
  • 분석 활동의 모델 중 가장 중요하며 선행되어야 할 모델링
  • 순서
    1. 객체와 클래스를 식별
    2. 클래스에 대한 자료 사전 작성
    3. 클래스 간의 관계를 정의
    4. 객체 속성 및 연결 관계 정의
    5. 클래스를 계층화하고 모듈로 정의
    6. 생성된 모형을 반복적으로 검증

동적 모델링

  • Dynamic Modeling
  • 상태 다이어그램(상태도)을 이용하여 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링
  • 객체나 클래스의 상태, 사건을 중심으로 다룬다.
  • 사건 : 하나의 객체로부터 다른 객체에 자극을 주어 객체의 상태를 변화시키는 것
  • 상태 : 특정 시점의 객체에 대한 속성값
  • 순서
    1. 시나리오 작성
    2. 사건 추적도 작성
    3. 사건 흐름도 작성
    4. 상태도 작성

기능 모델링

  • Functional Modeling
  • 자료 흐름도를 이용해 다수의 프로세스 간의 자료 흐름을 중심으로 처리과정을 표현한 모델
  • 순서
    1. 입출력 자료를 정의
    2. 자료 흐름도를 상세화
    3. 기능 명세서 작성
    4. 제약 조건 파악
    5. 최적화 기준 명세

객체 모델링 : 객체 동적 모델링 : 객체의 흐름, 상태, 행위 기능 모델링 : 자료 흐름, 처리 과정

객체지향 설계

  • Object Oriented Design
  • 객체지향 분석을 사용해서 생성한 여러 가지 분석 모델을 설계 모델로 변환하는 작업
  • 시스템 설계와 객체 설계를 수행한다.
  • 사용자 중심, 대화식 프로그램 개발에 적합하다.
  • 시스템을 구성하는 객체와 속성, 연산을 인식하는 것이 중요한 문제
  • 추상화, 정보 은닉, 기능 독립성, 모듈화, 상속성을 바탕으로 하며 모듈화가 가장 중요하다.
  • 문제 정의 => 요구 명세화 => 객체 연산자 정의 => 객체 인터페이스 결정 => 객체 구현

럼바우의 객체지향 설계

  • 가장 많이 사용된다.
  • 시스템 설계 : 전체적인 시스템 구조를 설계하는 것으로 분석 단계의 분석 모델을 서브시스템으로 분할하고, 시스템의 계층을 정의하며 분할 과정 중에서 성능의 최적 방안, 문제 해결 전략, 자원 분해 등을 확정하는 것이다.
  • 객체 설계 : 분석 단계에서 만들어진 클래스, 속성, 관계, 메세지를 이용한 통신들을 설계 모델로 제작하고 상세화하여 구체적인 자료 구조와 알고리즘을 정의한다.

부치의 객체지향 설계

  • 자료 흐름도를 사용해서 객체를 분해하고 객체 간의 인터페이스를 찾아 Ada 프로그램으로 변환시키는 기법

윌리엄 로렌슨의 객체 지향 설계

  • 추상화, 상속성, 메세지, 그리고 다른 OOD 개념들을 직접 지원해주는 기능으 갖추고 있는 Smalltalk과 같은 프로그래밍 언어로 소프트웨어를 개발하기 위한 기법

객체지향 구현

  • 구현은 설계 단계에서 생성된 설계 모델과 명세서를 근거로 하여 코딩하는 단계이다.
  • 객체지향 프로그래밍을 이용하면 용이하게 구현할 수 있다.
  • 객체는 순차적으로 또는 동시적으로 구현될 수 있다.

객체지향 프로그래밍

  • Object Oriented Programming
  • 객체 기반 언어 : 객체의 개념만을 지원하는 언어
  • 클래스 기반 언어 : 객체와 클래스의 개념을 지원하는 언어
  • 객체 지향성 언어 : 객체, 클래스, 상속의 개념을 모두 지원하는 언어 (Simula, Smalltalk, C++, Objective C)

객체지향 테스트

  • 클래스 테스트 : 캡슐화 된 클래스나 객체를 검사하는 것
  • 통합 테스트 : 객체 몇개를 결합하여 하나의 시스템으로 완성시키는 과정에서의 검사
    • 스레드 기반 테스트
    • 사용 기반 테스트
  • 확인 테스트 : 사용자 요구사항에 대한 만족 여부를 검사
  • 시스템 테스트 : 모든 요소들이 적합하게 통합되고 올바른 기능을 수행하는지 검사

UML

  • Unified Modeling Language
  • Rumbaugh, Booch, Jacobson 등의 객체지향 방법론의 장점을 통합한 객체지향 모델의 표준 표현 방법
  • 객체지향 분석과 설계를 위한 모델링 언어로 객체 기술에 관한 국제 표준화 기구인 Object Management Group에서 UML을 표준으로 지정했다.
  • 어플리케이션을 개발할 때 이해를 도와주는 사용 사례 다이어그램, 순서 다이어그램, 상태 다이어그램, 활동 다이어그램 등 여러 형태의 다이어 그램을 제공
  • 사용 사례 다이어그램
    • Use Case
    • 사용자와 사용사례로 구성
    • 사용 사례 간에는 여러 형태의 관계로 이루어진다.
    • 기능 모델링 작업에 사용된다.
  • 클래스 다이어그램 : 객체 모델링 작업에 사용
  • 순서 다이어그램 : 동적 모델링 작업에 사용
  • 상태 다이어그램 : 동적 모델링 작업에 사용
  • 활동 다이어그램 : 동적 모델링 작업에 사용

소프트웨어 재사용

  • 이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는 것
  • 클래스, 객체 등의 소프트웨어 요소는 소프트웨어 재사용성을 크게 향상시켰다.
  • 소프트웨어 재사용에 가장 많이 이용되는 것은 소스코드이다.
  • 모듈의 크기가 작고 일반적인 설계일수록 재사용률이 높다.

재사용의 이점

  • 개발 시간과 비용의 단축
  • 소프트웨어 품질 향상
  • 개발 생산성 향상
  • 프로젝트 실패 위험 감소
  • 시스템 구축 방법에 대한 지식 공유
  • 시스템 명세, 설계, 코드 등 문서를 공유

재사용의 문제점

  • 새로운 개발방법론 도입이 어려움
  • 프로그램 표준화가 부족
  • 프로그램 언어가 종속적
  • 소프트웨어 요소 내부 뿐아니라 인터페이스 요구사항의 이해가 필요하다.

재사용 방법

합성 중심 방법

  • Composition Based = 블록 구성 방법
  • 모듈을 만들어 조립하며 소프트웨어를 완성시키는 방법

생성 중심

  • Generation Based = 패턴 구성 방법
  • 추상화 형태로 쓰여진 명세를 구체화하여 소프트웨어를 완성시키는 방법

소프트웨어 재공학

  • Software Reengineering
  • 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축
  • 새로운 기능을 추가하여 소프트웨어 성능을 향상
  • 유지보수 생산성 향상을 통해 소프트웨어 위기를 해결
  • 기존 소프트웨어의 기능을 개조하거나 개선하므로 예방 유지보수 측면
  • 자동화된 도구를 사용하여 소프트웨어를 분석하고 수정하는 과정을 포함
  • 소프트웨어 수명이 연장되고 기술이 향상
  • 오류가 줄어들고 비용이 절감
  • 예방 유지보수

재공학의 목표

  • 복잡한 시스템을 다루는 방법 구현 : 자동화 도구 사용
  • 다른 뷰의 생성 : 기존 시스템 개발 관점 외에 다른 방향의 관점을 생성
  • 잃어 버린 정보의 복구 및 제거
  • 부작용의 발견
  • 고수준의 추상 : 추상화된 어려운 내용을 여러 형태로 추출해 이해
  • 재사용 용이

주요활동

분석

  • Analysis
  • 기존 소프트웨어의 명세서를 확인하여 소프트웨어의 동작을 이해하고 재공학 대상을 선정하는 것

개조

  • Restructuring = 재구조 - 재구성
  • 상대적으로 같은 추상적 수준에서 하나의 표현을 다른 표현 형태로 바꾸는 것
  • 기존 소프트웨어의 구조를 향상시키기 위해 코드를 재구성 하는 것
  • 소프트웨어의 기능과 외적인 동작은 바뀌지 않는다.
  • IF ELSE를 SWITCH CASE로 변경하듯이

역공학

  • Reverse Engineering
  • 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어 내는 작업
  • 기존 코드를 복구하는 방법
  • 대상 소프트웨어가 가능하다.
  • 코드 역공학 : 코드 => 흐름도 => 자료 구조도 => 자료 흐름도
  • 데이터 역공학 : 코드 => 자료 사전 => 개체 관계도
  • 재문서화 : Redocumentation 역공학의 가장 간단하고 오래된 형태

이식

  • Migration
  • 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 작업

Client/Server 시스템

  • 분산 시스템의 가장 대표적인 모델
  • 정보를 제공하는 서버와 정보를 요구하는 클라이언트로 구성
  • 클라이언트와 서버가 하나의 작업을 분산 협동 처리한다.

요소

  • 애플리케이션 요소 : 응용 프로그램에 의해 정의된 요구사항을 구현
  • 데이터베이스 요소
  • 프리젠테이션/상호작용 요소 : GUI와 관련된 모든 기능

미들웨어

  • 클라이언트와 서버 사이에 존재해서 데이터 전송 과정을 효율적으로 수행하도록 도와주는 소프트웨어
  • 통신 미들웨어 : NOS(Network Operating System)
  • 데이터베이스 미들웨어 : ODBC
  • 분산 객체 미들웨어 : CORBA, DCOM

객체 요청 브로커

  • ORB = Object Request Broker
  • 분산 객체 미들웨어의 일종
  • 클라이언트의 객체가 서버 객체의 캡슐화된 메소드에게 메세지를 보낼 수 있게 하는 것

CORBA

  • Common Object Request Broker Architecture
  • 가장 많이 사용되는 객체 요청 브로커의 표준
  • OMG(Obejct Management Group)라는 개발자 연합에서 인가
  • IDL : Interface Description Language CORBA가 클라이언트/서버 시스템에서 구현될 때 필요한 인터페이스 언어

CASE

  • Computer Aided Software Engineering
  • 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
  • 소프트웨어 개발 도구와 방법론이 결합된 것
  • 정형화된 구조 및 방법을 소프트웨어 개발에 적용하여 생산성 향상을 구현하는 공학 기법
  • 자동화 도구를 지원하고 개발자는 소프트웨어 개발의 표준화를 지향하며 자동화의 이점을 얻을 수 있다.
  • 소프트웨어 생명주기 전 단계의 연결, 다양한 소프트웨어 개발 모형 지원, 그래픽 지원

사용 이점

  • 소프트웨어 개발 기간 단축하고 개발 비용 절감
  • 자동화된 기법을 통해 소프트웨어 품질 향상
  • 유지보수 간편하게 수행
  • 생산성 향상
  • 운용 활동 효과적으로 관리 및 통제
  • 품질과 일관성을 효과적으로 제어
  • 소프트웨어 개발 모든 단계에 걸친 표준 확립
  • 모듈의 재사용성 향상
  • 개발 기법의 실용화, 문서화가 쉬움

분류

상위 CASE

  • Upper CASE
  • 소프트웨어 생명 주기 전반부에서 사용
  • 문제를 기술하고 계획하며 요구 분석과 설계 단계를 지원
  • 여러가지 명세와 문서를 작성하는데 사용
  • SREM, PSL/PSA, SERA, FOUNDATION

하위 CASE

  • Lower CASE
  • 소프트웨어 생명 주기 하반부에서 사용
  • 코드의 작성과 테스트, 문서화하는 과정을 지원
  • 구문 중십 편집기, 코드 생성기

통합 CASE

  • Integrate CASE
  • 소프트웨어 생명 주기 포함되는 전체 과정을 지원
  • 공통의 정보 저장 장소와 통일된 사용자 인터페이스를 사용하여 도구를 통합
  • IEF, POWERTOOLS, TAGS/IORL, TEAMWORK

정보 저장소

  • 소프트웨어를 개발하는 과정 동안 모아진 정보를 보관하여 관리하는 곳
  • CASE 정보 저장소 = CASE 데이터베이스 = 요구사항 사전 = 저장소
  • 초기에는 사람이 정보 저장소, 오늘은 DB가 정보 저장소
  • 도구들의 통합, 소프트웨어 시스템의 표준화, 소프트웨어 시스템의 정보 공유, 소프트웨어 재사용성의 기본
  • 시스템의 정보 공유 활성화
  • 유지보수성 향상
  • CASE 도구간 정보를 쉽게 교환, 사용자가 새로운 도구를 쉽게 추가
  • 중복된 공통정보를 통합해 불필요한 정보 제거
  • 생명 주기 정보를 재사용
  • 소프트웨어 시스템의 이삭과 변환을 용이하게 함