Skip to main content

업무 프로세스

· 9 min read

ISP

  • 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 실기

· 23 min read

DB 정의

  • 통합된 데이터(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 가 지원하는 함수를 구현하는 라이브러리

sublime text를 contextmenu에 추가

· One min read

서브라임 텍스트를 탐색기 우클릭 메뉴에 추가해서 접근성을 높여보자.

설치

OpenWithSublime Gist에서 실행파일을 다운로드 받는다. image from hexo

압축 푼 파일을 서브라임 텍스트가 깔려있는 경로에 넣어준다. image from hexo

OpenWithSublime.bat 파일을 실행한다.

확인

이제 폴더나 파일을 바로 서브라임 텍스트로 열 수 있다. image from hexo

로드 모바일 초반 공략

· 5 min read

Roads Mobile 공식 카페 말고는 쉽게 접할 수 있는 올바른 초반 공략이 없어 작성한다. 이 게임은 적어도 3 티어 병력이 나올 때부터 시작한다고 봐야한다. 주성 17 레벨부터 돌성으로 이미지가 바뀌는데, 이 때부터 3 티어 병력을 뽑을 수 있다. 목표를 주성 17 레벨로 잡고 빠르게 성을 성장시켜보자. (가장 빠른 레벨링 방법이며, 이렇게 해도 목표까지 한달정도 소요된다.)

무과금 유저도 즐겁게 성을 키울 수 있고 3 티어 병력을 운용하며 전투를 할 수 있다. 하지만 4 티어 병력은 현실적으로 불가능하다.

시작

가장 먼저 시작해야하며 중요한 공략을 소개한다.

기본 공략

  • 성을 생성하면 먼저 주성이 5 레벨이 될 때까지 퀘스트를 완료해가며 성장하면 된다.
  • 수정은 VIP 포인트를 구매해 VIP 포인트를 8 레벨까지 만들어준다.
  • 다른 용도로 수정을 쓰지 않는다.
  • 1 급 부대를 생산하고 1 레벨 자원지를 채집한다.
  • 주성 보호막이 풀리는 9 레벨부터는 무조건 피신처에 12 시간씩 영주와 병력을 넣어둔다.
  • 연맹에 가입해 가속지원을 주고 받는다.
  • 몬스터 연구를 먼저 완료해 몬스터를 사냥하고, 빠르게 성장한다.

이벤트 참여

  • 이벤트 > 최근소식 > 시메스터 교수님의 바바리안 학교에서 수정을 받는다.
  • 이벤트 > 최근소식 > 송지효가 전하는 봄날의 기쁨에서 수정을 받는다.

이벤트 페이지는 여기서 들어갈 수 있다. image from hexo

건물

성, 지교, 연구소 건설을 최우선으로 해준다.

채석장

최대한 많이 짓는다.

벌목장

최대한 많이 짓는다.

광산

최대한 많이 짓는다.

농장

3 개를 짓는다. 초반에는 3 개, 부족하다 싶으면 중반에는 6 개까지 늘려주고 후반에는 1 개로 줄여준다. 쌀이 없어도 병력이 죽는게 아니기 때문에 농장을 적게 짓고 채집으로 커버가 가능하다.

병영

1 개만 짓는다. 병영이 많아도 훈련속도가 증가하지 않기 때문에 1 개면 충분하다. 초반에 병영 2 개를 짓는 퀘스트를 완료해준 뒤 부순다.

장원

8 개를 짓는다. 골드 및 군영 훈련속도 증가때문에 많이 지어야한다.

치료소

8 개를 짓는다. 치료 인원을 넘는 부상병은 사망하기 때문에 많이 지어야한다. 장원을 먼저 8 개를 채워주고 나머지를 치료소 건설에 투자하면 된다. 퀘스트로 짓는 2 개로 운용하다가 군단전 접전을 클리어해 영토가 늘어날 때 8 개로 늘려준다.

연구

가속지원을 모두 받으면 모아둔 수정이나 가속 아이템으로 밀어버린다.

경제

경제 연구는 수정 채집을 제외한 모든 연구를 마무리 해준다. 수정 채집 연구를 비추천하는 이유는 달마다 찾아오는 킹덤클래시(서버간 침략가능) 후 이긴 쪽에 수정 자원지가 나오는데, 1 렙 수정자원지는 겨우 10 수정만 준다. 고레벨 수정자원지는 채집하러가면 맛집되기 십상이다.

방어

우선적으로 할 연구가 아니다. 성벽은 어차피 침략이 들어오면 벽이아니라 종이에 불과하다. 퀘스트를 위해 거마창, 초탑, 철질려 등 함정 연구를 뚫어줄 수 있을 만큼만 업그레이드 하자.

군사

첩보술과 급행을 우선적으로 연구해주고, 상위 티어 병사를 뽑을 수 있을 정도로 업그레이드 하자.

몬스터 사냥

가장 중요한 연구로 모든 연구를 우선적으로 마무리 한다. 몬스터 사냥만이 빠른 레벨업을 할 수 있는 지름길이다.

연맹 가입 후 몬스터를 때릴 때마다 아이템을 얻으며, 사냥시 연맹원 모두가 현금 아이템을 구매한 것과 같은 보상을 하나 얻을 수 있다.

방어승급

함정 해체술을 배울 정도로만 연구한다.

군사승급

급행, 응급처치 및 행군 상한 증대를 배울 정도로만 연구한다.

행군배진

이 연구를 올릴 정도면 로드 모바일 공략이 필요 없다.

특성

군단과 관련된 특성은 쳐다보지 말자!

1 단계

2 레벨을 올리면 다음 특성이 열린다. 건설속도 I, 연구속도 I, 골드 생산량 I 에 모두 투자한다.

2 단계

5 레벨을 올리면 다음 특성이 열린다. 건설속도 II, 연구속도 II, 골드 생산량 II, 채집 속도 II, 군단 무게 II 에 모두 투자한다.

3 단계

5 레벨을 올리면 다음 특성이 열린다. 골드 생산량 III 에 투자한다.

영웅

영웅 맵은 별 3 개가 나오지 않으면 재도전이나 도전 취소를해서 하트를 아껴가며 클리어 해준다.

초반 영웅

  • 오스 키퍼
  • 나이트 레이븐
  • 스톰 세이지
  • 스노우 퀸
  • 소프라노

중반 영웅

고용할 수 있는 시점부터 바로 고용시켜 키워주면 된다.

  • 트래커
  • 트릭스터
  • 라이트 히어로
  • 데몬 슬레이어
  • 데스나이트

라이트 히어로와 데스나이트는 오스 키퍼의 자리를 대신해 서브탱커와 탱커를 담당하고 나머지 영웅은 딜러자리를 대체한다.

후반엔 로즈 나이트가 서브탱커 자리를 대신한다.

  • 트릭스터연구 가속 능력을 가졌기 때문에 영주로 둬야하며 훈장을 통해 가장 먼저 키워야한다.
  • 트래커는 스턴기를 가졌고 단일 데미지가 1 위인 영웅이다.
  • 라이트 히어로는 스턴기와 가장 체력이 낮은 영웅에게 쉴드를 채워준다.
  • 데스나이트는 얼려버리는 스턴기와 많은 체력을 가졌고 죽어도 한 번 더 부활한다.
  • 데몬 슬레이어는 후방으로 이동해 암살하며 광역 데미지 궁극기를 가졌다.
  • 소프라노하나 밖에없는 무과금용 힐러 영웅으로 꼭 키워준다.
  • 로즈나이트를 얻을 정도면 이 공략을 볼 필요가 없다.

몬스터 사냥 상세

몬스터 사냥은 연맹에 가입해야 시작할 수 있다. 여러 대를 한 번에 때리는 것보다 한 대씩 여러 번 때리는 것이 더 데미지가 많이 들어간다. 영웅의 레벨도 중요하지만 계급 7을 먼저 올려줘서 모든 스킬을 배우게 해주자. 효율상 1 레벨 몬스터만 사냥한다.

몬스터마다 방어 종류가 다른데 i 표시를 누르면 확인할 수 있다. image from hexo

물리 방어

마법 영웅으로 사냥한다. 스톰 세이지, 인시너레이터, 봄버맨, 엘레멘탈리스트, 스노우 퀸이 주가 되며 없을시 소프라노도 괜찮다.

마법 방어

물리 영웅으로 사냥한다. 트래커, 트릭스터, 스칼렛 볼트, 데몬 슬레이어, 블랙 크로우가 주가 되며 없을시 데스 나이트도 괜찮다. 라이트 히어로는 스킬이 마법피해라 비추천

물리 & 마법 방어

물리 영웅으로 사냥하는 것이 더 효율적다.

장비

장비는 연구 속도, 건설 속도 장비를 중점적으로 간다. 채집과 사냥을 통해 재료를 얻을 수 있다. 다음 장비 외에는 생각도 안하면 된다. 레벨이 안 된다면 영주부터 키우자.

  • 투구 : 노세로스 마스크
  • 갑옷 : 얼음서리의 일격, 오디세우스의 갑옷
  • 신발 : 그리핀의 신발, 살벌한 전장
  • 무기 : 거대 공룡의 습격
  • 장갑 : 그리핀의 발톱, 절대의 감금
  • 장식품 : 달의 피리, 수호의 팔찌

무역선

지교 한계치를 넘는 자원은 무역을 통해 **도시락(아이템)**으로 바꿔준다. 골드에서 다른 자원으로 교환하는 것이 효율이 좋으므로 많이 바꿔주자.

아레나

데스나이트(또는 라이트 히어로), 로즈 나이트, 데몬 슬레이어, 소프라노, 트릭스터(또는 트래커)가 무과금에서 최선의 조합이다.

요약

나의 병력은 채집과 수렵을 즐겨야하며 내가 없는 동안은 동굴에서 자야한다.

틀렸거나 추가하고 싶은 부분이 있으시면 댓글로 남겨주세요. 반영하겠습니다.

Angular2 with angular-cli

· 4 min read

앞서

지난시간에는 Angular with Webpack으로 ng2 의 기본 실행 틀에 대해 알아봤다. 매번 이렇게 세팅을하려면 아무도 ng2 를 쉽게 사용하지 못할 것이다. 버전별 충돌문제도 해결해야되고 컴포넌트를 생성할 때마다 주입해줘야되고 third party 라이브러리를 쓸 때는 typings 를 사용해 타입 인터페이스를 넣어줘야하고 웹팩 로더에 대한 정보도 찾아봐야하며... (지난시간에 해봤던 것)

이걸 모두 해결한 정말 멋진 모듈인 Angular-cli 로 ng2 project 를 시작해보자.

설치

Angular-cli를 참조해도 되지만 하나씩 해보자.

먼저 npm 으로 angular/cli 를 전역으로 설치한다.

npm install -g @angular/cli

설치가 완료되면 ng 라는 명령어를 사용할 수 있다.

ng --version

image from hexo

프로젝트 생성

ng new 프로젝트명 명령어로 프로젝트를 생성하면 된다.

ng new 프로젝트명

ng new ng2-cli-test --routing

--routing 명령어는 기본으로 angular 라우팅을 app module 에 넣어준다. angular routing 을 사용하지 않을 경우 옵션을 제외시키면 된다.

프로젝트 실행

생성한 프로젝트로 이동해 프로젝트를 실행해보자

패키지 설치

## cd ng-cli-test
$ npm install

1~3 분정도 걸리니 느긋하게 기다리면 된다.

웹서버 실행

$ npm start
## 또는
$ ng serve

ng2-cli 는 기본 포트 4200 을 사용한다. 이 포트가 사용 중이라면 --port 옵션으로 포트를 변경해주면 된다.

package.json 을 열어 start 명령어 실행시 브라우져가 바로 뜨게 --open 옵션을 주자.

package.json
{
"name": "ng2-cli-test",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"ng": "ng",
"start": "ng serve --open",
...
},
...
}

