IT
posted by 구름너머 2007. 9. 20. 09:58
해싱의 개요및 특징

출처:

http://blog.naver.com/vov798/40004734633

Hashing은 하나의 문자열을 원래의 것을 상징하는 더 짧은 길이의 값이나 키로 변환하는 것이다. 짧은 해시 키를 사용하여 항목을 찾으면 원래의 값을 이용하여 찾는 것보다 더 빠르기 때문에, 해싱은 데이터베이스 내의 항목들을 색인하고 검색하는데 사용된다.

또한 해싱에 의해 정렬된 이름들 각각은 데이터베이스 내에서 개인들 데이터의 키가 될 수 있다. 데이터베이스 검색 수법은 일치하는 것이 먼저 발견될 때까지 각 이름들을 글자단위로 확인하기 시작해야만 한다. 그러나, 만약 이름들 각각이 해시된다면, 각 이름별로 4자리의 고유한 키를 생성하는 것이 가능해진다. 예를 들면 다음과 같다.

Abernathy, Sara
Epperdingle, Roscoe
Moore, Wilfred
Smith, David
(그리고 더 많은 수의 데이터가 알파벳 순으로 정렬되어 있다).

7864 Abernathy, Sara
9802 Epperdingle, Roscoe
1990 Moore, Wilfred
8822 Smith, David
(기타 등등)

어떤 이름을 찾는 작업은 먼저 해시 값을 계산하고, 그 다음에 그 값을 사용하여 일치여부를 비교하는 작업으로 구성된다. 일반적으로 이렇게 하는 것은, 각 문자가 26개의 경우를 갖는 예측할 수 없는 값의 길이에서 찾는 것보다, 각각이 오직 9개의 경우를 갖는 네 자리 수에서 일치하는 것을 찾는 것이 더 빠르다.

해싱 함수란?

해싱 알고리즘을 해시 함수라고 부른다.해싱 함수(hashing function) h(k)는 어떤 키 k에 대한 테이블 주소(table address)를 계산하기 위한 방법으로, 주어진 키 값으로부터 레코드가 저장되어 있는 주소를 산출해 낼 수 있는 수식을 말한다.

해싱은 빠른 속도의 데이터 검색 외에도, 전자서명을 암호화하고 복호화하는 데에도 사용된다. 전자서명은 해시 함수를 이용하여 변환된 다음, 해시 값(이를 요약 메시지라고 부른다)과 전자서명이 별도로 전송된다. 수신자는 송신자가 사용한 해시함수와 같은 것을 사용하여, 서명으로부터 요약 메시지를 뽑아내어 그것을 이미 수신한 요약 메시지와 비교한다. 그 비교 결과는 같아야만 전자서명이 유효한 것이다.

해시 함수는 원래의 값이나 키를 색인하는데 사용되며, 그 값이 관련된 데이터가 검색될 때마다 다시 사용된다. 그러나, 해싱은 항상 한 쪽 방향으로만 연산된다. 따라서, 해시된 값을 분석함으로써 해시 함수를 추출해내는 역방향 공학은 필요가 없다. 사실, 이상적인 해시함수는 그러한 분석에 의해 추론할 수 없어야 한다. 또한, 우수한 해시 함수는 서로 다른 두 개의 입력에 대해, 동일한 해시 값을 생산해서는 안된다. 만약 그렇게 되면, 충돌이 생긴다. 충돌 위험성이 매우 적은 해시 함수라야 훌륭한 해시 함수로 평가된다.

데이터베이스 저장이나 검색에 잘 적용되는 해시 함수는 오히려 암호화나 에러검출 목적으로는 잘 듣지 않을 수도 있다. 암호화에 사용되는 잘 알려진 해시 함수들이 몇 개 있다. 이러한 것들에는 전자서명을 요약 메시지라고 불리는 더 짧은 값으로 바꾸는 데 사용되는 요약 메시지 해시 함수 MD2, MD4, MD5 등과, 더 큰 요약 메시지 (60 비트)를 만드는 표준 알고리즘인 SHA (Secure Hash Algorithm) 등이 포함된다.

해싱 함수및 용어

  • 레코드 키(key)들의 집합을 버켓(Bucket)주소의 집합에 대응시킨다는 의미에서사상함수(mapping function)라고도 하며, 가장 이상적인 해싱 함수는 키 집합의한 레코드(record)와 버켓 주소 집합의 한 레코드가 1 : 1 대응하여 해시 테이블의 정해진 범위에 고르게 분포되어 있어서 충돌을 최소화 하도록 하는 것인데 다음의 조건을 만족해야 한다.
    • 주소 계산이 빠르게 구해져야 한다.
    • 서로 다른 레코드의 계산된 값이 가급적 중복되지 않아야 한다.
  • 해싱 함수(Hashing function) -레코드 키 값(k) → 해싱 함수 h(k)→ 해상표의 상대주소

  • 해시 테이블(hash table) -레코드의 저장을 위한 자료구조로써 해상함수로부터 계산된 함수값에 해당하는 위치에 각 레코드를 한 개 이상 보관할 수 있는 버켓(bucket)들로 구성된 기억 공간이며, 주어진 key값을 가지고 해당 레코드를 빠르게 검색하기 위한 수단을 제공하며 레코드의 삽입과 삭제를 용이하게 한다.
  • 버켓(bucket) - 해싱함수에 의해 계산된 주소인 홈 주소(home address) 혹은 버켓 주소에 레코드키를 저장하기 위해 마련된 기억장소를 말하며, 대개 한 개 또는 여러 개의 레코드를 저장할 수 있는 슬롯(slot)으로 구성된다.

제산법

나머지 연산자(modulus operator : %)를 사용하여 테이블 주소를 계산하는 방법으로, 레코드 키 값을 수치 자료로 간주하여 어떤 양의 정수(대개 해시 테이블의 크기)로 나눈 나머지를 홈 주소로 결정하는 가장 간단한 해싱 함수이다.

해시 테이블의 홈 주소를 결정하는 양의 정수 I 값 잘못된 선택은 상당한 충돌을 유발할 수 있으므로 I의 선정에 신중을 기울여야 한다. 나눗셈 법에서 I의 선택은 해싱 함수의 기능에 매우 중요한 역할을 하므로 I는 보통 1과 자신의 수에 의해서만 나누어지는 소수(Prime Number)로 정한다.

train02a.gif

blue04_next.gif 제산법(Division) 동작 플래시 애니메이션 보기

제곱법

제곱법은 레코드 키 값을 제곱한 후에 결과 값의 중간 부분에 있는 몇 비트를 선택하여해시 테이블의 홈 주소로 사용하며, 심볼 테이블 응용에서 자주 사용된다.

제곱된 결과의 중간 비트는 대개 레코드의 모든 문자에 의존하므로, 레코드를 구성하는몇 개의 문자가 같을 지라도 서로 다른 레코드 키는 다른 홈 주소를 갖게 될 확률이 높다.

홈 주소를 얻기 위해 사용되는 비트 수는 테이블의 크기에 따라 달라지는데, 중간 부분의 자릿수를 n이라 하면 각 레코드 값들이 가지는 범위인 해시 테이블의 크기는 2n이 된다.

(EX) 레코드 키 값 k = 35270, 해시 테이블의 크기가 10,000(중간 4비트 선택)일 때 제곱법에 의한 레코드 주소(홈 주소)는 얼마인가?

(풀이)

제곱법에 의한 k의 레코드 주소(=홈 주소)= k2 = 1243972900에서 중간 4비트를 취한 9729가 된다.

blue04_next.gif 제곱법(Mid-Squre) 동작 플래시 애니메이션 보기

숫자 분석법

