'IT'에 해당되는 글 170건

  1. 2007.05.29 SE-COCOMO
  2. 2007.05.29 화일시스템
  3. 2007.05.18 키워드
  4. 2007.05.07 PMP자격증..
  5. 2007.05.07 L4/L7 스위치
  6. 2007.05.07 BCP의 개요 및 개발 과정 1
  7. 2007.05.07 S/MIME의 개요
  8. 2007.04.22 데이터마이닝 기법 : 연관규칙의 탐사
IT
posted by 구름너머 2007. 5. 29. 11:23
[과제]SE-COCOMO | Q&A 2006.10.11 21:09
cascade73 1기맴버 http://cafe.naver.com/thinkit/387 이 게시물의 주소를 복사합니다

>CASCADE73님!

>

>프로그램 규모에 의한 비용산출방법인 COCOMO 모델에 대해 설명 부탁합니다. (유형, 노력조정요소, 제약사항) - 05년 기출

COCOMO 모델

가. COCOMO 모델의 유형


1) (Basic COCOMO)
S/W 개발 노력과 비용을 LOC 형태로 추정한 후 비용을 산정하는 고정단일 값

2) Intermediate COCOMO
Basic 의 확장으로 프로젝트 형태, 개발환경, 개발인력 요소에따라 15 개의 특성치를 적용한 방식
- 15 가지 속성
. 제품속성(3 개) : S/W신뢰도, DB 크기, 복잡도
. H/W속성(4 개) : 응답시간, 실행시간 성능제약, 기억장치 제약,
가상기계 환경의 휘발성
. 인적속성(5 개) : 분석가능력, 응용의 경험, 언어구사경험, S/W공학자
능력, 가상기계에 대한경험
. 프로젝트속성(3 개) : 일정, 개발도구 사용, 방법론 응용

3) Detailed COCOMO
대형 시스템의 경우 서브시스템이 서로 상이한 특성을 갖고 있어 각 모듈 별, 서브시스템별로 비용을 별도 산정하여 합산하는 방식을 적용
- 3 계층 비용 산정이 가능
(모듈레벨, 서브시스템레벨, 시스템레벨)
-개발단계별(생명주기)로 비용 산정방식을 달리할 수가 있음
나. COCOMO 모델에서의 프로젝트 유형
1) 유기적 모드 프로젝트(Organic mode)
- 비교적 엄격하지 않은 요구사항을 기반으로 상대적으로 단순한 소프트웨어 프로젝트
에 적용 가능
- scientific, business 등의 소프트웨어로서 50KDSI이하 크기.
2) 반 결합 모드 프로젝트(Semidetached mode)
- 크기와 복잡성 면에서 중간 정도의 소프트웨어 프로젝트
- 컴파일러, 워드프로세서와 같은 개발 지원도구 개발용 프로젝트로 300KDSI
이하의 크기
3) 내장 모드 프로젝트(Embedded mode)
- 엄격한 제약조건 내에서 개발되어야 하는 소프트웨어 프로젝트
- OS, DBMS, 통신모니터와 같이 300KDSI 이상의 대형 프로젝트로서
transaction processing system 등.

'IT' 카테고리의 다른 글

[IPv6 강좌] IPv6 프로토콜 구조와 IPv4와의 비교  (0) 2007.08.20
컴퓨터 조립 내 손으로 완벽 가이드  (2) 2007.08.12
화일시스템  (0) 2007.05.29
키워드  (0) 2007.05.18
PMP자격증..  (0) 2007.05.07
IT
posted by 구름너머 2007. 5. 29. 00:19

http://blog.naver.com/captainship/20034019894

화일시스템관련 글인데 ... 복사가 안되네요..ㅠㅠ

탐구시간:디스크의 헤드를 필요한 실린더(또는 트랙번호)로 이동시키는 과정
회전지연시간:디스크 헤드가 지정된 실린더에 도착한 후 지정된 섹터가 헤드 아래에
도착할 때까지 기다리는 시간
전송시간:디스크 주소상의 표면 번호에 따라 해당 섹터를 읽어 전송하거나 전송된 데이터를 해당 섹터에
기록하는 시간.

데이터 접근 시간(data access time) : 위의 3가지 시간을 모두 더한 시간

따라서 비중은 탐구시간>회전 지연시간>전송시간

'IT' 카테고리의 다른 글

컴퓨터 조립 내 손으로 완벽 가이드  (2) 2007.08.12
SE-COCOMO  (0) 2007.05.29
키워드  (0) 2007.05.18
PMP자격증..  (0) 2007.05.07
L4/L7 스위치  (0) 2007.05.07
IT
posted by 구름너머 2007. 5. 18. 09:38

출처: http://blog.naver.com/abk3737

1주차 학습내용

순번
Topic
주요내용
1
메모리 계층 구조
계층 구조, 메모리 인터리빙, RAM의 종류, 메모리 속도 향상
2
캐쉬 메모리
직접사상, 완전연관, 세트연관, 세트사상, 구역성, 일관성
3
가상 메모리
분할기법, 주소 Mapping기법, 관리정책, Page 교체 기법
4
메모리 할당
Thrashing, Swaping, Demand Paging 
5
입출력장치
입출력 기법(Channel,DMA,Polling,Interrupt,Buffering)
6
DMA
Cycle Stealing
7
Interrupt
Interrupt 종류, 처리
8
컴퓨터 성능평가
성능평가 기법(MIPS, SPEC, TPC Benchmark 등)
9
RISC/CISC/EPIC
유형별 특징, 상호 비교
10
병렬컴퓨터
분류, SMP/MPP/UMA/NUMA/COMA, 강결합/약결합
11
Pipelining
개념, 슈퍼스칼라, 슈퍼파이프라인, VLIW
12
결함허용컴퓨터/RAID
RAID종류 및 특징, 선정시 고려사항
13
Cluster
개념, 종류, 사용이유, 활용사례, 고가용성
14
미들웨어
종류(RPC, TP-Monitor, CORBA), 사용이유
15
Thread/Multithread
Thread개념, Multi-Thread 적용 사례

2주차 학습내용

순번
Topic
주요내용
16
Bus
ISA, EISA, MCA, VLB, PCI
17
Kernel
종류(Micro / Monolithic Kernel), 상호 비교
18
언어변환기
Compiler, Interpreter, Macro, Linker, Loader
19
교착상태(Deadlock)
요구조건, 해결방법
20
프로세스 동기화
Semaphore, Eventcount, Sequence
21
CPU 스케쥴링
프로세스 상태, 스케쥴링 단계, 스케쥴링 기법
22
OS
UNIX/LINUX/Window XP 구조, 특징, 상호 비교
23
Embedded Linux
Embedded System, 해결 과제
24
.NET/J2EE
웹 서비스, .NET/J2EE 상호 비교
25
Thin Client
특징, NC/ASP와의 비교, 장단점
26
DAS/NAS/SAN
특징, 장단점, 상호 비교, NDMP
27
자료구조(Tree)
B/B+/B* tree, Binary Search, Indexed, Hashed file
28
Hashing
Dynamic/Extensible Hashing, Collision 해결방법
29
정보검색, Inverted file
내용기반/감성기반/주석기반/자연어 기반 검색, Thesaurus
30
Z39.50
개념, 지원 서비스 기능, 문제점, 운용사례, 전자도서관

3주차 학습내용

순번
Topic
주요내용
31
스키마(Schema)
ANSI/SPARC 구조, Star/Snowflake Schema
32
DBMS
DBMS 분류, 차세대 DB(MMDB, 멀티미디어 DB)
33
트랜잭션 특성
ACID, 2단계 Locking, 2Phase Commit
34
트랜잭션 처리
동시성 제어, 회복, Timestamp, Checkpoint
35
데이터베이스 보안
DB 보안모델, DB 보안단계
36
분산 DB
분산DB 설계시 고려사항, 문제점, 해결방안
37
OSI 7 Layer

38
인터네트워킹 장비
Repeater, Bridge, Hub, Switch, Router, Gateway
39
무선 LAN(Wi-Fi)
특징,표준화 기술,작동방식, Bluetooth/IrDA/SWAP과의 비교
40
고속 LAN
ATM, Fast/Gigabit/10 Gigabit/Metro Ethernet, VLAN
41
xDSL
ADSL / CATV / 위성 /WLL 유형별 특징, 동향
42
무선가입자망
WLL(Wireless Local Loop)/BWLL
43
IMT-2000
동기식/비동기식, 서비스, 표준화, MBS, GPRS
44
HDR (High Data Rate)
IS95C와의 비교 
45
위성방송/인터넷 방송
적용기술, 당면과제, 발전방향, Push

4주차 학습내용

순번
Topic
주요내용
46
망 관리시스템(NMS)
NMS, SNMP
47
VPN/Tunneling/IPSec
특징, 요소기술, VPN의 tunneling 기술, MPLS
48
MBONE
Multimedia Backbone  
49
Datagram/Virtual Circuit
개념, Datagram/Virtual Circuit 상호 비교, 장단점
50
IPv6 /Mobile IP
IPv4와의 비교, 주소체계, 라우팅, IPv4->IPv6 전환기술
51
CDN/Cache Server
요소기술, 특징, 도입효과
52
SDLC
모델의 특징, 장단점 비교(Waterfall, Spiral 등)
53
모듈화
Coupling, Cohesion, Reuse
54
객체지향개념
추상화, 상속, 다형성, 캡슐화, 정보은닉, Overriding/roading
55
테스트기법
White/Black, Stub/Driver, Validation/Verification, 동적/정적
56
형상관리
형상관리 방안, 개념,절차, 필요성, 효과, Baseline
57
프로젝트 관리
프로젝트 관리의 3대요소, 관리범위, PM의 역할
58
프로젝트 실무
프로젝트 계획서/제안서/RFP 작성 방법, 사례
59
Outsourcing
절차, 전략, 미진한 이유, 해결방안, 4가지유형, 문제점
60
S/W 규모산정
FP, Delphi, Cocomo, Loc

5주차 학습내용

순번
Topic
주요내용
61
소프트웨어 유지보수
중요성, 종류, 유지보수용이성, 문제점, 해결방안
62
CASE
CASE Tool의 종류, 장단점, 도입시 준비사항, 평가항목
63
Design Pattern
사용목적, 분류
64
정보시스템감리
감리유형, 절차, 감리보고서, 필요성 , 발전방향
65
BPR / ISP / ITA
추진 절차, 작성 사례
66
IT 전문 인력 양성
IT 인력 고용창출 및 전문인력 양성방안
67
컨텐츠산업 활성화방안
컨텐츠 및 국내 게임소프트웨어 산업의 발전방향
68
Groupware
요구기능, CSCW/Workflow와 비교, EDMS
69
MIS/(G)DSS/EIS/SIS
개념, 차이점, 사례, DSS 구축전략과 요소기술
70
KM/KMS
필요성, 요소기술, 고려사항, 타 시스템과 연계방안
71
Data Warehouse
Data Warehouse, Data Mart, ETT, Meta Data
72
OLAP
종류(ROLAP/MOLAP/HOLAP/DOLAP), 기능, 제품
73
Data Mining
4가지 기법, OLAP비교, 척도, CRM적용
74
ERP/XRP/ERP
구축방법, 구축절차, 발전방향, 상호비교
75
SCM/e-SCM
요소기술,필요성, 특징, ERP와 비교

6주차 학습내용

순번
Topic
주요내용
76
SEM
구성요소(VBM,ABC,BSC), 특징, 전망
77
BSC
주요 성과 지표, 구성요소, 구축 프로세스, 전망
78
ASP / xSP / MSP
개념 및 종류, 활성화 방안, 적용전략, 선정시 고려사항
79
IDC / Web Hosting
특징, 기능, 장단점
80
CTI(ITI) / UMS
개념, 특징, 구성도
81
SLA / SLM
SLA필요성, 종류, 타당성, SOW(statement of work)
82
CIO
CIO / CKO / eCEO / CPO / CSO
83
정보화역기능 / 불법복제
정보보호개념,범죄유형,방지대책,불법음란물 대응방안
84
통합보안모델(ESM)
등장배경, 구성도, 도입시 고려사항 
85
BS7799/ISO17799
ISMS(정보보안관리시스템)인증
86
기업내부/외부 통합
EP(EIP,EKP), EAI, eAI, B2Bi
87
CRM
Data Mining 적용절차, eCRM,PRM,mCRM,gCRM,ERMS
88
해킹
종류(스니퍼/스푸딩, DOS 등), 분석기법, 분석도구, 대응방안
89
바이러스
종류, 바이러스에 의한 위험관리 방안, 위험분석 절차
90
암호화
개인키, 공개키, DES/AES/RSA/ECC/SEED

7주차 학습내용

순번
Topic
주요내용
91
시스템 보안
Firewall, IDS, IPS
92
전자정부
구현방안, 문제점, 해결책
93
RBAC / CKM
RBAC, CKM(Constructive Key Management)
94
전자서명
전자서명 절차, 해쉬함수, Message Digest
95
인증
인증 종류, X.509, Kerberous 
96
PKI
PKI 구성요소, 구성도, 특징, PMI, WPKI
97
디렉토리서비스(X.500)
X.500 / LDAP 의 특징, 장단점
98
비즈니스 모델(BM)
유형 및 BM 특허, 협업 컴퓨팅
99
EC
유형(B2B, B2C 등), 활성화방안, 발전단계
100
P2P
구현방법, 문제점, 발전방향
101
e-Marketplace
구성도, 구성요소, 특징, 고려사항, 문제점, M2M/MRO
102
e-Procurement
구성요소, 프로세스 절차, Marketplace과의 차이점
103
T / M-Commerce
TV / Mobile Commerce 유형 및 전망
104
가상기업, C-Commerce
문제점 해결방안, 발전방향
105
e-Catalog
개념 및 특징

8주차 학습내용

순번
Topic
주요내용
106
전자지불 시스템
전자지불 유형, 전자지갑, 전자화폐
107
보안 프로토콜
SSL, SET, S-HTTP, 웹 보안
108
E-mail 프로토콜
MIME, SMTP, POP3
109
EDI
전통적EDI, Web/EDI, XML/EDI
110
Agent
전자상거래 Agent, 이동/멀티 Agent, 활용현황
111
Rich Media
장단점, 문제점, 해결방안
112
VoIP
유형, 구현방식, 인터넷 폰/TV
113
스마트 카드
USIM
114
인터넷 기반 언어
HTML,xHTML,DHTML,SGML,PDF
115
XML
구조(DTD,Schema,DOM,SAX,프로토콜 종류)
116
ebXML/VoXML
표준화 내용, 거래절차, 유사기술(Rossetanet 등)과의 비교
117
SOAP / UDDI / WSDL
특징, 전망
118
PDA
POST PC, Window-CE, Palm OS, EPOC
119
SMIL
등장배경, 주요기능, 활용사례 
120
멀티미디어 데이터
PHIGS, JPEG, MPEG, MHEG, MPEG-1/2/4/7/21, MP3