자세한 옵션은 여기서 확인할 수 있다.

image from hexo 쉽게 실행되었다!

컴포넌트 추가

컴포넌트도 쉽게 생성할 수 있다.

ng generate component 컴포넌트명

ng g c 컴포넌트명

ng g c sub 명령어로 서브 컴포넌트를 생성해보자. image from hexo 서브라는 폴더로 ng2 컴포넌트 명명 규칙에 맞게 예쁘게 생성되었다.

app.module.ts를 확인해보면 자동으로 import 가 되어있다.

src/app/app.module.ts
// ...
import { SubComponent } from "./sub/sub.component";

@NgModule({
declarations: [AppComponent, SubComponent],
// ...
})
export class MyModule {}

정말 영롱하다. 자세한 generate component 옵션은 여기서 확인할 수 있다.

라우팅

이제 app-routing.module.ts 파일을 열어 sub.component 로 라우팅이 되게 해보자.

src/app/app-routing.module.ts
import { NgModule } from "@angular/core";
import { Routes, RouterModule } from "@angular/router";
// 서브 컴포넌트 import
import { SubComponent } from "./sub/sub.component";

// sub로 접속시 SubComponent 사용
const routes: Routes = [
{
path: "",
children: [],
},
{ path: "sub", component: SubComponent },
];

