피어 투 피어란 무엇인가요?
피어 투 피어(Peer-to-Peer, P2P)는 참여하는 컴퓨터가 데이터나 자원을 받는 역할과 제공하는 역할을 모두 수행할 수 있는 아키텍처입니다. 각 참여자를 피어라고 합니다.
예를 들어 파일을 내려받는 컴퓨터는 이미 받은 부분을 다른 컴퓨터에 보낼 수 있습니다. 모든 다운로드가 하나의 중앙 서버에서 이루어지는 대신 참여자 사이에서 데이터가 이동합니다.
P2P 시스템에서도 참여자가 네트워크에 들어오거나 피어를 찾도록 돕는 서버를 사용할 수 있습니다. 이러한 서버가 전송되는 모든 데이터를 반드시 중계하는 것은 아닙니다.
애플리케이션이 파일을 여러 조각으로 나눈다고 가정해 봅시다. 사용자의 컴퓨터는 아직 없는 조각을 가진 피어를 찾고, 여러 피어로부터 서로 다른 조각을 동시에 내려받을 수 있습니다.
조각을 받으면 애플리케이션은 그 내용으로 계산한 값인 해시를 신뢰할 수 있는 출처에서 얻은 파일 메타데이터의 기대 값과 비교합니다. 유효한 조각은 보관하며 다른 피어에게도 공유할 수 있습니다. 모든 조각이 도착하면 애플리케이션이 이를 완전한 파일로 조립합니다.
피어의 연결이 끊어지면 애플리케이션은 같은 조각을 가진 다른 피어를 찾습니다. 해당 조각이 어딘가에 여전히 있어야만 다운로드를 계속할 수 있습니다. P2P에 참여한다는 것만으로 파일의 가용성이 자동으로 유지되지는 않습니다.
P2P는 파일 공유, 콘텐츠 배포, 참여자끼리 자원을 교환하는 애플리케이션에 적합합니다. 시스템은 피어의 참여와 이탈을 처리하고 중요한 데이터를 보존할 방법을 제공해야 합니다.
중앙 집중식 관리와 엄격한 데이터 통제가 필요한 비즈니스 웹사이트라면 클라이언트–서버 설계가 구축하고 운영하기 쉬운 경우가 많습니다.
주니어부터 시니어까지 상세한 답변이 포함된 IT 면접 질문 라이브러리.
후원하기