레코드 키를 구성하는 수들이 모든 키들 내에서 각 자리별로 어떤 분포인지를 조사하여비교적 고른 분포를 나타내는 자릿수를 필요한 만큼 선택하여, 레코드의 홈 주소로 사용하는 방법이다. 파일의 레코드 키 값이 이미 알려진 정적 파일(static file)인 경우에 유용하며, 삽입과 삭제가 빈번히 발생하는 경우에는 비효율적이다.

(EX) 해시 테이블의 크기=1000, 홈 주소 : 0 ~999까지(3자리 필요) 레코드 키 값이

다음의 (a)와 같을 때 숫자 분석법을 이용하여 각 키들에 대한 홈 주소를 결정하시오.

  1. (a)에서 왼쪽 3자리숫자는 거의 같으므로 제거
  2. 왼쪽 5열, 6열, 7열, 9열 역시 동일 숫자가 많이 분포 - 무시
  3. 비교적 고른 숫자 분포를 가지므로 4열, 8열, 10열 선택 → 홈 주소

폴딩법

폴딩법은 레코드의 키를 마지막 부분을 제외한 모든 부분의 길이가 동일하게 여러 부분으로 나누고, 이들 부분을 모두 더하거나 배타적 논리합(XOR)을 취하여, 해시 테이블의홈 주소로 이용하는 방법으로 두 가지 방법이 사용된다.

(ㄱ) 이동 폴딩(Shift Folding)

각 부분의 값을 계산하기 위해 마지막을 제외한 모든 부분을 이동시켜 최하위 비트(LSB)가 마지막 부분의 자리와 일치하도록 우측 끝을 맞추어 더한 값을 홈 주소로하는 방법이다.

(ㄴ) 경계 폴딩(Boundary Folding)

원래의 레코드 키 값을 여러 부분으로 나눈 후, 나누어진 각 부분의 경계선을 종이 접듯이 접어 역으로 정렬한 다음 같은 자리에 위치한 수를 더한 값을 홈 주소로 하는 방법이다.

blue04_next.gif 폴딩법(Folding) 동작 플래시 애니메이션 보기

기수 변환법

기수 변환법은 어떤 진법으로 표현된 주어진 레코드 키를 다른 진법으로 간주하고 키를변환하여 홈 주소를 얻는 방법으로, 어떤 키 값이 16진법으로 표현되어 있다면 이를 10진법으로 표현된 것으로 간주하고 키 값을 변환하여 해당 레코드의 홈 주소를 구한다.

해시 테이블의 크기가 10의 멱승으로 표현되어 변환된 해당 레코드의 주소값이 테이블의크기를 초과할 때는 주소값의 최하위 자리부터 해시 테이블의 크기가 허용하는 멱승수만큼 취하여 해당 레코드의 홈 주소로 사용한다.

(EX) 해시 테이블의 크기 = 10000(104)

십진수로 입력된 키 값(B2538)10을 16진수로 간주하여 그 값을 다시 10진수로 계산하는 기수 변환법을 이용하여 홈 주소를 구하시오.

(풀이) (1 * 165) + (3 * 164) + (2 * 163) + (5 *162 ) + (4 * 161) + (8 * 160)
= 1048576 + 196608 + 8192 + 1280 + 64 + 8
= (1254728)10

홈 주소 = 4728

레코드의 주소값(1254728)10에서 해시 테이블이 허용하는 하위 4자리를 선택한다.

무작위 방법

무작위 방법은 난수 발생 프로그램을 이용하여 난수(random number)를 발생시켜 각 레코드 키의 홈 주소를 결정하는 방법으로, 보통 난수는 1보다 작은 양의 실수를 산출하므로, 해시 테이블의 크기인 n을 산출된 난수에 곱하여 0~(n-1)까지의 범위값으로 변환하여 사용하며, 만일 충돌이 발생하게 되면 그 다음 난수를 레코드의 홈 주소로사용한다.

오버플로우의 해결

서로 다른 레코드 키가 동일한 홈 주소를 갖는 충돌(collision) 현상이 발생했다는 것은특정 레코드의 키 값인 K의 해싱 함수값h(K)의 해시 테이블 주소에는 이미 다른 레코드 키가 보관되어 있다는 것을 의미하므로, 버켓의 크기가 1인 경우 충돌을 유발한 레코드 키 K를 저장하기 위해 다른 기억 장소를 검색해야 한다.

이와 같이 다른 기억 장소를 찾아 충돌을 유발한 레코드를 저장하는 일을 과잉 상태 처리라 한다.

  • 선형 검색법
  • 2차 검색법
  • 무작위 검색법
  • 체인 이용법

선형 검색법은 충돌을 해결하는 가장 간단한 방법으로, 충돌 발생시 새로운 레코드키를 저장할 기억 공간을 찾기 위해 충돌이 일어난 그 위치에서 테이블 순으로 차례대로하나씩 검색하여 첫번째 빈 영역에 레코드 키를 저장하여 충돌을 해결하는 방법이다. 선형 검색법을 이용할 때 해쉬 테이블은 1차원 배열 형태를 가진다.

그러나 충돌을 유발한 레코드의 저장을 위한 검색 과정에서 테이블의 끝에 도달할 때까지 빈 공간이 존재하지 않으면 단순히 테이블의 제일 처음 번지로 돌아가서 다시 검색을 하면 된다.

충돌을 일으킨 레코드 키 K를 저장할 후속 주소 h1(K) = h0(K)+1이 되고, h1(K)에 새로운 레코드의 저장이 가능한지 확인하여 빈곳이면 그곳에 레코드를 저장하고, 그렇지 않으면빈 곳을 찾을 때까지 다음 후속 주소를 따라 검색을 계속한다.

선형 검색법에서 i번째 후속 주소 hi(K)는 위와 같다.

<명칭을 삽입하는 경우>

  1. 해당 키 값을 가지는 명칭을 해쉬 함수로 변환하였을 때 그 위치의 버켓이 비어있으면 삽입한다.
  2. 버켓이 비어있지 않으면 그 위치부터 해쉬테이블을 차례로 조사하여 빈 버켓을 찾은 후 그 위치에 명칭을 삽입한다.
  3. 해쉬 테이블의 끝까지 빈 버켓이 없으면 테이블의 처음부터 원래 삽입한 위치까지 빈 버켓을 찾는다.
  4. 빈 버켓이 전혀 없는 경우는 명칭을 삽입할 수 없으므로 오류 발생을 고지한다.

<명칭을 검색하는 경우>

  1. 해당 키 값을 가지는 명칭을 해쉬 함수로 변환하여 얻어진 위치에 원하는 명칭이 들어있는지 조사한다.
  2. 원하는 명칭이 없다면 삽입시에 충돌이 발생한 것이므로, 그 위치부터 차례로 해당 명칭을 검색한다.

장 점

단 점

해쉬 테이블의 구조가 간단하다.

충돌이 발생할 경우에, 최악의 경우 해쉬 테이블 전체를 검색해야 하는 경우가 발생하므로
비효율적이다.

2차 검색법은 선형 검색법에서 발생하는 제 1밀집(primary clustering) 문제를 제거하는 방법으로, 기대되는 충돌 함수는 이차식인 f(i)= i2이 된다.

원래의 테이블 주소로부터 다음 주소를 결정하는 거리 d가 1, 4, 9, 16, …과 같이 떨어진 영역을 차례대로 검색하여 처음으로 발견되는 빈 영역에 해당 레코드를 저장함으로써 충돌을 해결하는 방법이다.

2차 검색법에서 i번째 후속 주소 hi(K)는 위와 같다.

무작위 검색법

충돌을 유발한 레코드 키를 저장할 수 있는 가용공간을 찾을 때까지 난수 계산 프로그램을실행하여 해시 Table(hash table)의 홈 주소를 다음 후속 주소로 택하여 충돌을 해결하는 방법이다.

