P2P의 개념
본문 바로가기

P2P의 개념


2014. 9. 19.

사람들은 P2P를 파일 공유 서비스 정도로 생각하고 있는데 그것은 절반만 맞고 절반은 틀리다.

P2P란 peer to peer의 약자로 개인과 개인이 연결된다는 뜻이다. 이것이 왜 혁신적인가 하면 지금까지는 대부분의 네트워크란 것이 클라이언트/서버(client / server) 환경이었기 때문이다.

1. Client/Server VS P2P


클라이언트/서버 환경에서는 서비스의 제공자와 서비스의 수요자가 명백하게 구분된다. 서비스 제공자(서버)는 일방적으로 수요자(클라이언트)에게 제공하는 방식이다. 지금 이 오픈 백과사전 서비스도 여러분의 PC가 클라이언트가 되고 네이버 회사 컴퓨터가 서버가 되어 이루어지는 서비스인 것이다.

당연히 서버에는 무리가 따를 수 밖에 없다. 아무리 조그마한 개미라도 백만마리가 덤빈다면 코끼리 한마리정도는 사뿐하게 갉아먹을 수 있을 것이기 때문이다. 그러니 서버가 느려진다면 그건 여러사람이 달라붙었기 때문이라고 생각하면 된다.

P2P에서는 하나의 말단 사용자가 서버이자 클라이언트 역할을 한다. 개개의 개미떼가 모두 서버이자 클라이언트 역할을 한다는 말이다. 따라서 한군데로 부하가 걸리지 않기때문에 상당히 무지막지한 작업들도 단순 무식한 방식으로 해결이 가능하다.

2. SETI@Home

P2P의 잘 알려져있지 않지만 꽤 멋진 프로젝트에 SETI@Home이라는 것이 있다. 자연과학을 연구하다보면 가끔 어처구니없는 연산을 해야 할 필요가 생긴다. 그런 것은 수퍼 컴퓨터 몇대로 해도 처리가 어려운 수준이다. SETI@Home은 버클리 대에서 외계 생명체가 있나 없나를 알아보기 위해 운용하는 것으로, 먼저 어마어마한 연산을 쪼갠 다음 세계 곳곳에서 놀고있는 컴퓨터에게 시킨다.

그 연산 결과가 끝나면 모아서 하나의 큰 연산결과로 만드는 것이다. 십시일반(十匙一飯) 프로젝트라고 할 만 하다. 물론 이용자가 그 취지를 이해하고 프로그램을 설치해주어야 가능하다. 이런 방식을 그리드 컴퓨팅이라고 말하기도 한다.

3. 서버의 개입 여부에 따른 구분

우리가 흔히 보는 P2P 프로그램의 두가지로는 메신저와 파일공유 프로그램을 들 수 있다. 이 두가지는 메인 정보를 어디가 가지고 있느냐에 따라 두가지 방식으로 갈린다. 중간에 서버가 강하게 개입하느냐 개입하지 않느냐의 차이다.

서버가 개입하는 것에는 MSN을 비롯한 대부분의 메신저와 mp3 다운로드로 유명했던 냅스터같은 것들이 있다. 서버가 개입하지 않(거나 최소한으로 개입하)는 것에는 누텔라나 소리바다 2같은 것이 있다. 특정 업체 종속적이지 않다는 점에서 당나귀(eDonkey)도 후자에 넣을 수 있겠다.

메신저는 대개 친구목록을 서버가 가지고 있다가 사용자가 로그인하면 프로그램에 보내준다. 메시징의 주소라고 할 수 있는 친구목록이 서버에 종속적인 것이다. 따라서 메신저 서비스 회사는 이용자들을 제어할 수 있다.

파일공유 프로그램의 경우 중간에 서버가 개입하는 것은 파일 리스트를 서버가 모아서 가지고 있다가 검색과정까지 서버가 지원해준다. 즉 사용자와 사용자들 사이의 중매를 서주는 것이다. 중매가 성공하면 파일을 주고받는 것은 서로 알아서 한다. 하지만 이것 역시 서버에서 제어가 가능하다는 측면에서 저작권 문제를 피해가기가 어렵고 결국 냅스터는 음반사와의 소송에서 패했다.