9주차 학습내용

순번
Topic
주요내용
121
VRML
VRML / VR / Argument Reality  
122
HCI
Neural Network, 생체인식 / 지문인식 / 음성인식
123
GPS/GIS/Web GIS/UIS
Vector/Raster, UIS(Urban Information System),LBS
124
ITS
 
125
Wearable Computer
활용사례
126
KIOSK
유형, 문제점, 해결방안
127
SSO(Single Sign On)
SSSO(Secured SSO)
128
Streaming
Download 방식과 차이점
129
인터넷 빌링(EBPP)
구성요소, 장단점, 향후전망 
130
아바타
개념, 특징, Autonomous Agent 와의 차이
131
무선인터넷
WAP / BREW / MS Platform  
132
C#
주요특징, JAVA와의 비교
133
Web과 DB 연동
연동방식, 특징, ASP, PHP, Perl, CGI, JSP 의 특징
134
WAS
Web Application Server 기능, 종류, 도입배경, 이점
135
e-Book
요소기술과 해결해야 할 문제점, 기능적 요구사항

10주차 학습내용

순번
Topic
주요내용
136
Telematics
Car Navigation, 서비스 내용, 지원기술
137
BioInfomatics(BI)
핵심 IT 기술(XML, Data Mining, 인공지능, Grid), 향후 전망
138
e-Learning
e-Learning 산업 육성 방안, SCORM, 가상대학, 가상연수원
139
Java
JSP, Java Script, Applet, AWT, Swing, JavaBeans, EJB
140
CMS
정의, 장점, 핵심기술, KMS와의 비교
141
Open Source
GNU의 GPL 규약
142
광 인터넷
핵심기술, 시스템 구조
143
디지털 컨버전스

144
Ubiquitous Computing
특징, 업체 동향, 실현 Flow
145
사이버 테러
유형, 대응방안
146
정보격차
정보격차 해소방안
147
스팸메일
차단방안, 온라인 우표제, 개인정보 보호방안
148
전자선거
구현기술, 문제점, 발전방향

첫번째 심화학습

순번
Topic
주요내용
1
DB 설계
DB 설계 단계, 산출물, ER 모델링, EER
2
DB 정규화
DB 정규화 절차, Anomaly, 연결함정, 무결성
3
품질관리
품질관리 (QM/QA), ISO12207, ISO9000, CMM(I), SPICE,
Walkthrough / Inspection
4
UML
구성요소, 9가지 Diagram 그리기
5
개발방법론
구조적, 정보공학, 객체지향, CBD, RAD/JAD
RUP, Method/1

두번째 심화학습

순번
Topic
주요내용
6
분산객체기술
분산객체기술 (EJB / COM / DCOM / COM+ / CORBA)
7
저작권 보호기술
저작권 보호기술(Watermark, DOI, INDECS, DRM),
정보공유와의 조화 방안
8
홈네트워크, 정보가전
정보가전, VOD/STB, IEEE1394, PLC, USB, Jini, HAVi, UPnP, IPHN
9
초고속 인터넷, 차세대 인터넷, GRID
초고속 인터넷, 차세대 인터넷, GRID
10
DRS(Disaster Recovery System)
재난복구 방법, BRS, BCP

'IT' 카테고리의 다른 글

SE-COCOMO  (0) 2007.05.29
화일시스템  (0) 2007.05.29
PMP자격증..  (0) 2007.05.07
L4/L7 스위치  (0) 2007.05.07
BCP의 개요 및 개발 과정  (1) 2007.05.07
IT
posted by 구름너머 2007. 5. 7. 09:18

http://blog.naver.com/cinemany/100015851748

출처 블로그 > bls4u님의 블로그
원본 http://blog.naver.com/bls4u/40003090570
PMP란?PMP(Project Management Professional)
PMP는 Project Management Professional의 약자이고 "피엠피"라고 읽는다. 우리말로 굳이 번역하자면 "프로젝트관리 전문가" 또는 "프로젝트관리 기술사"에 해당한다.

PMP의 시작
....
PMP는 1984년부터 미국의 PMI(Project Management Institute)가 시행하는 자격
....제도이다. PMP인증제도는 PMBOK(Project Management Body of.
Knowledge)
....의 발간과 더불어 자타가 공인하는 PMI의 2대 업적 중 하나이다. PMP
인증제도의
....기본 취지는 프로젝트관리의 전문성을 배양하고 프로젝트관리에 종사
하는 사람들
....에게 체계적인 PM기법을 갖추도록하는것이다.

PMP의 출현
....
첫 번째 PMP시험은 1984년 10월 미국의 필라델피아에서 시행되었으며 56명이 응
....시하여 43명이합격했다.

PMP가 아니면 PM이 될 수 없는가?
....
PM(Project Manager)의 자격을 PMP자격 소유로 가름하는 것은 말도 안된다. 또
....
한 PMI가 임의단체이므로 엄격한 의미에서 PMP는 어느 국가의 자격제도도 아니
....
다. 그러나 최근 5년내에 PMP가 국제적으로 인지도가 높아졌으며, 그 숫자도 급격
....
히 늘고 있다. 숫자의 증가와 경영층의 요구가 서로 상승적으로 작용하여 PMP에
....
대한 수요는 지속적으로 증가할 것으로 추측되며 PMP는 점차 세계적으로 공인되
....
는 자격으로 인식되고있다. PMP가 자격이라고는 하나 프로젝트관리가 "관리
....
(Management and Control)"의 한 영역이어서 자격증의 소지여부와 관리능력을
....
비교한다는 것은 말이 되지 않는다. 그러나 동시에 그것이 관리 영역에 속하기 때
....
문에 효과적인 프로젝트관리에 필요한 기본적이고 체계적인 PM기술을 확보하고
....새로운 기법을 연마하기 위한 지속적인 활동 또한필요한것이다.

PMP의 공신력
....
1987년 이후 미국과 캐나다에서는 PMP시험을 장려하거나 PMBOK을 회사 규준으
....
로 삼는 기업들이 많이 나타났다. Asea Brown Boveri (ABB), AT&T, Electronic
....
Data Systems (EDS), General Motors Corp., ICP Kaiser Engineering, PECo
....
Energy, USAA, US West Communications, Niagara Mohawk, CRS Sirrine,
....
NCR, 캐나다 국방부, Citibank, World Bank등이다. 몇몇 기업의 사장들은 PM을
....
임명할 때 PMP를 우선적으로 임명하고 프로젝트관리 관련 부서에서 진급을 하려
....면 PMP자격을 취득하여야 한다는 조건을 내세우고 있는 실정이다.

국내에서의 PMP 공신력
....
1995년 PMP시험을 국내에 유치한 후 현재 국내 PMP자격 소지자는 1400명정도
....(2003.03. 현재)에 이르고 있으며, 매년 급증하는추세이다.

....이와같이 급증세의 이유로추측되는것은

..... IMF이후 외국 자격증에대한관심고조
....
월드컵 경기장의 CM발주로 시작된 건설사업관리(CM: Construction
........Management)
계약의 가시화로 향후 거론될 가능성이 있고 "CM자격" 또는
........PQ점수에 "PMP 보유" 가산점에 대한 기대및예상
....
정보산업분야의 생산성 향상을 위한 PM기법 도입으로 인한 SI(System
........ Integrator)업체에서의 PMP취득 독려 등이다.
....
건설업계에서는 건설기술자 등록으로 기술사 자격증이 상대적으로 가치가 적어
........지면서.실질적이고 객관적인 능력 평가 수단으로 PMP 자격을 인정할 것이 예측
........된다.


PMP의 처우
....
"PMP의 공신력"에서 언급한 대로 외국에서는 프로젝트 책임자의 자질판단 기준으
....
로 삼는 경향을 보이고 있고, 국내 선도 기업들은 PMP 수당을 지급하거나, 응시료
....
지원, 교육비 지원, PMP 자격취득자에 대한 미국 PMI Symposium 참가기회 부여
....
등으로 간접적인 독려 및 처우를하고 있다.

....
PMP 수당은 아직 기술사수당보다 적은 편이어서 월 6만원 내지 월 20만원 지급하
....고있는실정이다.

PMP 자격응시 및 취득에 따른 이득
....
PMP 시험준비에 투자하는 시간을 응시원서 제출과 동시에 수험준비를 하여 최소
....
200시간이라는 것이 중론이고, 응시원서제출과 동시에 수험준비를 시작하여 400여
....시간을 투입하고 1999년도 시험에 합격한사례도있다.

.... 수험자 입장에서의 이득
.......
PMP 시험공부는 PMBOK의 완전한 이해로부터 시작된다. PMBOK는 PM에 관
.......
한 수많은 기준서 중 하나이나, 미국의 PMI가 1996년판을 발행한 이후로 세계적
.......
인 기준으로 자리를 잡아가고 있다. 따라서 PMBOK를 완전히 이해하고 관련 서
.......
적을 공부하면, PM에 관한 지식체계가 정립된다. 또한, PM에 관한 상반되거나
.......상이한 견해들이 통일되어 PM관련자간의 통일된 용어와 개념을공유하게된다.

.... 경영자 입장에서의 이득
.......
PMP 공부는 개인이 근무시간외에 하는 것이어서 일방적인 외부교육을 670시간
.......
(3개월 이상)정도 시키는 것과 동일한 효과를 얻을 수 있다. 또한 기업내에서의
.......
PM용어/지식/개념이 달라서 생기는 커뮤니케이션 손실비용을 크게 절감할 수
.......
있다. 이러한 이득을 금액적으로 추산하면 1인당 5,000만원 이상의 이득이 기대
.......
되어, 그 이자소득을 기업내의.PMP에게 돌려줄 경우 월 30만원이상의수당지급
.......이가능해진다.


PMP가 되는 절차
....
PMP응시 제출서류
.......자격심사는 학력 및 프로젝트 관리 실무경력에 대해 각자 제출한 서류를 미국PMI가
.......엄격한 서류 전형으로 심사하고 유효기간은 6개월이며, 자격심사 합격자에 한하여
.......시험허가서 (Eligibility Letter)를 개별송부한다.
.......(총 소요기간 5~6주) 자격심사 합격자는 시험 허가서에 기재된 Voucher Number를
.......가지고 Prometric Testing Center에서 응시.
....
PMP응시자는 준비한 응시서류를 시험 주관기관인미국의 PMI에송부한다
....
미국의 PMI에서는 응시자격을 심사하여 자격심사결과 시험허가서(Eligibility
.......
Letter) 또는 서류에 대한 보완요구를 응시자에게 직접통지한다.
....
시험
.......시험은 서울의 컴퓨터센터에서 수시 시행되며, 4지 선다형 문제 200개를 4시간
.......
내에 푼다. 응지자는 시험허가서에 기재되어 있는 Voucher Number를 가지고
.......컴퓨터 센터에 개별신청하여 응시희망 날짜를 선택한다.
....
합격기준 : 200점 만점기준으로 137점(절대평가 방식)
.......PMI 기준에 따르면 70%가 정답으로 추산됨. 시험종료후 그 자리에서 시험결과
.......를 알 수 있다.
....
합격통지 : 시험종료후 컴퓨터를 통하여 현장에서 시험결과를 알 수 있으며, 인
...................... 증서 등은 PMI가 공식문서로 응시자에게 개인적으로 직접 통지.

[자료 출처 :PMI, 한국 프로젝트 관리기술회 홈페이지]

'IT' 카테고리의 다른 글

화일시스템  (0) 2007.05.29
키워드  (0) 2007.05.18
L4/L7 스위치  (0) 2007.05.07
BCP의 개요 및 개발 과정  (1) 2007.05.07
S/MIME의 개요  (0) 2007.05.07
IT
posted by 구름너머 2007. 5. 7. 09:17
[L4/L7 스위치①] L4/L7 스위치의 개요
로드밸런싱의 ‘꽃’, L4/L7 스위치 관심 집중
스위칭ㆍ패킷 필터링ㆍ미러링ㆍ보안 기능 결합 …
초당 연결수ㆍ동시 연결수ㆍ처리용량이 성능 잣대


L4/L7의 등장 배경

최근 다양한 기능과 성능을 보유한 이더넷 스위치들이 등장하고 있다. 이더넷 스위치의 발전 과정을 다양한 측면에서 바라볼 수 있으며 <그림 1>과 같이 대역폭(Bandwidth), 기능(Function), 지능(Intelligence)을 큰 축으로 발전하고 있다.



<표1> OSI 주요 계층에 쓰이는 프로토콜
OSI 참고모델의
주요 계층
널리 쓰이는 프로토콜
레이어 2이더넷Ⅱ, IEEE802.3/802.2 SNAP, 네트웨어, 802.3 Raw
레이어 3IP, ARP, IPX, Non IP/IPX, IPv6
레이어 4TCP, UDP, ICMP
레이어5~7HTTP, SNMP, 텔넷, FTP, RTSP


대역폭 측면에서 이더넷 스위치는 초기의 CSMA-CD(10Mbps)방식에서 패스트 이더넷, 기가비트 이더넷, 10기가비트 이더넷으로 확장되고 있다. 한편 기능적 측면에서는 랜 안에서 네트워킹 유닛(호스트) 간에 물리적인 연결을 목적으로 했던 이더넷 L2 스위치는 지역망이 복잡해지고, 단일 랜 환경이 맨 영역으로 확대됨에 따라, 가상랜 QoS를 특징으로 하는 L3 스위치가 기업시장을 중심으로 광범위하게 사용되고 있다. 이더넷 스위치를 지능적인 측면에서 크게 OSI 참조 모델에 의한 7계층의 정의에 따라서, L2/L3/L4/L7 스위치로 구분이 가능하다.


레이어 4 스위치ㆍ로드밸런서의 차이

레이어 2 스위치는 OSI 참조 모델의 레이어 2 범주(이더넷 프로토콜 상에서 소스 MAC, 목적지 MAC)에서 패킷의 경로를 제어하고, 레이어 3 스위치는 OSI 참조 모델의 레이어 3 범주(TCP/IP 프로토콜 상에서는 소스 IP, 목적지 IP)에서 패킷의 경로를 제어한다.

레이어 4 스위치는 기존의 이더넷 레이어 2 스위치와 다른 차원이 스위치다. 레이어 4 스위치는 레이어 4 범주의 패킷을 분류하고 경로를 제어하는 것에서는 레이어 2 스위치 혹은 레이어 3 스위치와 동일하지만, 레이어 4 스위치의 독특한 기능은 레이어 4에서 발생하는 세션을 관리하고, 세션 관리를 위한 패킷도 조작한다는 것이다.

레이어 4 스위치의 기능은 벤더마다 조금씩 차이가 있을 수 있으나, 핵심 기능은 로드밸런싱 기능이다. 로드밸런싱 기능을 제공하는 제품군을 일반적으로 ‘로드밸런서’라고 부른다. 이런 차원에서 레이어 4 스위치는 로드밸런서의 한 제품 형태라고 할 수 있다. 로드밸런서의 제품들은 크게 서버 기반, 스위치 기반, 소프트웨어 기반의 제품으로 나눌 수 있다.