■ 해시 테이블의 크기 = n , i번째 발생한 난수를 ri라고 할 때i번째 후속 주소
h
i(k)는 아래 공식과 같다.

hi(K) = (h0(K) + ri) mod n

(공식의 의미)

→ h0(K)의 위치에 이미 다름 레코드가 저장되어 있다면 난수 r1을 구하여 h0(K)에대한 값을 후속 주소 h1(K)로 사용하고, h1(K)의 위치에서도 충돌이 발생하면 다음 난수 r2을 구하여 h0(K)에 더한 값으로 후속 주소 h2(K)를 결정한다.

체인 이용법

해시 함수에 의해 같은 기억공간에 할당되어 충돌이 발생한 레코드들을 연결 리스트(Linked List)로 연결하는 방법으로 해시 테이블 자체는 포인터의 배열로 만들고, 같은버켓에 할당되는 레코드들을 체인으로 만들어 연결한다.

해시 연쇄법은 연결 리스트를 사용하므로 해시 테이블에서의 삽입이나 삭제 연산이 용이하며, 충돌의 횟수를 감소시키지는 못하지만, 다른 충돌 해결 방법에 의해 해시 테이블을 검색할 때 발생하는 소요시간을 감소시킬 수 있다.

체인 이용법의 알고리즘

<명칭을 삽입하는 경우>

  1. 해당 키 값을 가지는 명칭을 해쉬 함수로 변환하여 주소를 얻어낸 후 그 위치에 있는 연결 리스트에 삽입한다.

<명칭을 검색하는 경우>

  1. 해당 키 값을 가지는 명칭을 해쉬 함수로 변환하여 주소를 얻어낸다.
  2. 얻어진 위치의 연결 리스트에 노드가 한개 뿐이면 충돌이 발생하지 않은 것이므로 그 값을 읽어온다.
  3. 얻어진 위치의 연길 리스트에 노드가 두개 이상이면, 그 연결 리스트의 노드들을 차례로 검색하여 그 값을 읽어온다.

장 점

단 점

충돌이 발생한 명칭들만을 연결 리스트에서
검색해 주면 되므로 속도가 빠르다.

삽입 가능한 명칭의 수가 해쉬 테이블 크기에
영향을 받지 않는다.

구조가 복잡하고, 기억장소 소모량이 많다.

'IT' 카테고리의 다른 글

u-IT839 전략 초점은 ‘유비쿼터스’ 조성  (0) 2007.11.07
조립컴퓨터로 삽질...  (0) 2007.10.15
국내외 웹2.0 서비스 리스트  (0) 2007.09.06
ISO20000  (0) 2007.09.05
기능점수측정(Function Point) 요약  (0) 2007.09.05
IT
posted by 구름너머 2007. 9. 6. 12:23
본문스크랩 국내외 웹2.0 서비스 리스트 IT

2007/09/06 12:20

http://blog.naver.com/damool2/40041901674

출처 블로그 > 따끈하고 달콤한 롤러코스터。
원본 http://blog.naver.com/mirya_net/90019404005

* 올블로그 http://www.allblog.net
메타 블로그 사이트 실시간 인기 글, 어제의 추천 글 등 다양한 서비스를 제공하고 있다.

* 테터툴즈 http://www.tattertools.com
설치형 블로그 서비스로 세상에서 하나뿐인 나만의 도메인을 가진 개인 블로그

* 블로그 코리아 http://blogkorea.org
원조 메타 블로그 사이트. 기자 출신의 대표가 운영

* 티스토리 http://www.tistory.com
설치형 블로그와 가입형 블로그의 장점을 모아 만든 서비스

* 플리커 http://flickr.com
태그 기반의 사진 공유 사이트. 상당히 많은 웹 2.0 사이트들과 매시업을 구성하면서 더욱 힘을 얻고 있다.

* 큐트오버로드 http://cuteoverload.com
귀여운 동문들의 사진을 보여주고 공유하는 사이트

* 딜리셔스 http://del.icio.us
북마크 공유사이트, 즐겨찾기 공유 서비스 제공

* 마가린 http://mar.gar.in
즐겨찾기 공유 서비스를 제공하는 한국형 딜리셔스를 지향하는 사이트

* 북마커 http://www.bookmarkr.net
소셜 북마킹 사이트. 딜리셔스, 마가린과 같은 기능을 제공

* 미태그 http://metags.com
북마크 서비스 사용자간의 정보 교류에 포커스를 맞춘 인터페이스로 소셜 네트워크를 강화했다

* 마그놀리아 http://ma.gnolia.com
사용자가 흥미있어 하는 온라인 컨텐츠를 빠르게 찾아주는 북마크 서비스

* 윙버스 http://wingbus.com
여행 정보 블로그를 모아 제공한다. 방문지에 대한 블로그를 보고, 지도에서 위치를 확인하며 관련 사진을 본 후 출력해 보관하는 것까지 모든 기능이 제공된다.

* FareCast http://farecast.com
언제 비행기표를 구매해야 가장 저렴한 가격에 구매할 수 있는지 추천해 주는 서비스

* Qbox http://qbox.com
배경 음악 검색 서비스. 미니홈피, 블로그 등의 배경 음악을 검색해 들을 수 있게 한다.

* Pandora http://www.pandora.com
인터넷 라디오 대표주자. 음악을 일일이 고르기는 싫으나 내가 듣고 싶은 음악을 손쉽게 듣고자 하는 사람들을 위한 서비스

* YouTube http://youtube.com

동영상 공유 커뮤니티. 블로그나 다른 웹 사이트에 올리기 쉽도록 링크와 태그도 제공한다.

* BeeDeo.com http://beedeo.co.kr

유투브와 유사한 동영상 공유 사이트. 컷 앤 태그(Cut and Tag) 개념 사용

* 아프리카 http://afreeca.pdbox.co.kr
개인 방송 서비스로 방송 중에 채팅과 음성을 통해 대화를 나눌 수 있다.

* OpenYourBook http://openyourbook.net
책 전문 메타 블로그. RSS를 등록하고, 글을 작성할 때 ISBN 코드를 넣어두면 자동으로 개인서재에 등록된다

* TechCrunch http://www.techcrunch.com
웹 2.0 관련 사이트 및 뉴스를 전하는 블로그로 다양한 제품 및 업체 정보를 제공한다.

* 오마이뉴스 http://ohmynews.com
뉴스 사이트, 시민 기자들의 참여로 구성된 기사로 구성했다.

* NewsCloud http://newscloud.com
뉴스들을 모아서 한번에 볼 수 있도록 서비스 하는 사이트

*diggdot.us http://diggdot.us
SlashDot, Digg, Del.icio.us, reddit.com의 인기있는 내용을 취합해 보여 준다

* Digg http://digg.com
뉴스 포럼 사이트로 수 많은 사용자가 직접 기사를 올리고 기사의 내용을 발굴하거나 평가한다.

* 블로터넷 http://www.bloter.net
블로터들의 뉴스 공동체

* Judy's Book http://www.judysbook.com
각 지역별로 실제 생활에 필요한 모든 서비스와 제품의 리뷰, 추천한 장소 등 분류된 정보를 모아 놓는 곳

* netvibes http://www.netvibes.com
자기만의 페이지로 화면을 구성할 수 있는 개인화 서비스로 사용과 활용이 용이하다

* 위자드닷컴 http://wzd.com
개인화 포털 사이트로 위자드웍스 제공. 최근 업그레이드 버전 '칸타빌레'공개

* 한RSS http://www.hanrss.com
웹 기반 RSS뷰어 서비스로 빠른 속도를 자랑한다

* eHub http://emilychang.com
허브 사이트로 웹 2.0 관련 사이트들의 목록과 사이트 운영진과의 인터뷰를 제공한다