@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
providers: [],
})
export class AppRoutingModule {}

메인 컴포넌트의 뷰를 수정한다.

src/app/app.component.html
<h1>{{title}}</h1>
<a routerLink="">home</a>
<a routerLink="/sub">sub page</a>
<router-outlet></router-outlet>

브라우저에서 확인해보자. image from hexo subpage 버튼 링크를 클릭시 sub work! 라는 sub component 의 뷰가 보이는 것을 확인 할 수 있다.

ng2 의 routing 은 router-outlet directive 바로 다음에 생성된다.

라이브러리

polyfills

하위 버전 브라우저를 위해 polyfills 를 활성화 해준다. polyfils.ts의 core-js/es6 구문들의 주석을 해제만 해주면 된다.

image from hexo

global script

전역에서 사용해야할 스크립트가 있다면 .angular-cli.json 파일의 apps.scripts 안에 넣어주면 된다.

angular-cli.json
{
...
"apps":[{
"scripts": [
"../node_modules/jquery/dist/jquery.js",
"../node_modules/hammerjs/hammer.min.js"
]
}]
}

global css

global script 와 마찬가지로 angular-cli.json 에 넣는 방식이 있지만 src/style.css에 import 방식으로 넣어줘도 된다.

src/style.css
/* You can add global styles to this file, and also import other style files */
@import "~https://fonts.googleapis.com/icon?family=Material+Icons";

