나는 WebRTC를 사용한 브라우저 기반 P2P 파일 전송 도구를 만들었습니다 (서버 업로드 없음)
Source: Dev.to
Overview
대부분의 파일 전송 도구는 다음과 같이 작동합니다:
- 파일을 서버에 업로드합니다.
- 서버가 파일을 저장합니다.
- 다른 사용자가 파일을 다운로드합니다.
이 방식은 동작하지만 몇 가지 단점이 있습니다:
- 파일이 서버에 일시적으로 저장됩니다.
- 큰 파일의 경우 업로드 시간이 오래 걸릴 수 있습니다.
- 서버 대역폭을 소비합니다.
이러한 문제를 피하기 위해 저는 WebRTC를 이용한 브라우저 기반 피어‑투‑피어(P2P) 파일 전송 도구를 만들었습니다. 전송은 브라우저 간에 직접 이루어지며, 서버 저장이나 서버 업로드가 없고 연결은 암호화됩니다.
How It Works
이 도구는 WebRTC DataChannels를 사용해 두 사용자 간에 직접 P2P 연결을 설정합니다.
- 사용자 A가 도구를 열고 세션을 생성합니다.
- 세션 코드가 생성됩니다.
- 사용자 B가 동일한 세션 코드를 입력합니다.
- WebRTC 연결이 설정됩니다.
- 파일이 두 브라우저 사이에 직접 전송됩니다.
User A
│
│ session code
▼
User B
│
▼
WebRTC connection
│
▼
Direct file transfer
연결이 설정되면 파일은 중앙 서버를 거치지 않고 피어 간에 직접 이동합니다.
Why WebRTC?
WebRTC는 일반적으로 다음 용도로 알려져 있습니다:
- 영상 통화
- 음성 채팅
- 실시간 협업
또한 DataChannels를 지원하여 브라우저가 임의의 바이너리 데이터를 서로 직접 주고받을 수 있게 합니다. 따라서 WebRTC는 브라우저만으로 동작하는 P2P 도구를 만들기에 이상적입니다.
Features
- 피어‑투‑피어 파일 전송
- 서버 저장 또는 업로드 없음
- 직접적이고 암호화된 브라우저‑투‑브라우저 연결
- 세션 코드 기반 페어링
- 완전한 클라이언트‑사이드 동작(설치 필요 없음)
Try It
아래 링크에서 도구를 사용해 볼 수 있습니다:
👉
- 두 대의 기기 또는 두 브라우저에서 페이지를 엽니다.
- 생성된 세션 코드를 상대방에게 공유합니다.
- 파일 전송을 시작합니다.
Future Directions
저는 또한 다음과 같은 브라우저 기반 P2P 유틸리티를 탐구하고 있습니다:
- P2P 채팅
- P2P 클립보드 공유
- P2P 스트리밍 실험
- 추가 WebRTC 유틸리티
브라우저만으로 동작하는 피어‑투‑피어 애플리케이션을 구축할 수 있는 흥미로운 가능성이 많이 있습니다.
Feedback
도구를 사용해 보신다면 피드백을 듣고 싶습니다. 어떤 기능이 있으면 더 유용할까요?