* 오픈베이 http://www.openbay.co.kr
열린벼룩시장 오픈베이. 태그와 RSS를 장터에 도입하고 기존의 획일화된 카테고리에서 탈피했다

* 렌트365 http://www.rent365.com
지역 개념에 충실한 벼룩시장으로 직관적인 화면 구성이 특징이다

* 버즈 http://ebuzz.co.kr
IT 포털 전자뉴스가 만드는 쇼핑저널, 디지털 소비 문화 선도를 표방하는 사이트

* 본비비 http://www.bonvivi.com
웹 2.0 기반의 쇼핑몰로 가상 인테리어 3D 시뮬레이션 및 직접 가구를 설계할 수 있는 기술을 구현

* 에어셋 http://www.airset.com
웹 기반의 달력과 연락처, 일정 관리 등과 같은 생활 정보를 관리 할 수 있는 서비스 제공

* 라이프 팟 http://lifepod.co.kr
온라인 상에서 일정과 주소록을 공유할 수 있는 일정 관리 서비스

* 스프링노트 http://springnote.com
개인 중심 위키 서비스, 나만의 정보를 기록하고 관리할 수 있는 웹 노트 서비스

* 미투데이 http://me2day.net
블로그 기반 소셜 네트워크, 짧은 글들을 통해 사용자들의 생각을 공유할 수 있는 공간

* 플레이톡 http://playtalk.net
한 두줄 정도의 덧글 형식으로 참여하는 마이크로 블로그

* meebo http://wwwl.meebo.com
AIM, ICQ, Yahoo Messenger, MSN Messenger, Google Talk 등의 메신저를 웹에서 이용할 수 있게 해준다

* 트위터 http://twitter.com
인스턴트 메신저와 휴대폰 문자메세지, 소셜 네트워킹 기능을 한테 버무린 서비스

* 크림에이드 http://creamaid.com
블로그 UCC마케팅 플랫폼, 블로그와 기업을 이어주는 수익 공유 서비스이다

* 세컨드라이프 http://secondlife.com
가상현실 서비스를 제공하는 사이트로 현실과 같은 주거, 매매, 인적교류가 이뤄진다

* 하보 호텔 http://www.habbo.nl
개인 캐릭터를 이용해 호텔을 이용하는 가상 호텔 웹 사이트로 메시지를 주고 받을 수 있다

* 유어미니스 http://www.yourminis.com
트위터나 딕과 같은 서비스를 포함해 블로그나 웹사이트를 찾아주는 위젯 서비스

* 업커밍 http://upcoming.yahoo.com
미국 야후 소셜 이벤트 캘린더 서비스. 문화, 정보 등 다양한 행사와 관련된 정보를 얻을 수 있다

* 구글맵 http://maps.google.com
위성 사진으로 만든 지도를 서비스 해준다

* 마이데스크 http://mydesk.co.kr
PC에 있는 데이터를 다양한 디바이스를 통해 공유하고 관리 할 수 있는 서비스

* 위키피디아 http://wikipedia.org
인터넷 백과사전. 막대한 양의 정보와 쉬운 접근성으로 누구나 새로운 정보를 등록하고 수정할 수 있다

* ReyU http://revu.co.kr
리뷰전문 메타 사이트. 9가지 큰 카테고리마다 트랙백 주소를 지정 해두고 리뷰를 트랙백으로 연결하면 해당 글을 검색할 수 있다


출처 : w.e.b 7월호 0.58-0.59

'IT' 카테고리의 다른 글

조립컴퓨터로 삽질...  (0) 2007.10.15
해싱의 개요및 특징  (0) 2007.09.20
ISO20000  (0) 2007.09.05
기능점수측정(Function Point) 요약  (0) 2007.09.05
[엑셀]배열 수식 만들기  (0) 2007.08.31
IT
posted by 구름너머 2007. 9. 5. 14:39

IT 서비스 관리 홈페이지 - 최근 들어, IT 서비스 제공 기업(또는 부서)은 그들의 고객에게 가치를 제공함에 있어 종종 실패했다는 압력을 지속적으로 받아오고 있습니다. IT서비스를 내부의 조직에서 제공하거나 또는 외부의 아웃소싱 회사에서 제공하거나 상관없이, IT 서비스가 비즈니스와 고객들의 요구에 부합하지 못하고 있다는 우려가 증가하고 있습니다. IT 서비스관리 시스템 (IT service management system: ITSMS)은 그들의 비즈니스와 고객의 요구사항을 만족 시킬 수 있는 IT 서비스를 효과적이고 효율적으로 제공하도록 하는 통합된 접근 방식입니다.

· IT 서비스관리시스템은 무엇이며 ISO 20000에 관한 정보를 설명하는 개요부분

· ITSMS를 구현하려고 하는 모든 회사가 향후 참조할 단계적인 가이드를 제공하는 IT 서비스 관리 시스템의 구현부분.

· ISO 20000인증획득의 효과와 인증을 획득하는 방법을 설명하는 ITSMS 인증획득

· IT 서비스관리 코스를 구체화하고 있는 교육

· ISO 20000Part1 Part2를 구매하는 방법을 구체적으로 제공하는 규격

· ISO 20000 인증 획득 사례

개요 - ISO 20000은 다음과 같은 2 부분으로 구성되어 있습니다..

ISO 20000-1:2005 Information technology. Service management.
ISO 20000-2:2005Information technology. Service management. Code of practice

ITSMS는 무엇인가 - IT 서비스 관리 시스템(IT service management system) (내부 혹은 외부의)고객에게 제공되는 IT 서비스를 관리하는 시스템적인 접근입니다. 이것은 인력, 프로세스 그리고 IT시스템을 포함합니다.

BSI ITIL의 견고한 기초에 근거하고 산업계 전반에 널리 적용이 가능한 실행지침과 심사 규격을 발표했습니다. 이 표준(ISO 20000)은 현재 국제적으로 수용되고 있으며 고객과 비즈니스의 요구사항에 부합하고 관리되는 IT 서비스를 효과적으로 제공하기 위해서 통합된 접근법을 적용한 규격입니다.


ISO 20000은 무엇인가 - ISO 20000 IT 서비스관리시스템을 위한 요구사항이 집합된 표준입니다. 이 표준은 비즈니스와 고객의 요구에 부합하는 효과적인 IT 서비스 제공의 핵심 프로세스를 규정하고 관리하는데 도움을 드립니다.

ISO 20000 ITIL의 실행지침을 근간으로 하는 표준입니다. ISO 20000 IT 서비스 문화를 제시하며, 정의된 비즈니스 요구사항을 만족하고 관리 가능한 방식으로 우선순위에 부합할 수 있는 방법론들을 제공합니다.

추가로, ISO 20000은 다음과 같은 사항을 제공합니다.

· 긴밀한 관계의 많은 서비스 관리 프로세스를 명시

· 이들 프로세스간의 관계와 이러한 관계가 조직 환경 내에 어느 정도의 적용성을 가질 수 있는 지를 정의

· 가이드라인 목적과 통제를 제공하여 조직이 관리된 서비스를 제공

ISO 20000 5개의 핵심 서비스 관리 프로세스 그룹을 명시하고 있습니다.

· 서비스 제공 프로세스(Service Delivery Processes) – 서비스 레벨 관리, 가용성 관리, 용량관리

· 관계 프로세스(Relationship Processes) – 서비스 제공 조직과 고객/공급 업체들간의 인터페이스를 포함

· 문제해결 프로세스(Resolution Processes) – 사고 해결 및 예방에 중점

· 통제 프로세스(Control Processes) – 변경, 자산, 구성 관리를 포함

· 릴리즈 프로세스(Release Process) – 신규 또는 변경된 소프트웨어/하드웨어의 배포

규격 - ISO 20000IT 서비스 관리 표준은 두 개의 부분으로 출시되었습니다.