third party

third party library 를 사용해야한다면 라이브러리와 @types 를 설치해 사용하고 싶은 컴포넌트에서 import 구문으로 사용하면 된다.

npm install lodash --save
npm install @types/lodash --save-dev
any.component.ts
import * as _ from "lodash";

빌드

웹 브라우저에서 실행할 수 있게 프로젝트를 빌드해보자.

$ ng build
## minify 옵션 추가
$ ng build --prod

빌드를 실행하면 .angular-cli.json 파일에 있는 root 와 outDir 경로를 이용해 진행된다.

여담

이번 시간을 통해 로컬에 ng2 프로젝트를 쉽게 생성하고, 관리할 수 있게 되었습니다.

👏👏👏 고생하셨습니다.

Hyper-V를 사용한 VM 실행

· 3 min read

윈도우에서 테스트용으로 사용할 서버가 필요하다. Ubuntu, CentOS 환경을 구축한다던지, 여러 서버 프로그램을 테스트해본다던지.. 가장 유명한 프로그램은 VMware이지만 유료이다. VirtualBox도 있지만 느리다. 그렇다면 다른 대안이 무엇이 있을까?

바로 Windows10을 쓰고 있다면 사용할 수 있는 Hyper-V 가상화 기술이다. (아쉽지만 Home Edition은 지원하지 않는다.)