서버 기반 로드밸런서는 이더넷 카드를 여러 개 장착한 일반 서버형태로 구성되어 있다. 주된 기능은 범용 CPU상에서 포워딩 엔진으로 동작한다. 시중에는 F5 네트웍스의 BIG-IP, 코요테 포인트 이퀄라이저, 시스코의 로컬디렉터, 넷스케일러의 제품들이 있고 리눅스 오픈 프로젝트의 리눅스 버추얼 서버 프로젝트가 여기에 속한다.

소프트웨어 기반의 제품은 소위 클러스터링 소프트웨어로 분류할 수 있다. 별도의 각각의 서버에 클러스터링 모듈을 탑재해 트래픽을 분산하며, 다양한 트래픽 관리기능을 갖추는 것이 특징이다. 서버의 종류나 운영체제에 의존적인 면이 단점이다. 마이크로소프트 2000 서버의 클러스터링 서비스, 리소네이트(Resonate)의 제품들이 이에 속한다.

이에 반해 스위치 기반의 로드밸런서는 일반 L2/L3 스위치의 기능과 형태에 추가적으로 로드밸런싱이 더해진 형태이다. 이러한 형태의 스위치는 레이어 4의 기능을 전용으로 수행하기 위해 L2/L3 칩을 내장하면서 동시에 로드밸런싱을 고속으로 수행하기 위한 전용 엔진을 탑재하고 있으며, 전문적으로 로드밸런싱을 위한 ASIC을 장착하기도 한다. 시스코의 컨텐츠 서비스 스위치, 노텔의 알테온 웹 스위치, 파이오링크의 핑크박스 시리즈, 파운드리의 서버아이언 제품이 여기에 속한다.

역사적으로 L4 스위치의 모티브는 서버기반의 로드밸런서였다고 할 수 있으며, L4 스위치는 로드밸런싱 기능 이외에도 L2/L3 스위칭 기능 및 패킷 필터링, 미러링, 보안 등 다양한 기능들이 추가되고 있다.


L4/L7 스위치의 주요 기능