BS ISO/IEC 20000-1:2005 Information technology. Service management. Specification
BS ISO/IEC 20000-2:2005Information technology. Service management. Code of practice

BS ISO/IEC 20000-1 IT 서비스 관리에 대한 규격입니다. 따라서 제3자 심사나 인증에는BS ISO/IEC 20000-1 이 사용됩니다.

BS ISO/IEC 20000-2는 가이드와 권고 사항을 제공하며 BS ISO/IEC 20000-2의 범위 내에서 서비스 관리 프로세스에 있어 최선의 실행 지침을 명시하고 있습니다. 실행지침은 서비스 향상을 계획하거나 ISO 20000-1에 대한 심사를 준비하고 있는 기업이나 조직에게 좀더 상세한 참조 문서로 사용될 수 있습니다.

'IT' 카테고리의 다른 글

해싱의 개요및 특징  (0) 2007.09.20
국내외 웹2.0 서비스 리스트  (0) 2007.09.06
기능점수측정(Function Point) 요약  (0) 2007.09.05
[엑셀]배열 수식 만들기  (0) 2007.08.31
MSN 웹으로 이용하기  (0) 2007.08.30
IT
posted by 구름너머 2007. 9. 5. 09:33
본문스크랩 [CFPS] 기능점수측정(Function Point) 요약 IT

2007/09/05 09:27

http://blog.naver.com/damool2/40041863991

출처 블로그 > 추억
원본 http://blog.naver.com/aaron337/20038653214

1. 기능점수 분석의 목적

- 사용자가 요구하여 제공받는 기능들을 측정한다.

- 구현 기술과는 무관하게 소프트웨어 개발 및 유지보수 규모를 측정한다.

2. 주요용어

1) 사용자(User)

기능적 사용자 요구를 제시하는 사람

언제 어디서나 소프트웨어와 의사소통을 하거나 상호작용을 하는 사람 또는 사물

2) 사용자관점(User View)

- 사용자의 업무적 요구를 사용자의 용어를 사용하여 공식적으로 기술한 것을 의미

3) 사용자 식별가능(User Identifiable)

- 사용자와 소프트웨어 개발자 모두가 이해하고 합의한 프로세스와 데이터 그룹에 대해 정의된 요구사항을 지칭

4) 유지(Maintained)

- 단위 프로세스(입력,수정,삭제 등의 기능)를 통해 데이터를 갱신하는 것

5) 제어정보(Control Information)

- 측정되어지는 어플리케이션의 단위 프로세스에 영향을 미치는 데이터로서, 무엇을, 언제, 어떻게 데이터가 처리되어야 하는가를 명시

6) 단위 프로세스(Elementary Process)

- 사용자에게 의미를 주는 최소단위의 활동

- 반드시 자기 완결적 이어야 한다.

- 비즈니스가 일관된 상태로 유지되어야 함.

7) 처리 로직(Processing Logic)

- 단위 프로세스를 완료하기 위해 사용자가 명확하게 요청하는 요구사항

3. 측정유형

1) 개발 프로젝트(Development Project)

프로젝트 종료시 인도되어 최초로 설치된 소프트웨어가 사용자에게 제공하는 기능을 측정하는 것 (CFP 포함)

2) 개선 프로젝트(Enhancement Project)

기존 어플리케이션의 변경 부분을 측정하는 것으로, 프로젝트가 종료되어서 인도된 사용자 기능에 추가,수정,삭제한 부분을 의미(CFP포함)

3) 어플리케이션(Application)

설치되어 있는 어플리케이션과 관련. 베이스라인(기준선) 또는 설치된 기능점수 측정치.

이 수치는 개발 프로젝트의 기능점수 산정이 종료되었을 때 초기화되고, 개선 프로젝트가 어플리케이션의 기능을 변경시킬 때 마다 갱신된다.(CFP 배제)

4. 측정범위와 어플리케이션 경계식별

1) 어플리케이션 경계의 정의

- 사용자의 비즈니스 관점에 의존한다. 기술 또는 구현상의 고려사항과는 독립적.

- 내부 어플리케이션과 외부 사용자 세계간의 개념적 인터페이스

- 트랜잭션(EI, EO, EQ)에 의해 처리된 데이터가 어플리케이션에 들거나 나가는

세포막 같은 역할을 한다.

- 논리 데이터(ILF)를 둘러싸고 있다.

- 유지보수 하지 않는 논리데이터(EIF) 식별을 한다.

2) 경계설정의 규칙

- 사용자가 무엇을 이해하고 기술하느냐에 있음.

- 사용자가 보는 분리된 기능 영역에 기초하며 기술적 고려사항에 의한 것이 아님

- 이미 설정된 최초의 경계선은 측정범위에 의해 영향을 받지 않는다.

5. 데이터 기능 측정

1) 내부논리파일 (ILF)

- 사용자가 식별할 수 있는 논리적으로 연관된 데이터 그룹 또는 제어정보로

어플리케이션 경계 내부에서 유지

- 측정 대상 어플리케이션의 하나 또는 그 이상의 단위 프로세스를 통하여 유지되는

데이터를 보관

2) 외부연계파일 (EIF)

- 사용자가 식별할 수 있는 논리적으로 연관된 데이터 그룹 또는 제어정보로

다른 어플리케이션의 경계 내부에서 유지되고 측정 대상 어플리케이션이 참조한다.

- 측정 대상 어플리케이션 경계내의 하나 또는 그 이상의 단위 프로세스를 통하여

참조된 데이터를 보관

- 특정 어플리케이션에서 EIF로 측정된 것은 반드시 다른 어플리케이션의 ILF로 존재

3) 레코드요소유형(RET : Record Element Type)

- ILF EIF안에서 사용자가 식별 가능한 데이터 요소의 서브그룹으로 두 가지가 있다.

선택적(Optional) / 필수적(Mandatory)

4) 데이터요소유형(DET : Data Element Type)

- 사용자가 식별가능하고, 유지 또는 검색되고, 비반복적인 유일한 필드

6. 트랜잭션 기능 측정

1) 외부입력(EI : External Input)

- 어플리케이션 경계 밖에서 들어오는 데이터나 제어 정보를 처리하는 단위 프로세스

- 하나 이상의 ILF를 유지하거나 시스템의 동작을 변경

2) 외부출력(EO : External Output)

- 데이터나 제어 정보를 어플리케이션 경계 밖으로 보내는 단위 프로세스

- 처리 로직을 통해 사용자에게 정보를 제공

- 처리 로직은 적어도 하나의 수학공식, 계산, 파생 데이터를 포함하거나, 하나이상의 ILF를 유지 또는

시스템의 동작도 변경

3) 외부조회(EQ : External Inquiry)

- 데이터나 제어 정보를 어플리케이션 경계 밖으로 보내는 단위 프로세스

- ILF EIF로부터 데이터나 제어 정보를 검색하여 사용자에게 정보를 제공

- 처리 로직은 수학공식, 계산, 파생 데이터를 생성하지 않고, 처리될 동안 ILF를 유지 하지 않으며 시스템의

동작도 변경하지 않는다.

7. 미조정 기능점수(UFP : Unadjusted FP)

- UFP = 데이터 기능점수 + 트랜잭션 기능점수

8. 조정인자(VAF : Value Adjustment Factor)

- 측정되는 어플리케이션의 전반적 기능을 평가하기 위하여 14개의

일반시스템 특성(GSC : General System Characteristics)영향도를 합하여

총 영향도(TDI)를 산출.

- 각 특성에 대한 영향도의 범위 : 없음(0) ~ 강함(5) 6등급 표시

- 조정된 기능점수는 미조정 기능 점수의 ±35% 까지 조정가능

- VAF = (TDI * 0.01) + 0.65

9. 14가지 GSC 와 키워드 ( ()의 번호는 해당내용일 경우 점수임)