속도면에서 느리지는 않을까? 서버 실행에 가장 많은 부하를 주는 I/O의 테스트 결과가 있다.

Hyper-V 설정

지원 확인

cmd 또는 powershell을 열어 systeminfo.exe를 실행하자.

systeminfo.exe

결과 화면 중 아래 부분에

Hyper-V 요구사항

  • VM 모니터 모드 확장 : 예
  • 펌웨어 가상화 사용: 예
  • 두 번재 수준 주소 변환: 예
  • 데이터 실행 방지 사용 가능: 예

처럼 표시되면 Hyper-V를 지원하는 컴퓨터이다. 그렇지 않다면 재부팅 후 BIOS로 접근해 Advanced 탭으로 이동한 후 옵션을 켜준다.

  1. Intel Virtualization Technology 기능을 활성화
  2. VT-d 옵션 활성화 (있는 경우)

활성화

제어판 > 프로그램 및 기능 > Windows 기능 켜기/끄기 메뉴로 이동한다. image from hexo Hyper-V 관련 기능을 체크해주고 확인 버튼을 눌러 다시 시작하자.

가상 컴퓨터 실행

CentOS 다운로드

CentOS 7 이미지를 다운로드 받는다. kakao mirror를 이용해도 된다.

가상 네트워크 생성

시작 > Hyper-V 검색 > Hyper-V 관리자로 이동한다. image from hexo

가상 스위치 관리자 > 외부 > 가상 스위치 만들기 버튼으로 가상 스위치를 생성한다. 생성 후 이름 변경 및 연결할 외부 네트워크를 선택해주자. image from hexo

가상 컴퓨터 생성

새로만들기 > 가상 컴퓨터 버튼을 클릭해 가상 컴퓨터 마법사로 가상 머신을 생성한다. 2세대로 생성해주자.

네트워킹 구성 탭에서는 금방 만들었던 가상 네트워크를 선택한다. image from hexo

가상 하드디스크 연결 탭에서는 물리적으로 어디에 저장할지 선택해준다. image from hexo

설치 옵션 탭에서는 다운받았던 CentOS 이미지 파일을 선택한다. image from hexo

보안 부팅 해제

생성된 가상 컴퓨터의 옵션 > 보안 부팅 탭에서 보안 부팅 사용 체크박스를 해제한다. image from hexo

보안 부팅은 권한 없는 펌웨어, 운영 체제 또는 UEFI 드라이버(옵션 ROM)가 부팅 시 실행되지 않도록 하는 기능인데 켜주면 오류가 발생한다.

실행

만들어진 가상컴퓨터를 실행해 CentOS 설치를 진행하면 된다! 설치가 다 되고 쉘이 보이면 네트워크 서비스를 실행한다.

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0

## onboot 속성을 yes로 변경해준다.
ONBOOT=yes

$ service network start

이제 yum을 활용해 서버를 구성하는 일만 남았다.

오류

잘 실행되던 가상서버가 하이퍼바이저가 실행되고 있지 않으므로 가상 컴퓨터를 시작할 수 없습니다 라는 오류를 뱉으며 실행이 되지 않을 경우 CMD 창에서 아래 명령어를 날리고 재부팅을 한다.

bcdedit /set hypervisorlaunchtype auto

연속된 번호 카운트 알고리즘

· One min read

연번 체크 알고리즘이라고도 하는 것 같다. 통계 또는 비밀번호의 연속성을 체크하기 위해 필요할 때가 있다. 비밀번호 연속성 체크에는 target[j]의 데이터를 charCodeAt 을 붙여 처리하면 된다.