서버가 중간에 개입하지 않는 경우는 여러가지 알고리즘이 있지만 파일 리스트까지도 각각의 사용자들이 분산해서 가지고 있다는 점에서 공통적이다. 이것은 서버가 적극적으로 개입하는 것에 비해서 검색 속도가 느리다는 단점이 있지만 책임까지 분산되기 때문에 저작권을 회피할 수 있는 방안이 되었다.

4. P2P와 저작권 회피


사실 P2P는 여러가지 긍정적인 형태로 활용이 가능하며 응용 범위도 넓다. 서버를 분산을 시키면 기존의 단일 서버 시스템에 비해 훨씬 큰 부하를 견디면서 서비스를 운영하는 것이 가능하다. 검색엔진을 예로들면 검색엔진은 꾸준히 웹을 돌아다니면서 문서를 수집해야 하고 그것을 색인해야 하는데 그 일의 부하를 줄이는데도 분산 처리가 유용하다.

하지만 P2P는 저작권을 회피하면서 대용량의 파일을 주고받는 매체로서 각광받았고 당연히 사회문제를 야기하였다. 기술이 문화의 유통판도를 압도한 탓에 기존 게임의 법칙을 모두 바꾸어버린 것이다. 가장 대표적인 문제는 음반산업의 몰락을 들 수 있다.

2003년 하반기에 이미 국내 음반산업의 규모는 핸드폰 벨소리 다운로드 산업보다도 작아졌다. 누구에게나 열려버린 음악 파일과 무선 서비스 사업자에게 철저히 종속된 벨소리라는 환경의 차이가 그런 '엽기적'인 상황을 만든 것이다.무엇이 옳고 그른가에 대해 쉽게 말할 수는 없겠지만 끊임없이 변화하는 시대와 기술에 적응하지 못하면 어떤 일이 벌어지는가에 대한 중요 사례라 아니할 수 없다.

5. 모두를 위한 P2P : CDDB

마지막으로 인간 P2P라고 할 수 있는 사례를 하나 언급하겠다. 여러분이 가지고 있는 CD재생 프로그램들에 CD를 넣으면 트랙 정보가 나온다. 이거 당연해보이지만 전혀 당연하지 않은 것이, 그 CD에는 뮤지션과 곡명 등에 관한 정보는 들어있지 않기 때문이다. 어떻게 하는 것일까. 그것은 CDDB라는 기업(프로젝트?) 때문이다.

각각의 CD재생 프로그램에는 CDDB에서 만든 모듈을 포함해둔다. 이용자가 CD를 넣었을 때 CDDB에 정보가 있으면 해당 CD의 정보를 내려보낸다. 정보가 없다면 이용자에게 정보를 넣어달라고 요청한다. 이용자가 그 정보를 입력하면 하나의 CDDB 서버가 받아서 각각의 CDDB서버와 공유한다. 이런 식으로 CDDB는 전 세계 음원 목록 정보를 확보하게 되는 것이다.

이것은 음악 CD의 특성 때문에 가능한 일이다. 각각의 CD에는 서로 다른 수록곡 수, 곡 길이 등이 있기 때문에 이것들을 조합하면 거의 각각의 CD를 구분해줄 수 있다. CD들의 지문같은 것이라고 이해하면 된다.

이것은 '나 한번의 고생으로 세계인이 널널해지자!'는 긍정적인 정신의 발현이다. 물론 CDDB의 정보 자체가 정교해지기는 요원한 일이지만 이정도라도 되는 것은 매우 모범적인 사례라 할 수 있을 것이다.

심지어는 가요도 웬만한 목록이 다 나오는데 그것은 한국인 중 누군가가 당신을 위해 넣어두었기 때문에 나오는 것이다. 혹시 당신에게 특이한 음반이 있어서 정보가 없을 경우 남을 위해 정보를 넣어보는 것도 즐거운 경험이 될 것이다.