1) 데이터 통신 (Data Communications) 통신, 프로토콜

2) 분산 데이터 처리 (Distributed Data Processing) 분산데이터, 분산처리,

온라인 단방향(3), 온라인 양방향(4)

3) 성능 (Performance) 응답시간, 처리량

4) 자원제약 정도 (Heavily Used Configuration) resource, 운영도, 운영제약사항(3)

5) 트랜잭션 비율 (Transaction Rate) 낮은 트랜잭션비율(1), 보통(2), 높은(3)

6) 온라인 데이터 입력 (Online Data Entry) 데이터 등록, 조회

7) 최종 사용자 효율성 (End-User Efficiency) 인간적 요소, 사용편리성

8) 온라인 갱신 (Online Update) 내부논리파일이 온라인으로 갱신

데이터손실(4), 복구 프로세스(5)

9) 처리 복잡도 (Complex Processing) 보안처리, 논리적처리, 수학적처리, 예외처리

10) 재 사용성 (Reusability)

11) 설치 용이성 (Installation Ease) 전환(Conversion)

12) 운영 용이성 (Operational Ease) 기동, 백업, 복구

13) 다중 설치성 (Multiple Sites)

14) 변경 용이성 (Facilitate Change) 처리로직, 데이터구조 쉽게변경,

유연한 질의와 보고서, 비즈니스 제어 데이터

10. 조정기능 점수

1) 개발 프로젝트의 조정기능 점수(DFP) 계산 공식

DFP = (UFP + CFP) * VAF

- UFP : 설치 후 이용 가능한 기능들에 대한 미조정 기능 점수

- CFP : 변환 기능에 대한 미조정 기능점수

- VAF : 개발 프로젝트의 어플리케이션에 대한 조정인자

2) 개선 프로젝트의 조정기능 점수(EFP) 계산 공식

EFP = [(ADD + CHGA + CFP) * VAFA ] + (DEL * VAFB)

- ADD : 개선 프로젝트에 의해 추가되는 기능의 미조정 기능점수

- CHGA : 개선 프로젝트에 의해 수정되는 기능의 미조정 기능점수

- CFP : 개선 프로젝트에 의해 개발되는 변환 기능의 기능점수

- VAFA : 개선 프로젝트가 종료된 후의 어플리케이션에 대한 조정인자

- DEL : 개선 프로젝트에 의해 삭제되는 기능의 미조정 기능점수

- VAFB : 개선 프로젝트가 시작되기 전의 어플리케이션에 대한 조정인자

3) 어플리케이션의 조정기능 점수(AFP) 계산 공식

2가지 방식 사용

a. 최초설치시 AFP 계산공식

AFP = ADD * VAF

- ADD : 개발 프로젝트에 의해 설치된 기능의 미조정 기능점수

- VAF : 최초 어플리케이션에 대한 조정인자

b. 변경 설치시의 AFP 계산공식

AFP = [(UFPB + ADD + CHGA) (CHGB + DEL)] * VAFA

- UFPB : 개선 프로젝트 시작전의 미조정 어플리케이션 기능점수

- ADD : 개선 프로젝트에 의해 추가된 기능의 미조정 기능점수

- CHGA : 개선 프로젝트에 의해 변경된 기능의 미조정 기능점수

- CHGB : 변경된 기능에 대한 개선 프로젝트 전의 미조정 기능점수

- DEL : 개선 프로젝트에 의해 삭제되는 기능의 미조정 기능점수

- VAFA : 개선 프로젝트가 종료후의 어플리케이션에 대한 조정인자

'IT' 카테고리의 다른 글

국내외 웹2.0 서비스 리스트  (0) 2007.09.06
ISO20000  (0) 2007.09.05
[엑셀]배열 수식 만들기  (0) 2007.08.31
MSN 웹으로 이용하기  (0) 2007.08.30
라우팅의 종류  (0) 2007.08.29
IT
posted by 구름너머 2007. 8. 31. 10:44

배열 수식 만들기 ==> 맨마지막에 Ctrl+shift+Enter를 입력해야 정상계산됩니다.^^

그냥 편집(F2) 모드에서 Enter를 치면 에러나니까 주의하세요.

또한 중괄호({})는 직접입력하면 한됩니다.

Ctrl+shift+Enter로 입력합니다.

아래는 엑셀 도움말입니다.

배열 수식(배열 수식: 하나 이상의 값 집합에 대해 여러 가지 계산을 수행하고 하나 또는 여러 개의 결과를 반환하는 수식입니다. 배열 수식은 중괄호 { } 안에 표시되고 Ctrl+Shift+Enter를 눌러 입력합니다.)을 입력하면 수식이 자동으로 { } 사이에 포함됩니다.

숨기기단일 결과 값 계산

배열 수식을 사용하여 단일 결과 값 생성을 위한 몇 가지 계산을 수행할 수 있습니다. 이러한 배열 수식 유형은 서로 다른 여러 개의 수식을 하나의 배열 수식으로 바꿈으로써 워크시트 모델을 단순화할 수 있습니다.

  1. 배열 수식을 입력할 셀을 클릭합니다.
  2. 배열 수식을 입력합니다.

    예를 들어 다음은 각 주식의 개별 값을 계산하고 표시하기 위해 한 행의 셀을 사용하지 않고 주식 시세의 배열에 대한 전체 값을 계산합니다.

    단일 결과를 생성하는 배열 수식

    단일 결과를 생성하는 배열 수식

    수식 =SUM(B2:D2*B3:D3)을 배열 수식으로 입력하면 각 주식에 대해 주식과 주가가 곱해지고 그러한 계산 결과가 모두 더해집니다.

  3. Ctrl+Shift+Enter를 누릅니다.

숨기기여러 개의 결과 값 계산

일부 워크시트 함수는 값의 배열을 반환하거나 값의 배열을 인수로 요구하기도 합니다. 배열 수식으로 여러 개의 결과를 계산하려면 각 셀의 행과 열 개수가 배열 인수와 동일한 범위에 배열을 입력해야 합니다.

  1. 배열 수식을 입력할 셀 범위를 선택합니다.
  2. 배열 수식을 입력합니다.

    예를 들어 석 달 동안의 계열(A열)에 대해 세 개의 판매 지수의 계열(B열)이 주어지는 경우, TREND 함수로 판매 지수의 직선 값이 결정됩니다. 수식의 결과를 모두 표시하기 위해 C열에서 세 개의 셀(C1:C3)에 입력됩니다.

    여러 개의 결과를 생성하는 배열 수식

    여러 개의 결과를 생성하는 배열 수식

    수식 =TREND(B1:B3,A1:A3)을 배열 수식으로 입력하면 세 개의 판매 지수와 석 달을 기준으로 세 가지 결과가 각각(22196, 17079, 11962) 만들어 집니다.

  3. Ctrl+Shift+Enter를 누릅니다.

'IT' 카테고리의 다른 글

ISO20000  (0) 2007.09.05
기능점수측정(Function Point) 요약  (0) 2007.09.05
MSN 웹으로 이용하기  (0) 2007.08.30
라우팅의 종류  (0) 2007.08.29
멀티캐스팅 라우팅 프로토콜  (0) 2007.08.28
IT
posted by 구름너머 2007. 8. 30. 14:03

방화벽이 있어서 MSN이 안되는 곳이 있을텐데

아래 사이트로 접속하여 로그인하면 가능하니

많이 이용하세요.

가능한 메신저 : MSN, 야후, 구글 talk, aim

별도 회원가입도 필요하지 않네요.^^

http://wwwl.meebo.com/index-ko.html

'IT' 카테고리의 다른 글