L4/L7 스위치의 주요 기능은 크게 다음과 같다.

  • 서버 로드밸런싱(SLB) 기능
  • 캐시 리다이렉션(CR) 기능
  • 방화벽/VPN 로드밸런싱(FWLB) 기능
  • 패킷 미러링/필터링 기능
    보안 기능

    이러한 기능들을 통해 L4 스위치는 인터넷 서버의 성능 확장, 서비스의 속도 개선, 인터넷 서비스의 안정성 향상, 인터넷 트래픽을 효율적으로 관리해야 하는 경우에 적용될 수 있다.

    SLB기능은 인터넷의 서버(웹서버, 파일 서버, 메일 서버 등)의 부하분산 기능을 말한다. 여러 대의 서버를 마치 하나의 서버(서버 팜)처럼 동작하게 함으로써, 인터넷 서버의 성능 및 안정성을 향상시킬 수 있다. SLB에 대한 기능은 다음 호에 자세히 다룬다.

    L4 스위치의 CR기능은 인터넷으로 급속한 확산으로 많이 사용되고 있는 캐싱 서버를 좀더 효율적으로 사용할 수 있게 하는 것이다. 캐시는 인터넷의 서버와 클라이언트 단에서 속도 향상과 왠 구간의 트래픽 감소을 위해 서버의 데이터를 일시적으로 저장하는 장치이다. 과거에 캐싱서버는 클라이언트 측면에서 프락시 형태로 동작했지만, L4 스위치를 사용해 ‘투명한’ 캐싱 서비스를 제공할 수 있다. 여기서 투명하다는 의미는 클라이언트단에서 웹브라우저에 아무런 설정 없이 캐싱 서비스를 제공받을 수 있다는 의미이다.

    L4 스위치의 FWLB기능은 방화벽이나 가상사설망(VPN) 게이트웨이 장비의 성능향상과 안정성향상을 위한 기능이다. VPN게이트웨이는 방화벽과 다른 장비로 분류되지만, 패킷의 흐름이 유사한 관계로 L4 스위치에서 FWLB기능으로 분류된다. 기존까지 VPN게이트웨이 장비를 로드밸런싱하는 경우는 VPN게이트웨이의 특성에 의해 기술적인 문제가 많았으나, 시장의 요구와 기술적인 문제의 해결로 인하여 점차로 보편화되고 있는 추세이다. VPN 장비의 로드밸런싱 기능을 위해서는 특별한 패킷 처리가 필요하다.


    L4/L7 스위치의 성능 지표

    L4/L7 스위치는 L2/L3 스위치로서 모두 동작할 수 있는 기능이 있지만, L4/L7 스위치의 가장 중요한 특징은 로드밸런싱 기능이라고 할 수 있다. 로드밸런싱 기능은 L2/L3 기능과 달리 국제 표준에 의해 정해진 기능이나 성능 지표가 없다.

    1. 초당 연결수(Connections per second)

    순수한 로드밸런싱의 성능을 나타낼 때, 시간당 얼마만큼의 TCP 트래픽(예, HTTP)을 처리할 수 있느냐가 중요한 지표이다. 하나의 TCP 연결은 클라이언트와 서버간의 쓰리-웨이 핸드쉐이크(three-way handshake) 동작(하나의 SYN과 두개의 ACK 패킷)으로 정의된다. 따라서 이 성능 지표는 제품에 따라 ‘초당 트랜잭션(transactions per second)’ 혹은 ‘초당 세션(sessions per second)’으로 불리기도 한다. 하나의 TCP 세션을 열고(opening) 닫는(closing) 작업은 L4 레벨의 기본 세션관리의 가장 핵심적인 동작이고, L4의 포워딩 엔진 부분에 가장 많은 작업량을 요구하는 작업이므로, 이 지표는 L4의 네트워크 프로세서 디바이스나 커널의 성능에 따라 좌우된다.

    시장에 출시된 제품들은 TCP 세션을 시간당 얼마나 성립(opening)할 수 있는지를 제시하고 있다. 따라서, 만약 세션을 닫는 동작까지를 고려할 경우 초당 연결 수를 계산하면 세션이 성립되는 경우의 초당 연결 수의 약 2분의 1이 나온다고 보면 된다.

    한편, 모든 로드밸런싱에서 초당 연결 수가 의미 있는 수치는 아니다. 예를 들어 SLB에서 UDP 패킷에 대해 초당 연결 수는 무의미한 값이다. UDP 패킷은 쓰리-웨이 핸드쉐이크 방식이 아니라, 커넥션리스(connection-less) 프로토콜이므로 단일 UDP패킷에 대하여 연결(connection)이 바로 성립된다. 따라서, UDP 프로토콜에 대한 로드밸런싱을 구축하는 경우에 초당 연결 수는 의미가 없다고 할 수 있다. 한편, FWLB에서는 초당 연결수 보다도 다음에 설명할 처리용량(throughput)이 더 중요한 성능 지표라고 할 수 있다.

    2. 동시 연결수(Concurrent connections)

    동시 연결수는 얼마나 많이 성립된 TCP 세션을 유지할 수 있는지에 대한 수치이다. 일반적으로, 하나의 TCP 세션이 열렸을 때, 바로 즉시 세션이 닫히는 것이 아니라, 사용자의 그 TCP 세션을 사용하고자 하는 시간동안 계속 세션을 유지를 하여야 한다. 특히, HTTP v1.1 프로토콜에서는 HTTP v1.0에 비해 TCP 세션하나를 지속적으로 사용하므로, 로드밸런서 장비는 성립된 TCP 세션을 되도록 오래 지속할 필요가 있다.

    동시 연결수는 L4 스위치의 네트워크 프로세스나 커널에 부착된 메모리의 양에 의존적이다. 시중에 출시된 L4 스위치가 제공하는 동시 연결수는 수천개에서 무제한(unlimitted)까지다. 특히, 무제한까지 지원한다는 의미는 이론적으로 메모리를 사용하지 않는 스테이트레스(state-less) 로드밸런싱 알고리즘(예, 해싱)을 적용할 경우이며, 현실적인 의미에서는 기타 네트워크 장벽(barrier)에 의해 동시 연결수는 제한될 수밖에 없다.

    한편, UDP 패킷에 대해 오해가 될 수 있는 점이 있다. UDP 패킷은 커넥션리스 프로토콜이므로 UDP 패킷을 로드밸런싱하는 경우에 동시 연결수와 연관이 없다라고 생각할 수 있으나 이는 잘못된 견해이다. UDP 패킷에 대한 세션 성립을 L4 스위치가 수행하지는 않지만, 상태를 기억해야 하는 로드밸런싱 알고리즘(예: 라운드 로빈, 리스트(least) 커넥션)을 사용하는 경우 각 UDP 패킷과 실제 서버의 연결정보를 기억해야 하므로 최대 연결 수는 TCP에서와 같이 중요한 지표라고 할 수 있다.


    3. 처리 용량(Throughput)

    시중에 출시된 많은 L4 스위치에서 ‘우리 제품의 스위칭 용량이 몇 Gbps, 혹은 수십 Gbps다’ 라는 사양을 제시한다. 이러한 사양은 고객이나 사용자에게 로드밸런싱(L4 레벨의 패킷 처리)을 수 기가 혹은 수십 기가에서 처리할 수 있다는 오해를 불러일으키기 쉽다. 스위칭 용량이 수 Gbps, 혹은 수십 Gbps라는 의미는 L4 스위치 내의 포트간에 패킷을 처리하는 L2 레벨의 패킷 처리 용량, 더 엄밀하게는 내부의 스위치 패브릭의 용량이 그렇다는 의미이지 L4 레벨의 모든 동작이 그 용량으로 처리된다는 것은 아니다. 정확한 L4의 용량은 이와는 별도로 제시되어야 함이 옳다. 일반적으로 L4 스위칭에 대한 처리 용량은 다양한 구성 및 경우에 따라서 다른 값을 나타낼 수 있으므로, 하나의 수치로 표현될 수 없다.

    다른 한편으로, 처리 용량은 각 스위치 장비가 지원하는 업링크(Uplink) 포트의 인터페이스 규격(패스트 이더넷, 기가비트 이더넷)에 제한된다고 할 수 있다. 예를 들어, 수 Gbps의 L2 스위칭 처리용량을 가지는 L4 스위치라고 하더라도, 업링크에 따라서, 최대 100Mbps, 1Gbps에 제한될 수밖에 없다. 이러한 제한점을 극복하기 위해서 업링크를 여러 개 트렁크해 사용하는 것이 제시 될 수 있으나, 일반적인 L2 레벨의 트렁킹(trunking)은 간단한 해싱함수에 의해 패킷을 분산시키므로 두개 이상의 업링크 포트를 효율적으로 사용할 수 없는 단점이 있다. 이러한 업링크 포트에 대한 성능의 제한을 극복하기 위해서 SLB의 구성에서는 DSR(Direct Server Return) 기술을 사용할 수 있는데, 이는 다음 호에서 자세히 설명하기로 한다.

    처리 용량을 나타내는 단위는 두 가지 형태로 생각할 수 있다. 하나는 bps(bit per second)이고, 또 하나는 pps(packet per second)이다. 여기서 패킷이란 이더넷 패킷을 대부분 지칭하고, 이더넷 패킷은 최소 40바이트에서 최대 사이즈는 1,500바이트가 일반적이다. 하나의 패킷은 바이트의 단위로 표현되고, 1바이트=8비트이므로, 아래의 수식으로 둘 사이의 관계를 표시할 수 있다.

    bps = (pps) x (패킷 사이즈) x (8)
    따라서, 처리용량을 pps로 제시할 경우는 패킷의 사이즈를 함께 제시하여야 정확한 bps의 처리용량을 계산할 수 있다. 반대로, bps로 처리용량을 제시할 경우는 처리에 사용되는 패킷의 길이를 제시해야 한다.

    예를 들어, 처리용량이 10,000pps라고 하면 10,000pps=10K×1.5Kbytes(MTU)×8bps=120 Mbps 이므로 최대로 처리할 수 있는 120bps의 이론값을 갖는다. 하지만, 실제 pps의 기준이 모호하므로 만약, 실제 환경에서 많이 전송되는 패킷 사이즈, 약 64바이트 패킷을 기준으로 한다면 10,000pps=10K×64바이트× 8bps=4.9Mbps이다. 이는 앞서 제시한 이론적인 최대치인 120Mbps와 큰 차이가 있다. 100Mbps 패스트 이더넷 인터페이스와 1Gbps 기가비트 이더넷 인터페이스를 100% 활용하는 경우에 각 패킷 사이즈에 따라, pps를 계산하면 <표 2>와 같다.

    <표2> 패킷 사이즈에 따른 PPS 계산
    64바이트128바이트512바이트1024바이트1500B바이트
    100Mbps204.8K102.4K25.6K12.8K8.7K
    1Gbps2048K1024K256K128K87.3K


    4. 임계치(Threshold)

    좀 더 현실적으로 어떠한 L4 스위치도 처리해야 하는 트래픽이 많아지거나 고급의 기능을 수행할 경우에는 처리속도가 급격히 떨어지는 현상이 발생할 수 있다. 만약, 어떤 L4 스위치가 L4 스위칭을 처리할 경우에는 아무런 지연현상(Latency) 없이 90Mbps로 패킷을 처리할 수 있지만, URL-파싱(parsing)이나 쿠키 기반 퍼시스턴스(cookie-based persistence)를 적용했을 경우 45Mbps 정도만을 처리할 수 있을 것이다. 이것은 위의 기능을 수행하기 위해 L5~L7 레이어 레벨에서 패킷을 더 조사하고, 조작하여야 하기 때문이다. 이러한 현상을 임계현상이라고 정의하고, 임계현상이 발생하는 처리용량을 임계치라고 한다. 예를 들면, HTTP의 리퀘스트에 대한 로드밸런싱을 어느 정도까지는 무난히 처리하다가, 어느 임계치를 넘으면 처리 속도가 현저히 떨어질 수 있다. 이러한 특성은 서버기반의 로드밸런서와 ASIC을 기반으로 하는 로드밸런서 모두에서 나타날 수 있다. 특별히, 서버기반의 로드밸런서에서는 L4의 처리를 중앙 CPU에서 처리하는 부분이 많으므로 선형적으로(linearly) 성능의 저하가 발생하는 경우가 많다. 반면에 분산처리 구조의 ASIC이나 전용 하드웨어 구조를 가진 L4 스위치는 처리용량이 큰 장점이 있으나 임계현상이 두드러지게 나타날 수 있다.

    최근에는 이러한 임계현상의 극복을 위해서 L4 기능뿐 아니라, L5~L7 기능을 성능저하나 지연현상(Latency) 없이 처리하기 위한 네트워크 프로세서 혹은 ASIC 개발에 주력하고 있다. 이러한 네트워크 프로세서 칩 개발 동향 및 L4/L7 스위치 구조에 대해서는 다음 호에서 자세히 설명한다. (
    http://www.datanet.co.kr/)
    [L4/L7 스위치②] L4/L7 스위치의 로드밸런싱 해부
    SLB 구성 방식

    서버 로드밸런싱 기능은 여러 대의 서버를 마치 하나의 서버처럼 동작시킴으로써 성능을 쉽게 확장하게 하고, 서버의 장애 발생시에도 타 서버로 운영이 가능하게 함으로써 신뢰성을 향상시키는 방법이다. 여러 대의 서버들을 리얼 서버(real server)라고 부르고, 리얼 서버의 집합을 클러스터(cluster) 혹은 가상 서버(virtual server)라고 부른다. 서버 로드밸런싱의 예는 <그림 1>과 같다.



    <그림 1>의 구성에서는 웹 서비스(HTTP, TCP 포트=80)와 이메일 서비스(S-MTP, TCP 포트=25)의 두 가지 종류에 대해 서버 로드밸런싱을 제공한다. SLB 구성방법은 설치 관점에 따라 여러 가지로 분류할 수 있다. 우선 네트워크 설정을 기준으로 브리지(bridge mode)방식과 라우팅(routing mode) 방식으로 나눌 수 있고 물리적인 포트 연결 차원에서 외팔 (one-armed) 방식과 양팔(two-armed ) 방식이 있다.

    브리지 방식은 가상 서버와 리얼 서버의 네트워크 대역이 동일한 경우를 말하며, 라우팅 방식은 두 네트워크 대역이 다른 경우를 의미한다. 예를 들어 <그림 1>에서 가상 서버의 IP(VIP)는 192.168.10.1/24 이고, 각각의 리얼서버는 동일한 192.168.10.x/24 (x=2,3,4)이다. 따라서 <그림 1>은 브리지 방식의 SLB이다.

    브리지 방식인 경우에는 외부의 고객이나 관리자가 가상 서버 및 리얼 서버로 직접적인 접속이 가능하다. 또한, 리얼 서버에서도 인터넷과 같은 외부망으로 접속이 가능하다. 브리지 방식은 관리의 편리성이 높인 반면에, 외부 보안에 취약하다는 것이 단점이다.

    <표1> SLB 분류
    기준
    세부 방식
    네트워크 설정
    브리지(bridge mode) 방식
    라우팅(routing mode) 방식
    포트 연결
    외팔(one-armed) 방식
    양팔(two-armed) 방식


    라우팅 방식에서는 가상 서버와 리얼 서버의 네트워크 대역이 다르다. 따라서, L4/L7 스위치는 양변의 네트워크 대역에 대한 게이트웨이 역할을 수행한다. 라우팅 방식에서는 리얼 서버들의 기본 게이트웨이 주소는 L4/L7 스위치 자신이 된다. 이러한 구성에서는 리얼 서버로 직접적인 접속을 막기 위해 사설 IP 대역을 많이 사용하고 있다. 외부에서 접속하기 위해서는 각 리얼 서버에 NAT를 수행한다. 라우팅 방식은 관리의 편리성이 낮은 반면에, 외부 보안에 강하다는 장점이 있다.



    포트연결을 기준으로 하는 분류에서 외팔 방식이란 SLB를 위해 L4에 연결되는 포트 구성이 한 개의 포트를 사용하는 경우를 말한다. <그림 1>에서는 두개의 포트를 사용하므로 양팔 방식으로 분류된다. 반면, <그림 2>는 외팔방식의 구성으로서 1개의 포트를 사용해 SLB를 수행한다. 일반적으로 외팔 방식과 양팔 방식의 데이터의 흐름은 차이가 없으며 몇 개의 포트를 사용하느냐가 관건이다. 한 개의 포트를 사용하더라도 내부적으로 가상적인 두개의 포트를 사용하는 것과 동일하다.

    DSR(Direct Server Return)

    DSR은 SLB의 변형적인 구성이다. 앞에서 설명한 SLB는 가상 서버의 IP(VIP)로 요청되는 패킷이 NAT 방식에 의해 리얼 서버의 IP로 변환되고, 응답 패킷은 반대로 리얼서버의 IP가 L4 스위치에 의해 VIP로 변환된다. 하지만, DSR에서는 이러한 NAT 방식을 취하지 않고, L3 레벨의 패킷 조작 없이 리얼 서버들로 패킷이 분산된다. 사전에 각각의 리얼 서버는 VIP의 인터페이스를 받을 수 있도록 설정되어 있어야 하며, 각각의 리얼 서버는 L4를 거치지 않고 직접(directly) 사용자에서 응답 패킷을 전달한다.

    DSR을 구성하기 위해서는 라우터 방식보다는 브리지 방식이 이치에 맞으며, 양팔 방식 보다는 외팔 방식이 더 단순하고 효과적이다. 특히, 양팔 방식인 경우에는 모든 패킷들이 L4 스위치를 통해 전달되는 오버헤드가 존재한다. 반면에 외팔 방식은 L2스위치를 거쳐 직접 외부망으로 전달되므로 L4의 부하를 줄일 수 있는 장점이 있다. 특히, 대규모 웹사이트에서 업링크의 트래픽이 많을 경우에 매우 유용하다고 할 수 있다.


    글로벌SLB(GSLB)

    GSLB는 신뢰성과 인터넷 서비스 속도를 더 향상시키기 위해서, 네트워크 공간과 지역적 공간 모두에서 리얼 서버를 분산 배치해 이를 로드밸런싱 하는 기능을 말한다. 앞에서의 SLB는 엄밀한 의미에서 로컬 SLB라고 할 수 있다. 즉 단일 대역내에 있는 서버들에 대한 부하 분산만을 담당했기 때문이다. GSLB의 예는 <그림 3>과 같다. www.a.com이라는 사이트를 전세계 사용자가 접속하는 경우에 각 지역(아시아, 유럽, 미국)마다 로컬 SLB를 구축한다. 각 지역의 사용자가 서비스 요청을 했을 때, 지역적으로 가까이 있거나 응답속도가 빠른 쪽으로 서비스 요청을 분산시킨다.



    GSLB는 특정 도메인(예, www.a.com)으로 들어온 요청을 분산시키는 것이 주된 기능이고, DNS를 변형해 구성한다. DNS 기능은 기본적으로 도메인 네임에 대한 쿼리 요청에 대해 응답을 주기 때문에, 그 응답을 변형해 서비스 요청을 지역적으로 분산되어 있는 서버들로 전달할 수 있다.

    좀더 구체적으로, GSLB를 구현하는 방법은 GSLB장비 자체가 정식 DNS(Authoritative DNS)로 동작하는 방법과 DNS 프록시(proxy)로 동작하는 방법이 있다. 정식 DNS는 www.a.com에 대한 도메인 네임 쿼리 요청에 대해, 자체적인 로드밸런싱 알고리즘에 의해 가장 적합한 사이트(서울, 런던, 뉴욕)를 선택해 쿼리에 응답한다.

    DNS 프록시 방식은 내부에 리얼 정식 DNS 서버를 배치한 후, 외부에는 GSLB 장비 자신이 DNS 서버로 등록해 외부의 도메인 네임 쿼리 요청에 대하여 대리인 역할을 해주면서, 쿼리 응답 패킷을 가로채서 가장 적합한 사이트로 조작하는 방식이다. GSLB는 다국적 기업의 웹사이트나, 전세계를 대상으로 하는 e-커머스 사이트에 적합한 기술이라고 할 수 있으나, 국내에서도 천재지변으로 인한 백업 사이트 구축, 대단위 데이터 전송이 필요한 e-커머스에 필요한 기능이다. GSLB의 구축과 사이트 관리는 로컬 SLB에 비하여 복잡하고 어려운 것이 사실이다. 하지만, 신뢰성이 반드시 필요한 사이트와 전송 데이터의 양이 많은 인터넷 사이트가 확산됨에 따라서, CDN(Contents Delivery Networks)과 더불어 점차로 범용화되고 있다.

    캐시 리다이렉션(Cache Redirection)

    캐싱 리다이렉션 기능은 내부 망에서 외부 인터넷으로 향하는 웹(WWW) 트래픽을 가로채 캐싱 서버에게 전달하는 기능을 말한다. 내부의 호스트 컴퓨터는 캐싱 서버를 프락시로 등록할 필요가 없이 투명한(trapsparent) 방식으로 캐싱 서비스를 할 수 있다. 또한, 캐싱 리다이렉션을 통하여 웹 트래픽(TCP=80포트)만을 처리하기 때문에 캐싱 서버에서 불필요한 패킷 처리를 막아줘 응답속도를 빠르게 해 줄 수 있다.



    투명 캐싱 서버의 동작은 다음과 같다. 사용자의 웹 트래픽(URL 페이지) 요구는 L4 스위치에 의해 우선적으로 캐싱 서버에 보내진다. 해당 트래픽의 URL이 캐싱 서버에 저장되어 있으면(hit), 캐싱 서버가 즉시 응답해준다. 만약 캐싱 서버에 저장된 내용이 아니라면(missed) 캐싱 서버가 프락시로 동작해 해당 URL에서 페이지를 요청해 다시 사용자에게 전달하고, 캐싱 서버 자체에 저장한다.

    경우에 따라 RTSP(Real Time Sstreaming Protocol : TCP, UDP=554), NNTP(Net News Transfer Pr-otocol : TCP=119) 트래픽에 대해 그룹을 등록해 서비스 할 수 있다. 인터넷 트래픽 뿐 아니라 임의의 응용프로그램에 대해 포트 설정을 통해 리다이렉션 서비스를 구현할 수 있다.

    L4 스위치는 패킷 재전송(Packet Redirection) 기술에 기반하고 있다. 이 패킷 재전송 기술을 이용해 투명한 캐싱 서버 동작이 가능하며 또한, 로드밸런싱 기능을 통해 캐싱 서버들의 집합(서버군)을 관리하는 것이 가능하다. 이런 방법으로 하나의 L4 스위치에 캐싱 서버를 여러 대로 확장 할 수 있다.


    방화벽 부하 분산(FWLB)

    인터넷의 보안을 생각할 때 방화벽은 필수 사항이다. 그러나, 방화벽 한 대로 서비스를 제공할 경우, 단일오류지점(single point of failure)이 발생할 수 있다. 또한, 애플리케이션 수준의 프락시를 이용해 높은 보안 수준을 제공하기 위해서 많은 부하가 방화벽에 걸리게 되어 응답시간의 지연을 초래한다. 이러한 문제점들은 최근의 전자상거래 환경에서는 사업을 수행하는데 치명적인 걸림돌이 될 수 있다. FWLB의 목적은 크게 다음의 3가지로 요약할 수 있다.

    ■ 하나 이상의 방화벽을 추가해 가용성 및 성능을 향상시킨다.
    ■ 동적인 로드분산을 통해 응답속도를 향상시킨다.
    ■ 시스템 변경 없이 방화벽 확장 및 관리가 쉽도록 한다.

    FWLB를 구성하기 위해, 공인망(Public network)과 사설망(Private network) 사이에 2대의 L4 스위치(상위 L4 스위치, 하위 L4 스위치)를 배치한다. 상위 L4 스위치는 외부망에서 내부망으로 들어오는 패킷에 대한 부하 분산을 담당하며, 하위 L4 스위치는 내부망에서 외부망으로 나가는 패킷에 대한 부하 분산을 담당한다.

    FWLB의 중요한 특징 중 하나는 동일한 세션에 속하는 패킷들은 모두 동일한 방화벽으로 전송되어야 한다는 점이다. 각 방화벽은 세션의 상태정보를 통해 패킷 필터링을 수행하기 때문에, 현재 상태에 맞지않은 패킷이 들어올 경우 부적합한 패킷(illegal packet)으로 간주해 삭제하게 된다. 즉, L4 스위치에 의해 들어오고 나가는 패킷이 서로 다른 방화벽으로 전송되면 세션을 유지할 수 없게 된다. 따라서, 상위 L4 스위치와 하위 L4 스위치는 입출력되는 패킷의 경로를 기억해 경로를 지속적으로 유지할 수 있도록 한다.



    또한 DMZ 구간이 있는 경우에도 경로를 지속적으로 유지하기 위해여 DMZ 구간에 별도의 L4 스위치가 배치된다. <그림 5>는 위에서 설명한 일반적인 FWLB 구성이다.


    VPN 부하 분산(VPNLB)

    VPN 게이트웨이는 네트워크상의 배치와 패킷 흐름이 방화벽과 유사한 점이 많지만, 부하분산 입장에서는 매우 다른점이 존재한다. VPN 게이트웨이는 일반적으로 서버/클라이언트 개념으로 본점-본점간 혹은 본점-지점간의 배치되는데, 특히 본점-지점간의 구성이 일반적이다. 본점-지점 구성에서 본점으로의 터널링 접속은 지점단의 VPN 게이트웨이에서 접속하는 방법과 원격 엑세스 사용자(remote access users)에서 접속하는 방법이 있다. 어떤 경우이든, 본점에 접속하기 위해 사용하는 터널링 프로토콜은 IPSec, L2TP, PP2P 등이 있다. <그림 6>은 본점에 VPN 게이트웨이들에 대해 VPNLB를 구성한 예이다.



    해싱 알고리즘의 제한점

    방화벽은 패킷이 지나가는 경로에 배치돼 브리지 모드에서는 아무런 패킷의 조작 없이 그대로 전달한다. 반면, NAT를 수행하는 방화벽인 경우에 출발지 IP를 바꾸는 조작을 한다. 따라서, FWLB를 구성하는 경우에 목적지 IP에 대한 해싱(hashing)을 사용할 수 있으므로, 해싱 알고리즘이 많이 사용된다.

    VPNLB에서 해싱 알로리즘을 사용하는 것이 이론적으로 불가능하다. 왜냐하면, VPN 게이트웨이는 터널링 전과 터널링 후에 출발지 IP와 목적지 IP 모두 변경된다. 따라서, 상부 L4 스위치에서 암호화 패킷을 로드밸런싱 할 경우와 하부 L4 스위치에서 복호화 패킷을 로드밸런싱할 경우 일반적인 해싱 알고리즘을 사용할 수 없게 된다. 따라서, 이 경우에는 라우드 로빈(round-robin), 리스트 커넥션(least-connection), 웨이티드 알고리즘(weighted algorithm)을 써야 한다.

    본점-지점간 양방향 접속

    VPNLB에서는 일반적으로 지점에서 본점으로 터널링 접속을 시도한다. 하지만, 본점에서 지점으로 통신을 시도하는 응용(NMS, 지점관리)도 점차 증가하는 추세이다. 본점에서 지점으로 통신을 시도하는 경우에는 하단의 L4 스위치는 상부에 위치한 VPN 게이트웨이 VPN1, VPN2중 어느 게이트웨이와 해당 지점과 터널링이 맺어져 있는지 알아야 한다. 즉, 본점-지점간 양방향 접속이 가능하기 위해서는 L4 스위치와 VPN 게이트웨이 간에 터널링 정보를 공유해야 한다.


    네트워크 로드밸런싱(NLB)

    L4 스위치의 네트워크 부하 분산기능(NLB)은 다수의 인터넷 접속 라인을 사용해 네트워크의 속도와 안정성을 개선하기 위한 기능이다. NLB 기능은 기존에 L4 스위치에서 제공하는 기능은 아니었으나, 사용자의 요구에 의하여 점차로 확산되는 추세다. 제품으로는 파이오링크의 ‘파이오링크1508-NLB’, F5 네트웍스의 ‘링크 컨트롤러’, 라드웨어의 ‘링크프루프’, 팻파이프의 ‘팻파이프 엑스트림’ 등이 있다.

    하나의 ISP(Internet Service Provider)의 인터넷 접속라인을 사용할 경우, 실제 기업이나 학교의 인터넷 접속 환경에서는 아래와 같은 문제점들이 발생한다.

  • 네트워크의 속도가 느려 업무에 지장이 많다.
  • 네트워크의 다운으로 인한 인터넷 사용의 곤란 발생한다.
  • 네트워크 속도 업그레이드에 대한 경제적 부담이 가중한다.
  • 불필요한 트래픽으로 업무상 중요한 인터넷 사용에 지장이 발생한다.

    NLB는 L4 스위치를 이용해 여러 개 ISP들의 전용선들과 ADSL, 케이블모뎀 등의 초고속인터넷 회선을 결합시켜 단일한 전용선처럼 사용하게 한다. 또한 인터넷 트래픽을 효율적으로 관리하여 불필요한 특정 회선에 대한 트래픽 집중현상을 완화해, 트래픽 처리 효율을 최적화한다. NLB를 이용한 네트워크 구성은 <그림 7>과 같다.

    <그림 7>은 내부망에서 인터넷을 사용하기 위해 ISP 1의 전용선 A, ISP 2의 전용선 B 및 케이블 라인, ISP 3의 ADSL 라인을 사용한 경우이다.

    내부망의 IP 대역은 전용선 A의 IP대역과 전용선 B의 IP 대역을 동시에 사용하거나, 사설 IP대역을 설정해 PAT(Port Address Translation) 구성을 설정, 사용할 수 있다. 특히, 케이블 인터넷 라인이나 ADSL/VDSL 라인에서 할당된 IP가 적은 경우에 내부망이 PAT를 사용해 IP를 공유하도록 처리한다.

    NLB에서 사용되는 부하 분산 방식에는 기존의 라운드 로빈, 해싱, 리스트 커넥션, 최대 응답 시간, 최대 대역폭 방식을 사용할 수 있다.

    <그림 8>은 E1 라인 하나만을 사용하는 회사에서 8Mbps ADSL 3개의 라인을 추가해 NLB 구성을 했을 때 대역폭의 증가율을 보여주고 있다.



    또한, NLB의 장점은 인터넷 회선의 고장율을 획기적으로 개선할 수 있다는 것이다. <그림 8>의 예에서 E1 라인과 서로 다른 ISP의 ADSL 라인 3개를 동시에 사용하는 경우에 ‘전용선은 한달에 한번 고장발생 확률, ADSL 초고속인터넷은 10일에 한번 고장한다’는 가정에서 고장율은 <표 2>와 같다고 할 수 있다. (www.dataNet.co.kr)

    <표2> NLB를 이용한 회선 고장율의 개선
    구분
    고장율
    비고
    NLB 적용 전(E1만 사용)
    1/30
    한달에 한번 고장발생
    NLB 적용 후(E1+1×ADSL)
    1/300
    1년에 한번 고장발생
    NLB 적용 후(E1+3×ADSL)
    1/30000
    82년에 한번 고자발생
    [L4/L7 스위치③] L4/L7 스위치의 미래
    지난 2회에 걸친 연재에서 L4 스위치의 등장배경, 개념 및 서버 로드밸런싱, 파이어월/VPN 로드밸런싱, 네트워크 로드밸런싱, 캐싱 서버 리다이렉션, 필터링 기능에 대해 알아봤다. 이번 호에는 L4 스위치를 넘어서 L7 스위치의 개념, 동작원리, 활용 방법 등을 살펴본다. 편집자


    L7 스위치 소개

    이제 IT 업종에 종사하는 사람들 중에서 스위치를 모른다고 하는 사람은 거의 없을 것이다. 스위치의 포트에 UTP 케이블을 연결해 LED에 불이 들어오고, 인터넷이 잘 연결되면 ‘아! 스위치가 잘 동작하는 구나’라고 생각하면 그만일 정도로 간편해졌기 때문이다.

    단순한 더미 이더넷 스위치나 언매니지드(Unmanaged) 기반의 100베이스-TX 스위칭 허브를 사용하는 독자라면 스위치가 아주 단순한 기능을 수행하는 장비라고 생각할 수 있다. 하지만, 좀더 IT계에서 네트워크 관리를 해본 사람이라면 자신이 사용하는 고급기능의 스위치에 대해 완벽히 알고 있다고 장담할 사람이 얼마나 될까? 매니지드(Managed) 기반의 L2 스위치만을 말하는 것은 아니다. 근래 들어 필수 불가결하게 업계에서 사용되는 L3/L4 스위치에 대해 그 다양한 기능과 사양(specification)을 온전히 이해하고 설정해 사용하는 사람은 흔치 않을 것이다.

    L7 스위치로는 탑레이어 ‘앱스위치’, 라드웨어의 ‘웹서버디렉터’, 노텔의 ‘에이스디렉터’, 파운드리의 ‘서버아이언’, F5의 ‘BIG/IP HA+컨트롤러’ 등이 나와 있다. 국내 L4/L7 스위치 관련 제품에는 파이오링크의 ‘핑크박스1000/2000’ 시리즈가 있다. 이와 같은 L7 스위치는 기능 및 목적 시장이 천차만별이다. 이미 다양한 자료를 통해 알려졌듯이 L7 스위치는 컨텐츠를 인지해 스위칭하는 장비이다. L7 스위치는 미션크리티컬한 응용프로그램들(포인트캐스트[Pointcast], ERP 애플리케이션, FTP, NFS, VoIP 관련, 화상회의)의 관리 및 제어에 필요한 솔루션이다. 하지만, L7 스위치에 대해 좀 더 정확한 의미를 이해하는 것이 L7 스위치 제품을 선택하고 사용하는데 도움이 될 것이다.


    L7 스위치의 개념

    L7 스위치란 위에서 언급했듯이 컨텐츠를 인지해 원하는 포트로 전달하는 스위치를 말한다. 하지만 ‘컨텐츠’와 ‘인지’ 라는 말은 매우 광범위하고 애매모호한 기술용어이며 이 두 단어가 L7 스위치의 모든 기능을 내포한다고 보기는 어렵다. 혹자는 L4 스위치와 구별해 OSI 7 참조모델을 참고하면서 L5~L7의 패킷 데이터 영역을 분석해 스위칭하는 장비라고 설명하기도 한다. 이러한 설명은 매우 효율적이고, 적당한 설명이라고 생각한다. 필자의 경험으로 L7 스위치를 한 문장으로 표현하는 것은 어렵다. 하지만 현재 상용되는 L7 스위치가 가져야 하는 기본 기능은 아래와 같다.

    - TCP/UDP 헤더 및 데이터의 일부를 분석하고 분류한다.
    - HTTP URL 기반의 패킷 스위칭 기능을 수행한다.
    - 세션별, 유저별, 혹은 응용별 QoS 정책을 지정할 수 있다.
    - 응용프로그램 레벨의 로직 구성이 가능하다.

    L7 스위치는 L3/L4 스위치의 기능을 대부분 포용하며, 최상 레벨의 스위칭 기능을 제공하는 것은 사실이지만, L7 스위치에 대해 몇 가지 오해의 소지는 존재한다. 아래 몇 가지 오해의 유형을 적는다.

    - L7 스위치는 레이어 7 계층을 위한 스위치다.
    - L7 스위치란 URL 기반 스위치다.
    - L7 스위치는 모든 TCP/UDP 포트(0-65535)에 대한 인지가 가능하다.

    L7 스위치는 L7 계층만을 다루는 것은 아니다. 스위치로서 동작하기 위해 기본적인 L2, L3 스위치 기능을 포함하고, 부분적으로 L4 스위치 기능을 지원한다. 엄밀히 말하면 현재 상용화된 L7 스위치는 레이어 5의 세션 계층 스위칭 역할에 충실하다고 말할 수 있고, 모든 애플리케이션들의 세션을 분류할 수 있는 것은 아니다.

    한편, 현재 L7 스위치 장비는 웹 트래픽에 대한 패킷 구별 및 제어가 많은 부분을 차지하는 것이 사실이지만, L7 스위치 장비가 URL 만을 다루는 것 만은 아니다. 많은 응용 프로그램들은 멀티미디어 및 미션크리티컬한 데이터 전송을 위해 데이터를 가공하므로, 이러한 데이터에 대한 처리가 L7 스위치에 필요하다.

    또한, L7 스위치가 모든 TCP/UDP에 기반한 응용프로그램을 분류하고 제어할 수 있는 것은 아니다. 일반적으로 널리 알려진 포트인 FTP, NFS, H.323, RTP 등에서 세션 처리가 가능하지만, 순간적으로 사용하는 임시 포트들을 분석하는 것은 매우 제한적이다. 또한, L7 스위치에서 QoS 기능을 지원하지만, 전문 QoS 장비들(시타라 네트웍스의 ‘QoS웍스’, 패킷티어의 ‘패킷쉐이퍼’, 넷리얼리티의 ‘와이즈왠’)에서 제공하는 트래픽 쉐이핑(shaping), 레이트 컨트롤(rate control) 등과 동일시 해서는 안 된다. 물론, 차후에 L7 스위치는 QoS 기능을 기본으로 제공하게 될 것이다.


    L7 스위치의 동작원리

    L7 스위치의 동작은 개념적으로 매우 단순할 수도 있다. 하지만, 그 내부의 패킷에 대한 분류 및 제어는 매우 난해하며 정교한 기술이라고 할 수 있다. 따라서, 세계적으로도 L7 스위치는 이미 성숙된 기술이 아니라, 지속적으로 개선되어지고 있는 기술이라고 할 수 있다.

    L4 스위치에서는 L4 계층의 세션 단위(TCP 또는 UDP)로 부하분산을 수행한다. 단방향 프로토콜인 UDP를 제외하고, L4 계층의 가장 핵심적이며 광범위하게 쓰이는 프로토콜은 TCP이므로, L4 계층의 세션은 TCP 세션이라고 할 수 있다. 이러한 TCP 세션을 로드밸런싱하기 위해서는 처음 TCP 패킷을 받은 시점 즉, TCP SYN 패킷을 받은 시점에 즉시 리얼서버에 그 패킷을 할당하면 된다. TCP 세션이 성립되는 시점은 TCP SYN를 리얼 서버에서 받는 시점이 된다. 일단, 하나의 TCP 세션이 리얼서버에 할당되면 그 뒤의 모든 패킷들은 동일서버로 포워딩된다. 이러한 동작을 TCP 패킷의 흐름으로 표현하면 <그림 1>과 같다.



    <그림1> L4 스위치의 TCP 세션 관리


    <그림 1>과 같이 TCP SYN이 초기 시퀸스 번호(sequence number) 100으로 접속을 시도하면, L4 스위치는 서버1, 서버2 가운데 서버1 쪽으로 세션을 할당한다. 서버1은 TCP SYN의 응답으로 TCP SYN ACK를 전달한다. 이 패킷은 서버1에서 시작하는 시퀀스 번호 200과 확인 번호(ACK number) 101을 갖는다. 그 다음으로 클라이언트 측에서 ACK를 보냄으로써 클라이어트단과 서버1단 사이에 하나의 TCP 세션이 형성된다. 그 다음으로 클라이언트 단에서는 특정 응용(application)에 대한 요청정보(request data)를 보내고 받음으로써 응용계층에서의 데이터 전송이 가능하게 된다. 이러한 특정 응용의 요청으로는 HTTP, FTP, 텔넷, 이메일 정보 등이 될 수 있다.

    L7 스위칭 기능은 이러한 특정 응용데이터에 따라 패킷의 경로와 서버의 할당을 결정하는 기능이라고 할 수 있다. 즉, TCP SYN 패킷을 검사해 바로 서버로 할당하기 보다는 요청정보를 검사해 서버로 할당하도록 해야 한다. 이러한 컨텐츠 기반의 스위칭을 수행하기 위해서는 클라이언트와 서버단 사이에 TCP 세션을 형성을 잠시 보류할 필요가 있다.

    L7 스위칭을 담당하는 장비는 클라이언트와의 TCP 세션을 잠시 보류시킨 상태에서 특정 요청정보가 전송되어 왔을 때, 이를 기반으로 서버쪽과 TCP 세션을 중계하는 역할을 담당해야 한다. 이러한 기능을 딜레이드 바인딩(delayed binding) 기능, TCP 스플리싱(splicing) 기능 혹은 TCP 터미네이션(termination) 기능이라고 부른다. 딜레이드 바인딩 동작을 TCP 패킷의 흐름으로 표현하면 <그림 2>와 같다.



    <그림2> L7 스위치의 TCP 세션 관리


    <그림 2>에서 클라이언트의 TCP SYN에 대한 요청은 L7 스위치가 담당해 L7 스위치가 TCP 세션을 형성한다. 클라이언트는 요청 데이터를 보냈을 때, L7 스위치는 요청 데이터 정보를 참조해 리얼서버로 할당한다. L7 스위치는 할당된 리얼서버와 또 다른 TCP 세션을 형성하고 데이터를 중계한다. L7 스위치는 L4 스위치와 달리 L4 계층의 IP와 전송 포트를 변경하거나 치환할 뿐만 아니라, 클라이언트와 서버사이에 투명하게 시퀀스 번호를 맞춰 주어야 한다.


    L7 스위치의 활용

    L7 스위칭의 기능은 컨텐츠 기반의 로드밸런싱과 세션처리를 통해 기존의 L4에서 제공하기 힘들었던 기능들을 수행할 수 있다. 예를 들어 <그림 3>을 살펴보자.



    <그림3> 메가프락시 문제


    <그림 3>을 살펴보면 아래의 사설망(192.168.1.0/24)에 있는 클라이언트들이 방화벽 혹은 NAT 장비를 통해 특정 웹사이트(www.a.com)에 접속을 시도하고 있다. 사설망의 클라이언트들은 인터넷을 사용하기 위해 NAT 장비에서 공인 IP(210.1.4.10)로 치환되어 인터넷상으로 전송된다. www.a.com의 웹사이트는 앞단에 L4 스위치가 있어 3대의 웹 서버가 서버 팜을 형성하고 있고, 로드밸런싱되고 있다고 가정하자. L4 스위치에서는 클라이언트 A,B,C에서 접속한 사용자에 대해는 서로 다른 서버들로 로드밸런싱을 하고 싶지만, L4 스위치는 클라이언트 A,B,C를 구별할 수 없고, 동일한 IP에서 접속을 시도하기 때문에 하나의 리얼 서버(서버1)로 TCP 세션을 유지하게 된다. 이러한 경우 서버1 쪽으로 트래픽이 많이 집중되어 부하분산의 효과가 감소하게 된다. 이것은 한 예에 불과하고, 실제로 다수의 인터넷 사용자들(초고속 인터넷 사용자들)이 프락시 서버를 통해 인터넷에 접속하는 경우 메가프락시(megaproxy) 문제 혹은 AOL 문제라고 부르는 현상에 의해 실질적인 로드밸런싱을 불가능하게 만들고 있다.


    ■ 쿠키 기반 연결지속성(cookie-based persistency)

    위와 같이 프락시를 통해 웹 서버에 접속을 시도하는 클라이언트나 무선 혹은 모바일 인터넷을 사용해 웹 서버에 접속을 시도하는 클라이언트들은 실제적은 자신의 IP가 NAT(network address translation) 되거나, 유동적으로 바뀔 수 있다. 이렇게 클라이언트의 IP 혹은 전송포트가 바뀌더라도 클라이언트와 웹 서버간에 세션 연결을 지속하는 방법에 HTTP의 쿠키(cookie) 정보를 이용할 수 있다.

    쿠키란 웹 서버에 의해 클라이언트를 제어하기 위해 HTTP 헤더에 덧붙여지는 오브젝트인데, 클라이언트가 데이터를 요청하였을 때, 웹 서버가 응답 정보 안에 해당 클라이언트에 고유한 쿠키값을 지정하게 된다. 예를 들어, 인터넷 상거래에서 ‘장바구니(shopping cart)’ 등이 각 사용자의 상거래정보 유지를 쿠키를 이용해 해결하고 있다.

    위의 메가프락시 문제에 대해 L7 스위칭을 사용하게 되면 좀더 정교한 클라이언트별 로드밸런싱을 수행할 수 있다. 즉, 쿠키를 이용하면 같은 IP를 가진 클라이언트에 대해 HTTP 헤더에 서로 다른 쿠키값(예; user=1, user=2)을 할당함으로써 서로 다른 서버로 로드밸런싱 하더라도 <그림 4>와 같이 세션의 연결지속성을 유지할 수 있다.



    <그림4> 쿠키 기반의 L7 스위칭 기법


    ■ 분리(URL partitioning) 기능

    L7 스위치를 도입함으로써 URL 기반으로 웹 서버를 분리해 웹 서비스가 가능하게 된다. <그림 5>는 특정 URL에 대해 특정 웹 서버가 처리할 수 있도록 L7 스위치를 사용하는 경우이다.


    <그림5> L7 스위치를 이용한 URL 스위칭


    <그림 5>의 default.asp와 같이 동적으로 변경되는 페이지는 서버1 웹 서버에 저장하고, image.jpg와 같은 정적인 html 텍스트나 이미지 등은 서버2에 저장해 웹 서버관리를 효율적으로 할 수 있다. 이렇게 서로 특성이 다른 웹 페이지를 별도로 관리하고 웹 서버에 특성을 조절함으로써 최대의 성능을 낼 수 있다. 이러한 기능은 특히 캐싱 서버의 리다이렉션이나 IDS서버의 로드밸런싱을 수행할 경우에 매우 효과적으로 웹 서버의 성능을 극대화 하는 방법을 제공한다.

    ■ 보안기능

    L7 스위치는 강력한 패킷 처리 능력과 인지능력을 통해 아래와 같은 보안기능을 제공할 수 있다.

    - 컨텐츠 기반 패킷 필터링
    - 안티바이러스
    - 응용 레벨의 미러링

    컨텐츠 기반 패킷 필터링 기능은 최근 관심을 갖는 안티바이러스 기능을 위한 근간이 된다. 최근 들어 기승을 부리고 있는 님다, 코드레드, 새드마인드 IIS 등은 기존의 웜 바이러스가 전자 우편에 의해 확산되는 것에 반해 브라우저, 랜, 웹 서버 등을 통해 무차별적으로 전파되는 특성을 가지고 있어 네트워크와 서버의 성능에 심각한 문제를 발생시키고 있다. 각각의 바이러스는 독특한 패턴을 가지게 되는데, L7 스위치에서는 그 패턴 매칭을 통해 패킷을 분류하고 제어하게 된다.

    예를 들어 님다 바이러스는 ‘readme.exe’, ‘쪱.eml’, ‘root.exe’, ‘.ida?’, ‘cmd.exe’ 등 패턴들을 포함한다. L7 스위치에는 사전에 위와 같은 패턴을 미리 검사하게 하고, 패턴이 매칭되었을 경우 해당 패킷을 드롭(drop)하는 방법을 채용한다.

    하지만, L7 스위치의 안티바이러스 기능은 널리 알려진 웹 바이러스를 차단하는데 효과적일 수 있으나, 새롭게 등장하는 웹 바이러스에는 사전에 차단할 수 없다. 또한 이미 알려진 웹 바이러스라고 하더라도, 관리자가 패턴에 대해 미리 정책을 설정해야 하는 단점이 있다.

    결국, 안티바이러스 본연의 기능은 방화벽에서 지원하고, 지속적인 안티바이러스 정책을 업그레이드하는 것이 올바른 보안정책이라고 할 수 있다.

    애플리케이션별 미러링 기능은 IDS 서버를 통한 보안기능에 효율성과 보안성을 더 증대시킬 수 있다. IDS서버는 모든 패킷에 대한 추적을 수행하므로 서버기반에 CPU-인텐시브한 작업을 수행하므로, 일시에 패킷이 폭주할 경우 바이러스 및 DoS 공격에 대한 감지 능력을 상실 할 수 있다. 이때, L7 스위치의 애플리케이션별 미러링 기능을 통해 애플리케이션별로 IDS 서버를 부하 분산시켜 각 IDS에서 애플리케이션 별로 각종 바이러스 및 공격에 대한 추적 및 검색 기능을 더 강화 할 수 있다.


    L7 스위치의 중요 이슈

    ■ 구조적 측면

    L7 스위치는 기존의 L3/L4 스위치보다 성능이 우수하다라고 생각하는 경향이 있다. 일면 사실이기도 하지만, L7 스위치의 구조에 따라, 성능은 많은 차이를 나타낼 수 있다. 특히 L7 스위치는 CPU-인텐시브한 작업이 많기 때문에 처리 패턴과 정책에 따라 동일 스위치에서도 성능이 다를 수 있다. 이러한 문제는 일반 방화벽의 성능과 유사한 원리라고 할 수 있다.

    초기에 등장한 L7 스위치의 기능은 중앙 CPU에서 처리하는 구조였다. L4 스위치 업체들은 초기 L7 스위치에서 기존 하드웨어의 변경을 최소화해 L7기능을 부여했다 이러한 시스템에서 L7은 초라한 기능에 불과하였으나, 최근 새롭게 등장하는 L7 스위치 업체들은 장비를 ASIC화거나 포트마다 독립적인 CPU를 통해 L7 스위치 패킷 분류 및 포워딩을 수행하는 엔진을 탑재한다. ASIC화와 독립 CPU를 통해 L7 스위칭을 라인 스피드로 처리할 수 있게된 것이다.

    하지만, ASIC를 통해 얻은 이점도 있는 반면 포기하는 것도 있다. 일반적으로 L7 스위치를 ASIC화 하였을 때, L7 스위치 자체 기능 및 여타 기능에 유연성과 성능의 제약이 뒤따르기 마련이다. 메모리 부족과 페이로드에서 길이의 제한, 새롭게 등장하는 응용프로그램에 대한 지원 등이 걸림돌이 될 수 있다. 또한, 펌웨어의 업그레이드에도 제약이 될 수 있으므로, L7 스위치의 선택에 주의가 요구된다.

    근래에 네트워크 프로세서 칩 업체에서 패킷에 대한 L4/L7 분류화(classification)를 제공하는 칩을 판매하고 있으나, 아직 범용 네트워크 프로세서의 사용은 접근이 쉽지 않고, 투자비용도 적지 않은 편이다. 그렇기 때문에 네트워크 프로세서를 사용한 L7 스위치는 검증에 시간이 걸릴 것으로 보인다.

    또 한가지 네트워크 프로세서가 제어에 필요한 MAC 변환이나 NAT는 지원할 수 있지만, 컨텐츠 레벨의 파싱(parsing)이나 URL 탐색(search), 딜레이드 바인딩, TCP 터미네이션과 같은 CPU-인텐시브한 기능들을 온전히 구현하기 위해서 네트워크 프로세서가 능사가 아니라는 점을 명심해야 한다.

    ■ 기능적 측면

    <그림 6>을 통해 L7 스위치 또 다른 적용 가능성을 생각해 보자.



    <그림6> H.323 화상회의를 위한 프로토콜 분석


    <그림 6>은 H.323 프로토콜을 이용해 화상회의를 하는 예를 보여주고 있다. H.323은 2개의 TCP 세션 연결을 하는데, 하나는 콜 셋업(Q.931)이고 다른 하나는 콜 컨피그레이션(H.245)이다. 이어서, 적어도 8개의 UDP 스트림을 오디오/비디오 전송을 위해서 사용한다. 이러한 일련의 과정이 하나의 응용프로그램 수준에서 분류되기 위해서는 개별적인 프로토콜의 L7 스위칭 분류 뿐만이 아니라, 개별 프로토콜의 흐름을 기억하고 분류하는 흐름 분류(flow classification)가 필요할 것이다.


    L7 스위칭 기술의 파급 효과

    L7 스위치의 응용분야는 앞에서 언급했듯이, L4 스위치에서 진화된 기능으로서 SLB, CSLB, FWLB에 관리의 효율성 및 더욱 정교한 부하 분산등에 응용될 수 있다. 하지만, 이는 L7 스위치의 일부기능에 불과하다. L7 스위치는 사용자별/응용프로그램별 트래픽 관리, 보안을 위한 패킷 처리, 그리고, 과금 및 모니터링 분야에서 핵심장비로 자리 잡을 것이다. 하지만, 현재 상용화된 L7 스위치는 아직 못다 이룬 이러한 목표를 위해 전진하고 있다.

    L7 스위칭 기능은 단순히 L4/L7 스위치 장비에만 적용 가능한 기술이 아니고, 유사 제품 및 분야로 파급될 수 있는 기술이라고 할 수 있다. L7 스위칭 기술은 기가급 방화벽, 침입탐지시스템(IDS), 가상사설망(VPN) 장비, 그리고, 고급 캐싱 서버, 웹 서버, QoS 장비, CDN(Content Delivery Network) 장비, 트래픽 관리 장비 등을 망라하는 인터넷 액세스단 장비의 고성능화에 필수적이고 핵심적인 기술을 내포하고 있기 때문이다. 특히, 10기가비트 이더넷이 점차로 가시화되면서 스토리지 분야에서도 TCP 기반의 iSCSI를 채용하려는 움직임이 활발히 진행중이다.

    이러한 움직임은 매우 의미 있는 현상으로, 향후 IP 기반 스토리지 시장의 형성과 함께 TCP 세션을 실시간 고성능으로 처리할 수 있는 플랫폼에 대한 연구가 필요하다는 것을 시사한다. 그리고, 보안분야에서도 점점 더 지능화된 바이러스나 웸 메일을 기가급으로 처리하기 위한 기술, 사용자에게 직관적이며 라인스피드 성능을 제공하기 위한 안정된 QoS 기술, 캐싱 기술 등이 L7 스위칭 기술과 매우 밀접히 연관되어 있다.
  • 'IT' 카테고리의 다른 글

    키워드  (0) 2007.05.18
    PMP자격증..  (0) 2007.05.07
    BCP의 개요 및 개발 과정  (1) 2007.05.07
    S/MIME의 개요  (0) 2007.05.07
    데이터마이닝 기법 : 연관규칙의 탐사  (0) 2007.04.22
    IT
    posted by 구름너머 2007. 5. 7. 01:30

    BCP의 개요 및 개발 과정

    BCP는 기업 프로세스의 한 축으로 개선되어야

    문홍빈|현대정보기술 ISC본부 상무

    2회에 걸쳐 BCP(Business Continuity Planning - 사업연속성 계획) 칼럼을 쓰게 되었는데, 첫 번째에서는 BCP의 개요와 개발 과정을 설명하고, 다음 호에서는 BCP 성숙도 및 BCP/DRS 유지 관리 프로세스 및 데이터센터 아웃소싱, 바젤 II, Sarbanes Oxley와 BCP의 관계 등에 대한 이야기를 하고자 한다. 이번 칼럼을 통하여 간략한 개요만을 설명할 수밖에 없는 점을 양해 바란다.

    지금은 BCP 하면 그리 생소하게 들리지 않지만 몇 년 전 세계무역센터 9.11 사태 전까지는 우리나라에서는 IT를 하는 사람에게서도 아주 생소한 단어였다. 그것은 우리가 BCP를 전혀 하지 않아서라기보다 BCP가 체계화되어 소개되지 않았기 때문이다.

    BCP 중에서 IT에 해당되는 DRS (Disaster Recovery System)는 IT업계를 통하여 강력하게 추천되고 또 많은 발달을 가져왔는데 이에는 IT 기업 운영의 기여도 및 의존도의 증가에도 원인이 있지만 한편으로는 이를 통한 IT 영업, 특히 HP, IBM, EMC 등 중대형시스템 제작사의 판매에 직접적인 영향을 주었기 때문이다. 이의 문제점이라 하면 기업 전반으로 이루어져야 할 BCP가 IT 중심적으로 변해간 것이라 하겠다.

    미국에서 발행된 법규에 의하면 이 BCP는 이미 10여년 전부터 시작하였으며, 관련 법규는 계속 보완 정비되고 다른 규범 및 절차(Sarbanes Oxley, Basel II)에도 이 BCP의 요소가 포함되어 있다.

    미국의 BCP 범위 사례

    BCP는 전사적으로 이루어져야 한다. 재난의 규모, 재난 기간의 범위에 따라 BCP의 범위도 바뀐다. 금융기관들, 즉 은행, 증권, 보험사의 경우 비즈니스의 오랜 중단은 기업의 흥망은 물론 직접, 간접 투자자에 영향을 주기 때문에 BCP의 범위가 회사 신뢰도에 직접적인 영향을 미친다.

    주요 미국 증권사를 예로 들면 재난을 크게 세 종류로 나누어 영향을 분석하는데, 이에는 국지적 즉 빌딩에만 영향을 주는 경우, 지역적 즉 같은 동네, 지하철 역 하나 정도에 영향을 입는 경우, 광역적 즉 하나 또는 2개의 구 단위가 영향을 입는 경우에 대한 BCP가 계획되고 모든 경우 재난은 6개월을 지속할 수 있다는 가정 하에 계획이 세워진다.

    이 같은 계획에는 외부기관과의 관계(Interface)가 영향을 받게 되는데 미국의 경우는 국가기관 및 산하기관의 재해시 운영, 협조체제의 네트워크 등이 이미 명시되어 있다(예: Federal Reserve System: Docket No: R-1128, Department of the Treasury of the Comptroller of the Currency: Docket No: 03-05, Securities and Exchange Commission: Release No: 34-47638; File No: S7-32-02).

    이와 같이 재난의 범위가 결정되면 이에 따라 BCP 계획서를 작성하게 되는데 이 BCP 계획은 크게 셋으로 나눈다. 위험관리, 재해시 관리, 업무복구 계획이 그것이며, 위험관리에는 건물의 시설, 설비, 건물, 주위 상황, 등이 포함되며, 재해시 관리에는 사원 및 임원 관리, 비상 연락망, 미디어 콘트롤, 고객관리, 재해상황 관리 등이 포함되며, 업무복구 계획에는 타 업무 장소, 업무 인원 이동 및 수급계획, 재해시 업무 처리 계획, 그 외에 업무 진행 주요 서류 관리 등도 포함된다. 재해의 범위에서 우선 건물별(국지적 재난대비) BCP를 하게 되는데 광역적 재해는 이의 확장이라 볼 수 있다.

    물론 이 범위을 결정하고 수행하는데 결정적인 역할을 하는 것은 BCP를 위한 투자 대비 효과의 분석(ROI) 인데 이를 고려한 정확한 분석, 방향 및 계획이 선행되는 것은 물론이다.

    우리나라의 BCP 범위 사례

    기업의 운영 관리를 위에 제시한 재난의 BCP 측면에서 고려하면 전체 기업 운영관리의 스펙트럼이 바뀌는데, 이는 현재 금감원의 요구사항이기도 한 IT 중심의 DRS를 위의 재해상황에 맞추어 시뮬레이션해보면 나타난다.

    단순한 재해복구센터의 운영은 실질적인 재해시 운영의 한계를 느낄 것이고, 또한 데이터센터가 본점과 같은 건물을 사용할 경우 본점의 재해시 재해복구 및 업무의 재개를 위한 방안은 DR만으로 거의 불가능에 가까울 것이다. 이런 이유 때문에 대규모의 선진 기업은 데이터센터가 본점과 분리되어 있고, 데이터센터도 이중화되어 있고 대기업의 경우 본점 또한 분리되어 운영하고 있다.

    그러나 현재 우리나라의 경우 BCP를 수행한 회사가 극소수이고 많은 경우 IT만을 위한 DR운영만 실행하고 있는데, 운영 관리되는 재해복구센터의 용량 및 업무별 기능을 보면 보통 하루정도의 업무만 수행하고 있는 실정이다. 만약 재난이 하루를 지나면 기능의 제한이 업무의 불편으로 오고, 또한 용량의 한계는 많은 고객을 만족시키지 못할 게 뻔하다. 이러 한 상태의 DR은 재난대비 시스템이라기보다 장애 대비로 보는 것이 타당하다. 이러한 재해복구센터는 투자대비 효과(ROI)가 극히 적고, 또한 이 재해복구 사이트에 관한 지식이 극히 소수에 국한되어 있기 때문에 실질적인 재해시의 운영 효과도 의심스럽다.

    BCP를 위한 자료정리 및 BIA 완성

    개발 프로세스에서 가장 중요한 사항은 업무영향분석(BIA: Business Impact Analysis)이라 할 수 있다. BIA는 핵심업무의 MAO(Maximum Acceptable Outage: 최대 허용 장애 기간)와 업무복구를 위한 업무의 순위와 인원을 결정한다.

    이를 위한 과정은 표와 같이 분석 정리되는데, 이 분석을 통하여 다른 업무 부서, IT와 외부 업체와의 업무수행을 위한 프로세스 흐름이 정리 분석되고 완성된다.

    BCP 전략 수립

    이 과정을 통하여 업무별 RTO(Reco-very Time Objective)와 RPO(Recovery Point Objective)가 업무중단으로 인한 영향분석을 통하여 결정하게 되는데 업무영향은 정성적(Qualitative Analysis), 정량적 분석(Quantitative Analysis)을 통하여 이루어진다. 이는 보통 <그림7>과 같은 차트를 형성한다. 이의 분석을 통하여 전략적인 BCP 범위가 정해진다. 물론 이 분석에는 IT 재해복구에 소요될 투자 금액 및 IT에서의 요구사항 즉 DRS의 요구조건이 도출된다.

    BCP 조직

    BCP 조직은 이 BCP의 수행 및 유지 관리를 위한 조직으로 적은 인원의 BCP 상설조직과 각각의 부서에 겸직인 BCP 코디네이터, 그리고 재해발생시의 임원 조직으로 크게 나뉘어 있는데 예는 <그림8>과 같다.

    BCP 팀은 기업 내의 프로세스, 인원 및 업무, 새로운 상품, 인원 재배치 등 모든 주요 업무를 BCP 정책에 준하여 리뷰 및 추천(Recommendation)하며, 타 부서의 영향을 주는 경우 이를 코디네이트하고 BCP의 변경사항(BIA 포함)을 항상 업데이트한다. 재해발생시 직원 및 스토리지 업체와의 긴밀한 협조를 통하여 재해의 영향을 최소화하고 업무의 재개를 신속하고 원활하게 하는데 목적이 있다.

    재해 발생시 모든 직원의 상세한 업무 지침서가 포함되고 BCP 팀에서 관리, 유지, 보수되는데 여기에는 재해시의 CEO의 역할 또한 포함된다. 전에 우리나라에서 발생된 태풍 재해 발생시 대통령이나 국무총리의 행동은 어쩌면 국가적 BCP가 되어 있지 않았기 때문이 아닌가 생각이 든다.

    제공 : DB포탈사이트 DBguide.net

    출처 : Tong - 날으는오리님의 개발자통통

    'IT' 카테고리의 다른 글

    PMP자격증..  (0) 2007.05.07
    L4/L7 스위치  (0) 2007.05.07
    S/MIME의 개요  (0) 2007.05.07
    데이터마이닝 기법 : 연관규칙의 탐사  (0) 2007.04.22
    데이터마이닝 기법중에 대표적인것 5가지  (0) 2007.04.22
    IT
    posted by 구름너머 2007. 5. 7. 01:23

    [정보보안][정보보안전문가]S/MIME의 개요

    S/MIME(Secure/Multipurpose Internet Mail Extension)은 기존 전자우편 보안시스템의 문제점인 PEM 구현의 복잡성, PGP의 낮은 보안성과 기존 시스템과의 통합이 용이하지 않다는 점을 보완하기 위해 IETF의 작업 그룹에서 RSADSI(RSA Data Security Incorporation)의 기술을 기반으로 개발된 전자우편 보안시스템이다. 이러한 S/MIME이 달성하고자 하는 목표는 강력한 암호화, 디지털 서명, 사용의 용이성, 융통성, 상호운용성, 수출가능성 등이다.

    S/MIME은 네트워크를 통해 주고받는 메시지에 대해 송수신자에게 전자우편 보안서비스를 제공할 뿐만 아니라 MIME 객체를 전송할 수 있는 모든 프로토콜에서 보안 서비스를 이용할 수 있게 한다. 이러한 예로서 HTTP 프로토콜이 있다. HTTP 프로토콜은 MIME 객체를 전송할 수 있기 때문에 웹 보안을 위해 S/MIME을 사용할 수 있다.

    S/MIME이 제공하는 보안 서비스에는 메시지에 대한 기밀성, 무결성, 사용자 인증, 송신 사실 부인방지가 포함된다. 표 4-4는 S/MIME에서 제공하는 보안 서비스와 보안 메커니즘에 사용되는 암호 알고리즘을 나타내고 있다.


    표 4-4 S/MIME에서 제공하는 보안 서비스

    보안 서비스

    보안 메커니즘

    암호 알고리즘

    메시지 기밀성

    암호화

    Triple-DES, Diffie-Hellman

    메시지 무결성

    해쉬함수

    SHA-1

    사용자 인증

    인증서

    X.509v3 인증서

    송신 부인방지

    전자서명

    DSA



    S/MIME은 전자서명을 위해 디지털서명표준(DSS)을 사용하고 세션키를 암호화하기 위해 Diffie-Hellman 알고리즘을 사용한다. 또한 전자서명과 세션키 암호화 모두를 위해 사용할 수 있는 알고리즘으로 RSA 알고리즘을 사용한다. 그리고 전자서명을 생성하기 위한 해쉬함수로는 SHA-1과 MD5를 요구하고 3중 DES 알고리즘이 메시지 암호화를 위해 사용된다.

    알고리즘 측면에서 S/MIME v3의 보안 특성은 다음과 같다.


    - Signed receipts : 송신자의 전자 서명된 메시지를 수신한 후 수신자의 서명을 추가하여 수신자 측이 메시지를 수신했다는 사실을 제3자에게 증명할 수 있도록 함

    - Security labels : Security labels은 S/MIME 캡슐화로 보호되는 내용의 기밀성에 관한 보안정보의 집합으로써 사용자에게 원본 메시지의 접근권한을 부여하기 위해 사용

    - Secure mailing lists : 복수의 수신자에게 메시지를 전송할 경우 각 수신자의 공개키 사용을 포함하여 MLA (Mailing List Agent) 서비스를 사용함으로써 많은 양의 수신자별 처리가 가능


    3. S/MIME의 메시지 구성과 동작


    가. S/MIME의 메시지 구성

    S/MIME v3의 관련 RFC 문서들은 다음과 같이 구성되어 있다.


    - S/MIME v3 메시지 규격(Message Specification)

    MIME 데이터에 암호화와 전자서명을 추가하여 S/MIME 메시지를 생성하는데 필요한 프로토콜로써 메시지에 대한 전자서명 및 암호화절차, application/pkcs7-mime과 application/pkcs7-signature MIME 타입을 정의한다.


    - 암호학적 메시지 신택스(Cryptographic Message Syntax)

    임의의 메시지에 대해 전자서명, 암호화, 메시지 인증을 추가하여 생성되는 암호문의 형태를 정의한다.


    - S/MIME v3 인증서 취급(Certificate Handling)

    S/MIME 인증서에 포함된 키를 추출하고 키를 생성하는 방법이 정의된다. 또한 추출한 키를 통해 메시지의 유효성을 검증하는 메커니즘이 포함된다.


    - 향상된 보안 서비스(Enhanced Security Services for S/MIME)

    S/MIME에서 보다 향상된 보안서비스를 제공할 수 있도록 수신자의 전자서명을 통해 부인방지를 할 수 있도록 하거나 그룹 메일에서 보안서비스를 이용할 수 있는 방법을 기술한다.


    S/MIME의 메시지 구성은 다음과 같다.


    - 봉인된 데이터(Enveloped data) : 암호화된 콘텐트 타입과 한 명 이상의 수신자들을 위한 암호화된 암호화-콘텐트 암호키(encrypted-content encryption key)로 구성되어 있다.

    - 서명된 데이터(Signed data) : 메시지 다이제스트 값을 서명자의 개인키로 암호화하여 형성된 디지털서명으로 콘텐트와 그 디지털 서명은 base64로 부호화된다.

    - 클리어 서명 데이터(Clear-signed data) : 서명된 데이터와 콘텐트의 디지털서명으로 구성된다. 여기서 콘텐트의 디지털 서명만 base64로 부호화된다.

    - 서명 및 봉인된 데이터(Signed and enveloped data) : signed-only과 encrypted-only 엔티티가 중첩될 수 있다. 즉, 암호화된 데이터는 서명되어질 수 있고 서명된 데이터나 클리어 서명 데이터는 암호화될 수 있다.


    나. S/MIME의 동작


    S/MIME의 동작에 대해 설명한다. 우선, 사용자는 수신자에게 보낼 메시지를 작성한다. 이 메시지는 RFC 822에 정의되어 있는 MIME 형태로 작성된다. 사용자는 전자우편을 보내기 전에 메시지에 대해 전자서명을 할 것인지, 암호화를 할 것인지 또는 전자서명과 암호화를 같이 할 것인지를 선택한다.

    이후 S/MIME 어플리케이션은 MIME 헤더와 바디로 구성되는 MIME형태의 메시지를 S/MIME 메시지로 변환한다. 즉 보안 메커니즘을 적용하여 S/MIME 메시지의 형태로 변환함으로써 전자서명과 메시지의 암호화가 이루어지게 된다. 그림 4-11

    마지막으로 사용자는 메시지 보내기를 선택하면 메일 클라이언트는 전자우편 서버에 메일을 전송하고, 수신자의 메일 서버에 메시지가 전송되어 수신자는 S/MIME 클라이언트를 이용해 메시지를 받게 된다. 이때 보안 기능이 없는 SMTP 프로토콜이 사용되지만 이미 메시지에 암호화 또는 전자서명을 했기 때문에 네트워크로 전송되는 도중에 메시지의 도청 및 변조 등의 위험으로부터 안전하다.


    그림 4-11 S/MIME의 동작

    'IT' 카테고리의 다른 글

    L4/L7 스위치  (0) 2007.05.07
    BCP의 개요 및 개발 과정  (1) 2007.05.07
    데이터마이닝 기법 : 연관규칙의 탐사  (0) 2007.04.22
    데이터마이닝 기법중에 대표적인것 5가지  (0) 2007.04.22
    데이터마이닝 개론  (0) 2007.04.22
    IT
    posted by 구름너머 2007. 4. 22. 13:10

    데이터마이닝 기법 : 연관규칙의 탐사

    전치혁
    포항공과대학교
    산업공학과 교수


    1. 서언

    연관규칙(association rule)이란 간단히 말하면 데이터의 항목들 간의 조건-결과 식으로 표현되는 유용한 패턴을 말한다. 연관규칙의 탐사는 기업의 활동, 특히 마케팅에서 가장 널리 사용되고 있다. 예를 들면, 미국의 슈퍼마켓에서 목요일 기저귀를 사는 고객은 맥주도 동시에 구매한다는 연관성을 알아냈다고 한다. 이때, 조건은 ‘목요일, 기저귀’이며 결과는 ‘맥주’라 할 수 있다. 이와 같은 연관규칙의 탐사가 가능하게 된 것은 컴퓨터기술의 발전을 들 수 있겠다. 한 고객이 슈퍼마켓의 계산대에서 계산할 때 쇼핑카트에 담긴 물품들이 바코드를 통하여 컴퓨터에 데이터베이스 형태로 입력되고 이로부터 고객들의 구매행태를 분석할 수 있게 되었다.
    위에서 언급한 데이터의 형태는 소위 바스켓(basket) 데이터라 한다. 이 때 한 고객, 즉 한 바스켓의 정보를 하나의 트랜잭션(transaction)이라 한다. 바스켓 형태의 데이터에서는 주로 트랜잭션 내의 연관성을 살펴보고자 하는 것으로, 수많은 트랜잭션을 분석하여 빈번히 나타나는 규칙을 찾아내는 것이다. 이렇게 찾아낸 규칙은 마케팅에 활용된다. 예를 들어, 위의 기저귀-맥주의 규칙을 활용하여 기저귀와 맥주를 가까운 곳에 진열함으로써 매출 신장을 기할 수 있다. 이와 같이 바스켓 데이터로부터 연관규칙을 탐사하는 것을 시장바구니분석(market basket analysis)이라 한다.
    연관규칙의 탐사는 한 고객의 시간에 따른 구매정보를 활용하여 이루어지기도 한다. 예를 들면, 가전제품 대리점에서 고객별 시간별 구매제품의 데이터를 활용하여 ‘제품 A를 사는 고객은 추후에 제품 B도 구매한다’는 연관규칙을 이끌어낼 수 있을 것이다. 이와 같은 패턴을 얻어 제품 A를 구매하였으나 제품 B를 구매하지 않은 고객에게 판매활동을 할 수 있다. 이런 시간에 따른 고객데이터를 시퀀스(sequence) 데이터라 한다.
    당연한 사실이지만 탐사에서 도출된 연관규칙은 분명하고 유용한 것이어야 한다. 유용하다(useful)는 것은 새롭고도 실행가능하며 설명할 수 있는 것을 말한다고 하겠다. 이에 비해 사소한(trivial) 규칙이란 이미 잘 알려진 사실을 말한다. 예를 들면, ‘페인트를 사면 페인트 붓을 산다’ 는 규칙 같은 것이다. 또한, 설명할 수 없는 규칙은 데이터의 오류일 가능성도 있으며 마케팅에 활용할 수 없기 때문에 역시 유용하다고 볼 수 없다.



    2. 연관규칙의 정의 및 성능척도

    데이터베이스가 총 n개의 트랜잭션 데이터로 구성되며 전체 m개의 항목으로 구성된다고 하고 이를 I 라 하자. 연관규칙 R은 조건부와 결과부로 구성되며 항목집합인 X와 Y에 대하여 ‘X가 일어나면 Y 도 일어난다’는 의미로 다음과 같이 표현할 수 있다.

    R : X ⇒ Y

    여기서 X,Y⊆I 이고, X∩Y=Φ이어야 한다. 따라서 연관규칙을 탐사함은 적절한 항목집합 X와 Y를 선택하는 문제로 볼 수 있으며 이를 위해 몇 가지 척도를 고려하고 있다. 우선, 항목집합 X 및 규칙 R에 대한 지지도(support)는 각각 다음과 같이 정의된다.

    supp(X) = 집합 X의 항목을 동시에 포함하는 트랜잭션 수의 전체 수(n)에 대한 비율
    supp(R) = supp(X∪Y)

    즉, 규칙 R에 대한 지지도는 집합 X 또는 집합 Y에 있는 항목을 동시에 포함하는 트랜잭션수의 비율을 나타낸다.

    예 1. 다음과 같은 5개의 트랜잭션을 고려해 보자.

    트랜잭션
    항목
    1b, c, g
    2a, b, d, e, f
    3a, b, c, g
    4b, c, e, f
    5b, c, e, f, g

    이때 전체 항목집합 I는 I = {a, b, c, d, e, f, g} 이다. 몇 가지 항목집합에 대한 지지도를 구하면 다음과 같다.

    supp({a}) = 2/5 = 0.4, supp({b, c}) = 4/5 = 0.8

    다음과 같은 규칙을 고려해 보자.

    R: “항목 b와 항목 c가 일어나면, 항목 g도 일어난다”

    이 때 규칙 R에 해당하는 항목집합 X와 Y는 다음과 같다.

    X={b, c}, Y={g}.

    이 경우 X 및 규칙 R에 대한 지지도는 각각 아래와 같이 산출된다.

    supp(X) = supp({b, c}) = 0.8
    supp(R) = supp({b, c, g}) = 3/5 = 0.6

    연관규칙 R의 가치를 평가할 때 통상 다음과 같이 정의되는 신뢰도(confidence)를 사용한다.

    conf(R)= supp(X∪Y)/supp(X)

    이 신뢰도는 조건부 확률의 개념으로 집합 X(조건)가 발생한다고 할 때 집합 Y(결과)도 동시에 발생할 확률을 의미한다. 즉, 트랜잭션에 X의 항목들을 포함하는 경우 Y의 항목들도 동시에 포함할 확률을 나타내며, 신뢰도가 큰 규칙일수록 의미가 크다고 하겠다.
    또한, 신뢰도 이외에 연관규칙의 개선도(lift or improvement)를 함께 사용하는데, 이는 결과가 단독으로 발생할 빈도에 대한 조건과 연계하여 결과가 발생할 가능성의 빈도의 비로 정의된다.

    개선도가 1이 됨은 가 성립하므로 항목 집합 X와 Y의 발생이 독립임을 의미한다고 하겠다. 그리고 개선도가 1 전후의 값에 따라 다음과 같은 해석을 할 수 있다.

    - lift(R) > 1인 경우, X와 Y의 발생이 양의 상관관계
    - lift(R) < 1인 경우, X와 Y의 발생이 음의 상관관계

    따라서 개선도가 1보다 큰 규칙이야말로 우연한(랜덤한) 관계가 아닌 필연적 관계를 나타낸다고 하겠다.

    3. 연관규칙의 탐사

    연관규칙의 탐사는 결국 신뢰도 또는 개선도가 높은 규칙 R을 트랜잭션 데이터로부터 도출하는 과정이다. 따라서 규칙이 R : X ⇒ Y의 형태일 때 적절한 항목집합 X와 Y를 찾는 것이라 할 수 있겠다. 그러나 모든 항목의 조합을 고려하여 성능이 좋은 규칙을 찾는 일은 쉬운 것이 아니므로 이를 위한 효율적인 알고리즘이 요구된다. 예로써 예 1.의 7개 항목으로 구성된 5건의 트랜잭션 데이터에 대하여 집합 X의 후보가 되는 경우수를 볼 때, 1개 항목으로 구성되는 경우가 7가지, 2개의 항목으로 구성되는 경우가 21가지, 3개의 항목으로 구성되는 경우가 35가지 등이 될 것이다.
    연관규칙의 탐사를 위한 알고리즘으로 기본적이며 가장 널리 사용되는 것은 1994년에 Agrawal 및 Srikant가 발표한 Apriori 알고리즘으로 다음의 두 단계로 구성된다.

    단계 1. 미리 결정된 최소지지도 smin 이상의 지지도를 갖는 모든 빈발 항목집합들(large itemsets)을 찾는다.
    단계 2. 빈발 항목집합 L에 대한 부분집합 A를 고려한다. 미리 결정된 최소신뢰도 cmin에 대하여 supp(L)/supp(A) ≥ cmin 이면, R: A ⇒ (L-A) 형태의 규칙을 출력한다. 즉, 이 규칙의 지지도는 supp(R)=supp(L)이며, 신뢰도는 conf(R)=supp(L)/supp(A) 가 된다.

    3.1. 빈발 항목집합 생성

    빈발 항목집합을 도출하기 위하여 우선 하나의 항목으로 이루어지는 후보집합군(C1)을 형성하고 최소지지도 이상을 갖는 집합군(L1)을 생성한다. 다음으로 L1으로부터 두개의 항목으로 이루어지는 후보집합군(C2)를 만들고 최소지지도 이상을 갖는 집합군(L2)을 생성하며, 다시 L2로부터 세 항목으로 이루어지는 후보집합군(C3)과 빈발 항목집합군 L3를 만드는 등 이러한 과정을 더 이상 새로운 집합이 생성되지 않을 때까지 반복한다.
    로부터 를 생성할 때 접합(join)연산자(*)를 사용한다. L1으로부터 C2를 만드는 경우에는 L1의 한 항목에 대한 모든 조합이 2-항목 집합인 C2가 될 것이다. 그러나 L2에서 두 집합의 조합은 최대 4개의 항목을 포함할 수 있으므로 C3를 형성할 때 L2의 집합 중 하나의 항목이 동일한 것들만 대상으로 하여야 한다. 마찬가지로 L3로부터 C4를 형성할 때는 L3의 집합 중 두개의 항목이 동일할 때 가능하게 된다. 예로써, L2=[{a,b}, {a,c}, {b,d}]라 할 때 {a,b,c}와 {a,b,d}가 3-항목 집합의 후보가 될 것이다. 그러나, C3를 구성할 때 {a,b,c}는 제외된다. 왜냐하면, {a,b,c}의 지지도는 {b,c}의 지지도 이하인데 {b,c}가 L2에 포함되지 않았다는 것은 이의 지지도가 최소지지도 미만이라는 것을 나타내기 때문이다. 이러한 과정은 Apriori 알고리즘 중 'apriori-gen' 함수에 의하여 수행된다.

    예 2. (예 1.의 계속). 예 1.의 트랜잭션 데이터를 바탕으로 빈발 항목집합을 만들어보자. 우선, C1은 다음과 같다.

    C1=[{a}, {b}, {c}, {d}, {e}, {f}, {g}]

    최소 지지도를 0.4(5개의 트랜잭션 중 2개)라 하면 1-항목으로 이루어지는 빈발 항목집합군은 다음과 같다.

    L1=[{a}, {b}, {c}, {e}, {f}, {g}]

    2-항목 빈발집합의 후보 C2에 다시 최소지지도 0.4를 적용하면 L2는 다음과 같다.

    L2=[{a,b}, {b,c}, {b,e}, {b,f}, {b,g}, {c,e}, {c,f}, {c,g}, {e,f}]

    C3를 구성하기 위하여 L2의 집합에 접합연산자를 적용하면 다음과 같다.

    C3=[{b,c,e}, {b,c,f}, {b,c,g}, {b,e,f}, {c,e,f}]

    이 때 {a,b,c} 는 {a,c}가 L2에 포함되지 않았으므로 C3에 포함될 수 없음을 볼 수 있다.
    C3의 모든 집합은 최소지지도 이상이므로 L3는 C3와 동일하다.

    Apriori 알고리즘을 단계별로 정리하면 다음과 같다.

    단계 0. 최소지지도 smin을 정한다.

    k=1
    C₁=[{i₁},{i₂},...,{im}]
    L₁={c∈C₁| supp(c) ≥ smin

    단계 1. k=k+1

    Lk-1로부터 Ck 형성 (apriori-gen 함수)
    단계 1-1. (join) Lk-1의 집합들을 접합하여 k- 항목 집합군을 형성한다.

    C= Lk-1 * Lk-1

    단계 1-2. (prune) C의 (k-1)- 항목 부분집합이 Lk-1에 속하지 않을 때 이를 모두 제거한 후 Ck를 형성한다. Ck=Φ이면 Stop.

    단계 2. Ck의 집합 중 지지도가 최소지지도 이상인 것을 모아 Lk를 생성한다.

    Lk={c∈Ck | supp(c) ≥ smin}

    3.2. 규칙의 탐사

    앞에서 언급한 바와 같이 규칙의 탐사를 위하여 우선 도출된 빈발 항목집합 L 각각에 대한 부분집합 A를 고려한다. 여기서 L은 위의 L2, L3 등을 포함한다. 그리고, 미리 결정된 최소신뢰도 cmin에 대하여 supp(L)/supp(A) ≥ cmin 이면, R: A ⇒ (L-A) 형태의 규칙을 출력한다. 즉, 이 규칙의 신뢰도 conf(R)=supp(L)/supp(A) 가 cmin 이상 되도록 하는 것이다.
    현실의 경우 결과부에 하나의 항목만을 포함시키는 규칙을 도출하는 것이 이의 적용성 때문에 널리 사용되나, Agrawal & Srikant (1994)의 알고리즘에는 모든 가능한 규칙을 보다 효율적으로 탐사하는 방법이 소개되고 있다.

    예 3. 예 1.의 트랜젝션 데이터에 대하여 예 2.에서 구해진 빈발 항목집합군 중 집합 L={b,c,g}을 고려해 보자. 이 때 결과부에 1-항목을 포함하는 규칙의 후보와 이에 대응되는 신뢰도는 다음과 같다.

    R1: {b,c}⇒{g} conf(R1)=0.6/0.8 = 0.75
    R2: {b,g}⇒{c} conf(R2)=0.6/0.6 = 1
    R3: {c,g}⇒{b} conf(R3)=0.6/0.6 = 1

    따라서 최소신뢰도를 0.7이라 하면 R1, R2, R3 모두 최소신뢰도 이상이 된다.

    4. 결언

    서언에서 언급한 시퀀스 데이터에 대하여도 유사한 알고리즘이 적용되고 있으나 여기서는 생략한다.
    한편, 분석할 트랜잭션 데이터에 어떤 항목들을 포함시킬 것인가는 분석에 앞서 결정하여야 할 중요한 문제 중 하나라 하겠다. 통상 슈퍼마켓 등에서 취급하는 제품 수는 수만 가지가 넘기 때문에 이러한 제품 하나하나를 모두 항목으로 선정하기에는 여러 어려움이 있다. 따라서 제품을 계층적으로 분류하여 적절한 계층에 속하는 것들을 항목으로 선정하는 방안을 사용한다. 제품분류에서 상위수준으로 갈수록 보다 포괄적인 항목(generalized item)이 사용된다.
    항목이 너무 세분화되어 많은 경우 공통 항목의 트랜잭션 수가 적어 유용한 규칙을 도출하기 어려울 수 있으며, 반대로 항목이 너무 작은 경우에는 도출된 규칙이 쓸모없을 수 있기 때문에 항목의 선정이 중요하다 하겠다. 또한, 항목이 증가함에 따라 규칙탐사에 소요되는 계산시간이 급속도로 증가하기 때문에 원하는 계산복잡도에 알맞은 항목수를 결정할 필요가 있다. 항목을 선정하는데 있어 하나의 가이드라인은, 트랜잭션 데이터에 드물게 나타나는 것은 제품의 계층적 분류에서 보다 상위 수준의 항목을 사용하고, 자주 나타나는 경우에는 보다 하위 수준의 항목을 사용하여 결과적으로 트랜잭션 데이터에 빈도수가 비슷하게 되도록 하라는 것이다.

    출처 : Tong - garage님의 웹기획/마케팅/카피통

    'IT' 카테고리의 다른 글

    BCP의 개요 및 개발 과정  (1) 2007.05.07
    S/MIME의 개요  (0) 2007.05.07
    데이터마이닝 기법중에 대표적인것 5가지  (0) 2007.04.22
    데이터마이닝 개론  (0) 2007.04.22
    데이터 저장 기술  (0) 2007.04.22