소스

function checkSequenceNumbers(target, counterLength = 6) {
// under es6
// let sequentialCounter = Array.apply(null, Array(counterLength)).map(Number.prototype.valueOf,0);
const sequentialCounter = new Array(counterLength).fill(0);
let count = 0;

for (let i = 0, len = target.length; i < len; i++) {
let subCount = 0;

for (let j = 1; j < len; j++) {
if (target[j] === target[i] + 1) {
subCount = subCount + 1;
} else {
continue;
}
}

count = count + subCount;
if (subCount === 0) {
sequentialCounter[count] = sequentialCounter[count] + 1;
count = 0;
}
}

return sequentialCounter;
}

const target = [1, 2, 3, 5, 6, 7, 8, 10, 11, 13, 16, 17];
console.log(checkSequnceNumbers(target));
// => [1, 2, 1, 1, 0, 0]

설명

n 과 n+1... n+n-1 을 비교해서 카운트한다. 결과는 sequentialCounter 배열에 각 포지션에 들어간다.

2 연속 숫자 1 개가 있다면 sequentialCounter[2] = 1;

여담

왜 이런걸 공유를 안할까?

데이터 통신 정리

· 49 min read

데이터 통신

  • 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 간의 인터페이스를 제공하는 프로토콜

Ubuntu에서 timezone 변경

· 2 min read

Ubuntu 설치시 다른 국가로 되어있는 시간대를 바꿔야한다.

실행

tzselect

명령어를 실행하면 아래처럼 번호를 선택할 수 있다.

Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
1) Africa
2) Americas
3) Antarctica
4) Asia
5) Atlantic Ocean
6) Australia
7) Europe
8) Indian Ocean
9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
#? 4

4번 아시아를 선택하면 국가 선택지가 나온다.

Please select a country whose clocks agree with yours.
1) Afghanistan 18) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 23

국가를 선택 후 마지막으로 확인을 해주면

The following information has been given:

Korea (South)

Therefore TZ=\'Asia/Seoul\' will be used.
Local time is now: Tue Feb 14 23:04:10 KST 2017.
Universal Time is now: Tue Feb 14 14:04:10 UTC 2017.
Is the above information OK?
1) Yes
2) No
#? 1

...
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Seoul

성공적으로 반영되었다.

확인

$ date
Tue Feb 14 23:04:21 KST 2017

PHP에서 HTML tag 사이의 문자 가져오기

· One min read

PHP 로 페이지를 크롤링한 후 HTML tag 안의 데이터가 필요할 때 함수 하나로 해결할 수 있다.

소스

<?php
/**
* [splitBetweenStr 텍스트 사이의 문자열을 배열로 반환]
* @param [string] $str [전체 문자열]
* @param [string] $startWord [찾을 시작 문자열]
* @param [string] $endWord [찾을 종료 문자열]
* @return [array] [텍스트 사이의 문자열 배열]
*
* ex) splitBetweenStr('<br/>hi</br><b>test</b><br/>graceful_light</br>', '<br/>', '</br>')
* => ['hi', 'graceful_light']
*/
function splitBetweenStr($str, $startWord, $endWord) {
for ($i=0, $len=strlen($str); $i<$len; $i++) {
$target = substr($str,$i);
$prevStartIdx = strpos($target, $startWord);
$startIdx = $prevStartIdx + strlen($startWord);
$endIdx = strpos(substr($target, $startIdx), $endWord);

if ($prevStartIdx===false || $endIdx===false) {
break;
} else {
$betweenStrings[] = substr($target, $startIdx, $endIdx);
$i += $startIdx + $endIdx + strlen($endWord) - 1;
}
}

return $betweenStrings;
}

여담

물론 다른 크롤러 라이브러리를 사용하는게 속편하다. 호스팅 환경에서는 유용하게 사용할 수 있다.