기능점수측정(Function Point) 요약  (0) 2007.09.05
[엑셀]배열 수식 만들기  (0) 2007.08.31
라우팅의 종류  (0) 2007.08.29
멀티캐스팅 라우팅 프로토콜  (0) 2007.08.28
RAID LEVEL  (0) 2007.08.27
IT
posted by 구름너머 2007. 8. 29. 17:42
본문스크랩 라우팅의 종류 IT

2007/08/29 17:41

http://blog.naver.com/damool2/40041635218

출처 블로그 > 일상적인 이야기
원본 http://blog.naver.com/aram96/20004582290

3. 라우팅의 종류

Static 라우팅
라우터상에서 관리자가 수동적인 방법으로 라우팅 테이블을 관리하는 방법이다.

RTA에서 RTB(131.108.1.0)의 라우팅 테이블을 131.108.2.1로 강제로 보내게 설정을 할 수 있다.

Dynamic 라우팅
각각의 인접한 라우터들 사이에서 네트워크 정보를 교환하고, 라우팅 테이블을 자동적으로 작성한다.이 때 라우터들 사이에서 라우팅 테이블을 작성하고제어하는 절차를 규정하고 있는 것이 라우팅 프로토콜이 된다. RIP나 OSPF등이 여기에 속한다.

RIP를 활성화함으로써 RTA의 경로정보가 각 라우터로 교환이 되고,라우팅 테이블이 자동적으로 생성된다.

Default 라우팅
라우터에서 패킷을 수신하면,라우팅 테이블상에 상대방 네트워크 IP 어드레스를 검색하여 패킷을 어디로 보낼 것인가를 결정하는데, 라우터에 Default Route가 설정이 되어 있으면, 라우팅 테이블상에서 등록되어 있지 않는 모든 정보들이 지정된 경로로 전송된다.

CUSTOMER쪽 라우터에서 ISP쪽 네트워크를 라우팅 테이블에서 찾아보고 등록이 되어 있지 않으면,패킷을 파기하고 디폴트가 설정이 되어 있으면 203.248.43.5로 갈 수 있게 보낸다.

'IT' 카테고리의 다른 글

[엑셀]배열 수식 만들기  (0) 2007.08.31
MSN 웹으로 이용하기  (0) 2007.08.30
멀티캐스팅 라우팅 프로토콜  (0) 2007.08.28
RAID LEVEL  (0) 2007.08.27
L4  (0) 2007.08.27
IT
posted by 구름너머 2007. 8. 28. 18:53
멀티캐스팅라우팅프로토콜 | N/W 및 통신 2007.02.12 13:46
코알라(jeonghee65) http://cafe.naver.com/itpride/246 이 게시물의 주소를 복사합니다
유니캐스트 라우팅 프로토콜은 호스트의 위치와 목적에 상관없이 일단 라우팅 테이블이 만들어지고 나면 네트워크의 변화가 없는 한 지속적으로 이를 유지한다. 또한 한번 만들어진 라우팅 테이블의 경로들 중 일부가 실제 패킷의 전달을 위해 자주 사용 되지 않고 어쩌다 사용되는 라우팅 경로라 할지라도 항상 라우팅 테이블에서 관리된다.





장점은 라우팅 테이블에 항상 존재하는 경로 정보 때문에 데이터 전달 요청에는 빠르게 반응할 수 있다.
하지만 유니캐스트 라우팅은 언젠가 사용할 수 있다는 가능성 때문에 지속적으로 경로 정보를 유지해야 함으로 라우팅 정보의 유지보수에 소모되는 자원의 낭비가 심하다. 그리고 경우에 따라서는 많은 라우팅 테이블을 갖고 있어야 하기 때문에 라우팅 테이블을 검색하기 위한 시간 낭비가 많아져 패킷 전달 속도의 저하가 전체 네트워크에 존재하는 모든 라우터에서 발생할 수 있다.
반면 멀티캐스트 라우팅 프로토콜은 라우터간에 통신하는 프로토콜로 멀티캐스트 데이터 패킷을 보내는 소스 호스트로부터 그 데이터를 받는 목적지 호스트까지의 경로를 만들기 위한 다양한 기능을 제공한다.
유니캐스트 라우팅에 비해 멀티캐스트 라우팅은 위치와 목적 정보를 기반으로 만들어 진다. 또한 멀티캐스트 라우팅 경로는 미리 만들어 지는 것이 아니라 서버나 클라이언트 호스트가 멀티캐스트 데이터를 주고받기 위한 IGMP 보고(Report)가 있을 때 만들어 지며 이후 모든 서버나 클라이언트 호스트가 멀티캐스트 데이터를 주고받는 프로그램을 종료하면 자동적으로 멀티캐스트 라우팅 경로는 제거된다. 즉 멀티캐스트 라우팅 정보는 필요에 의해 생성되고 제거되는 방식을 택하고 있다.
물론 이같은 특징은 데이터의 전달요구가 있을 때 바로 반응하지 못한다는 문제가 있기는 하지만 불필요한 라우팅 목록을 갖고 있지 않으므로 관리되는 라우팅 목록의 수가 적다. 때문에 유니캐스팅처럼 라우팅 테이블의 크기 증가로 인한 성능 저하 문제나 많은 라우팅 정보를 유지하기 위한 관리상의 부하도 적다.
또한 멀티캐스트 라우팅 테이블의 갱신은 네트워크의 변화에 의해 이뤄지는 것이 아니라 서버나 클라이언트 호스트가 멀티캐스팅 애플리케이션을 시작하고 종료할 때 IGMP에 의한 등록과 탈퇴 요구에 의해서 이뤄진다.

멀티캐스팅 라우팅 프로토콜
멀티캐스팅 라우팅 프로토콜의 목적은 분산 트리(Distribution Tree)를 만드는 것이다. 분산 트리란 멀티캐스팅 데이터를 보내는 소스 호스트로부터 그 데이터를 받는 목적지까지 중복되지 않고 루프가 없는 최단경로를 갖고 있는 경로 정보다. 트리를 구성할 때는 루트(Root)가 누가 되는가가 중요한데 분산 트리의 경우는 소스에서 가장 가까운 라우터가 루트가 된다. OSPF의 SPF알고리즘에서는 각각의 라우터 자신이 루트가 되고, 이더넷 STP(Spanning Tree Protocol)는 루트 브리지(Root Bridge)에 해당하는 스위치가 루트인 것과 비교해 볼만하다.
IGMP를 통해 특정 멀티캐스트 그룹에 등록한 목적지 클라이언트 호스트와 멀티캐스트 데이터를 전송하는 소스 호스트 간에 라우터들이 있다고 가정하자. 이 라우터들은 호스트의 IGMP를 통한 등록을 받아서 멀티캐스트 데이터의 소스를 수신하는 라우터를 루트로 하고 그를 필요로 하는 목적지 라우터의 요청만을 받아들여 트리를 작성하게 된다. 그러므로 데이터가 전송될 필요가 없는 네트워크로는 트리에 정의되지 않기 때문에 데이터 복제와 전송이 발생하지 않는다.
유니캐스팅 라우팅 프로토콜이 거리 벡터(Distance Vector)와 링크 상태(Link State), 하이브리드(Hybrid)로 나뉘듯이 멀티캐스팅 라우팅 프로토콜도 동작 형태에 따라 소스 분산 트리(Source Distribution Tree)와 공유 분산 트리(Share Distribution Tree)의 두가지로 구분된다.
소스 분산 트리는 소스 지정 트리(Source Specific Tree), 소스 기반 스패닝 트리(Source-Based Spanning Tree), 덴스 모드(Dense Mode) 멀티캐스팅 라우팅 프로토콜이라고 불리기도 하는데 이름이 의미하듯이 데이터를 전송하는 소스가 중심이 돼, 목적지까지의 최적경로를 만들어 낸다.
공유 분산 트리는 중앙 지정 트리(Center Specific Tree), 루트 기반 스패닝 트리(Root-Based Spanning Tree), 스파스 모드(Sparse Mode)라고 불리기도 하는데 이 모드에서는 모든 소스, 목적지 라우터의 정보를 모으고 공유하는 중심적인 역할을 수행하는 라우터가 선발된다. 나중에 소스 호스트들은 이 중심 라우터까지 데이터를 전송하게 되며, 목적지 호스트들 또한 이 중심 라우터에서 필요한 데이터를 받아오는 형식을 취한다.








또한 멀티캐스트 라우팅 프로토콜들은 유니캐스트 라우팅 프로토콜이 만든 라우팅 테이블을 평가함으로써 분산 트리를 만들어 낸다.

소스 분산 트리
소스 분산 트리는 송신자에서 수신자 사이에 만들어진 최단 경로를 멀티캐스팅 데이터 전달용으로 사용한다. 소스에 따라 여러 개의 트리가 만들어지므로 소스의 증가로 인해 라우터 자원에 대한 소비가 많아진다.
소스 분산 트리는 RPF(Reverse Path Forwarding)이라는 프로토콜에 의해 만들어 진다. RPF는 만약 패킷이 라우터에게 전달되면 라우터는 그 패킷이 들어온 방향을 소스 중에 하나의 최단 경로로 판단되면 라우터는 소스가 들어온 인터페이스를 제외한 나머지 모든 인터페이스로 그 패킷을 밀어낸다. 이때 소스로부터 최단 경로에 해당하는 인터페이스를 페어런트 링크(Parent Link)라고 부르고 라우터가 패킷을 전달하는 나가는 쪽 인터페이스를 차일드 링크(Child Link)라고 부른다.
만약 로컬 라우터와 인접 라우터 사이의 링크가 최단경로가 아니거나 중복된 경로면 패킷을 그 링크로 전달하지 않는다. (그림 1)을 예로 들면, 호스트 3으로 전송되는 경로는 A-B-F-G를 이용할 도 있고, A-E-F-G를 이용할 수도 있지만 최단 경로가 아니기 때문에 A-F-G 경로가 선택된다. 또한 똑 같은 데이터를 E가 F에게 보내고 F는 E에게 보내게 되는데 이 경로는 중복된 경로로 판단해 데이터를 전송하지 않게 된다.

덴스 모드 알고리즘과 덴스 모드 라우팅 프로토콜
덴스 모드의 핵심적인 알고리즘은 RPF다. 초기에는 멀티캐스팅 트래픽이 들어오면 소스 인터페이스를 제외한 다른 모든 인터페이스로 플러딩을 수행한다. 그래서 초기 트래픽은 모든 라우터와 모든 네트워크에 전달된다.
이를 수신한 멀티캐스팅 라우터는 멀티캐스트 패킷의 목적지 주소에 명시된 멀티캐스트 그룹 어드레스의 멤버가 있는지 판단하고, 만약 등록된 멤버가 없다면 멀티캐스트 트래픽을 수신한 소스 인터페이스로 ‘해당 멀티캐스트 그룹 어드레스에 등록된 멤버가 없으니 더 이상 데이터를 보내지 말라’는 가지치기 메시지(Prune Message)가 전송된다. 그 외에도 서로 인접한 라우터끼리 같은 멀티캐스트 그룹 어드레스의 목적지 주소를 가진 패킷을 서로 주고 받았을 때 이 인터페이스가 최적이 아닌 경로임을 서로 파악하면 가지치기 메시지(Prune Message)를 수행한다.
가지치기 메시지가 전달된 인터페이스로는 일정한 기간 동안 멀티캐스트 그룹 어드레스에 해당하는 메시지는 전달하지 않는다. 그러나 일정한 기간이 지나면 다시 주기적인 재 플러딩이 수행한다. 이같은 주기적인 플러딩 때문에 멀티캐스팅 클라이언트 입장에서는 보다 빨리 멀티캐스팅 데이터를 받을 수 있지만, 대역폭을 많이 소모하는 단점이 있다.
이 라우팅 프로토콜들은 소스 분산 트리 구성이 목표이다. 주로 집약적으로 분산된 수신자를 위해 사용하며 집약적이란 네트워크의 모든 라우터나 호스트들이 주로 하나의 멀티캐스팅 그룹에 속해 있으면서 이들 대부분이 멀티캐스트 데이터의 전송을 필요로 하고 있다는 의미다.
덴스 모드 라우팅 프로토콜은 멀티캐스팅 트래픽을 전달할 분산트리를 만들거나 유지하기 위하여 주기적인 플러딩에 의존한다. 그래서 이러한 플러딩을 감당할 만한 풍부한 대역폭을 갖고 있는 LAN 환경에서 주로 많이 사용한다.
하나의 네트워크 환경에서 대부분의 라우터가 멀티캐스트 트래픽을 전달한다고 하면 이 프로토콜을 사용하는 것이 바람직하다. 예를 들면 한 기업의 사장이 모든 직원들에게 연설하는 것을 실시간으로 전달하는 비디오 스트림 방송의 경우 거의 모든 직원들이 이것을 시청해야 하기 때문에 모든 라우터와 스위치, 호스트들이 이 멀티캐스팅 트래픽을 받아야 하는 경우에 적합하다.
이를 지원하는 대표적인 멀티캐스트용 라우팅 프로토콜로는 DVMRP(Distance Vector Multicasting Routing Protocol), MOSPF (Multicast Open Shortest Path First), PIM-DM(Protocol Inde pendent Multicast Dense Mode) 등이 있다.

·DVMRP
DVMRP는 RFC 1075에 정의되어있는 인터넷의 MBONE(Multi cast Backbone)에서 사용되는 인터넷 표준 프로토콜로 유니캐스팅 라우팅 프로토콜 중 BGP(Boarder Gateway Protocol)와 같은 수준의 프로토콜이다.
DVMRP는 RPF(Reverse Path Flooding)를 사용한다. 라우터는 멀티캐스트 패킷을 받은 소스 인터페이스(멀티캐스트 패킷이 발생한 소스쪽으로 되돌아 갈 수 있는 다른 인터페이스도 포함)를 제외한 다른 모든 인터페이스로 내보내진다. 이 기술은 멀티캐스팅 데이터 스트림이 모든 네트워크와 호스트에 도달할 수 있도록 해준다. 만약 라우터가 특정 멀티캐스팅 그룹에 대한 데이터를 거부하는 여러 개의 LAN을 연결하고 있다면 라우터는 패킷이 멤버가 존재하지 않는 곳으로 지속적으로 전달되는 것을 막기 위해 가지치기 메시지를 보낼 것이다.
DVMRP는 특정 멀티캐스팅 그룹에 대한 데이터를 요구하는 새로운 호스트에게 데이터를 전달하기 위해 주기적으로 재 플러딩을 수행한다. 이 때문에 주기적인 플러딩의 빈도는 새로운 클라이언트가 데이터를 받게 되는 시점과 직접적인 연관관계를 갖고 있다.
DVMRP는 자체적으로 어느 인터페이스로 보내면 소스로 되돌아가는가를 판단하기 위한 유니캐스트 라우팅 프로토콜을 갖고 있다. 이것은 RIP과 유사하게 홉(Hop) 수를 이용해 최적 경로를 찾는다. 비록 유니캐스트 라우팅 프로토콜을 이용하더라도 멀티캐스트 트래픽이 전달되는 경로는 유니캐스팅 데이터가 전달되는 경로와 다를 수 있다.

'IT' 카테고리의 다른 글

MSN 웹으로 이용하기  (0) 2007.08.30
라우팅의 종류  (0) 2007.08.29
RAID LEVEL  (0) 2007.08.27
L4  (0) 2007.08.27
SaaS(SW as a Service)로 눈을 돌리자  (1) 2007.08.22