# FilePizza - 브라우저에서의 P2P 파일 전송

> Clean Markdown view of GeekNews topic #19719. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=19719](https://news.hada.io/topic?id=19719)
- GeekNews Markdown: [https://news.hada.io/topic/19719.md](https://news.hada.io/topic/19719.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-03-13T09:50:43+09:00
- Updated: 2025-03-13T09:50:43+09:00
- Original source: [github.com/kern](https://github.com/kern/filepizza)
- Points: 18
- Comments: 1

## Summary

FilePizza는 WebRTC를 사용하여 중간 서버 없이 브라우저 간 직접 파일 전송을 가능하게 하여 빠르고 안전한 파일 공유를 제공합니다. FilePizza v2는 새로운 UI, 다크 모드, 모바일 브라우저 지원, 비밀번호 보호 기능 등을 추가하여 보안과 사용성을 강화했습니다. 이 서비스는 Next.js, Tailwind, TypeScript 등을 사용하여 개발되었으며, GitHub에서 소스 코드를 클론하여 Docker로 빌드 및 실행할 수 있습니다.

## Topic Body

- WebRTC를 사용하여 다른 웹 기반 파일 공유 서비스에서 요구하는 **초기 업로드 단계를 제거**  
- 데이터가 중간 서버에 저장되지 않기 때문에 전송이 빠르고, 개인적이며, 안전함  
- FilePizza의 호스팅 인스턴스는 file.pizza에서 사용 가능  
  
### FilePizza v2의 새로운 기능  
  
- 새로운 UI와 다크 모드 지원, 현대 브라우저 기술 기반으로 구축됨  
- 모바일 Safari를 포함한 대부분의 모바일 브라우저에서 작동함  
- 업로더에서 다운로드하는 브라우저로 직접 전송 (WebRTC, WebTorrent 없음)으로 더 빠른 핸드셰이크  
- 업로더가 전송 진행 상황을 모니터링하고 중지할 수 있음  
- 비밀번호 보호 및 보고 기능을 통한 보안 및 안전 조치 강화  
- 여러 파일을 한 번에 업로드할 수 있으며, 다운로드하는 사람은 zip 파일로 받음  
- 서비스 워커를 통한 스트리밍 다운로드  
- Redis를 사용한 서버 상태의 외부 프로세스 저장  
  
### 기술 스택 및 개발  
- Next.js, Tailwind, TypeScript, React, PeerJS (WebRTC용), View Transitions, Redis (선택 사항)  
- GitHub에서 소스 코드를 클론하고 pnpm을 사용하여 설치 및 실행 가능  
- Docker를 사용하여 FilePizza를 빌드하고 실행 가능  
  
### FAQ  
  
- **파일 전송 방식**: 파일은 업로더의 브라우저에서 다운로드하는 사람의 브라우저로 직접 전송됨. 서버를 거치지 않음. WebRTC를 사용하여 파일 전송하며, 업로더는 전송 완료 시까지 브라우저 창을 열어 두어야 함.  
- **동시 다운로드 가능 여부**: 가능함. 짧거나 긴 URL을 보내면 됨.  
- **파일 크기 제한**: 브라우저가 처리할 수 있는 만큼의 크기  
- **브라우저를 닫으면**: 파일 URL은 더 이상 작동하지 않음. 다운로드가 완료된 경우, 해당 다운로드하는 사람이 미완료 다운로드자에게 시드를 계속 제공하지만, 새로운 다운로드는 시작할 수 없음.  
- **파일 암호화 여부**: 모든 WebRTC 통신은 DTLS를 통해 자동으로 암호화됨. 추가 보안을 위해 업로드에 비밀번호를 추가할 수 있음.

## Comments



### Comment 35806

- Author: neo
- Created: 2025-03-13T09:50:43+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43342361) 
- 나는 브라우저 기반과 CLI P2P 파일 전송 도구의 긴 목록을 유지하고 있음
  - LimeWire는 최근 ShareDrop과 SnapDrop 같은 좋은 도구들을 인수하고 있음
  - 현재 &lt;a href="https://pairdrop.net/" rel="nofollow"&gt;https://pairdrop.net/&lt;/a&gt;가 남아 있음

- Opera 브라우저는 2010년경 Unite라는 P2P 파일 전송 기능을 잠시 제공했음
  - '냉장고' 모양의 GUI에서 사용자가 포스트잇 스타일의 메모를 남길 수 있었음
  - Opera Presto는 다양한 기능을 제공했으며, Bittorrent 클라이언트, 데스크톱 위젯, IRC 클라이언트, 이메일 클라이언트, 핫키 커스터마이징 기능이 포함되었음
  - 그럼에도 불구하고 브라우저는 여전히 가벼운 바이너리였음

- 이러한 서비스에서 보통 나를 짜증나게 하는 것은 복잡한 URL을 제공하는 것임
  - &lt;a href="https://file.pizza" rel="nofollow"&gt;https://file.pizza&lt;/a&gt;는 URL이 실제 단어로 구성되어 있어 더 나음
  - &lt;a href="https://pairdrop.net" rel="nofollow"&gt;https://pairdrop.net&lt;/a&gt;는 전화로 쉽게 공유할 수 있는 다섯 글자의 임시 '방'을 생성할 수 있어 선호함
  - CLI를 통해 연결을 시작하고 간단한 URL을 제공하는 P2P 서비스를 기다리고 있음

- WebRTC로 로컬 피어 발견을 할 수 있는 방법이 있었으면 좋겠음
  - 현재는 두 엔드포인트가 활성 인터넷 연결과 공유 식별자를 필요로 함
  - 오프라인 로컬 공유는 불가능함

- ShareDrop과 Snapdrop이 LimeWire에 인수된 것처럼 될까봐 걱정됨

- 이 문제는 수십 년 전에 해결되었어야 했지만, 강력하고 안전한 비상업적 솔루션은 여전히 부재함
  - IPFS 프로젝트는 요즘 어떻게 되고 있는지 궁금함

- WebRTC는 중간 서버에 데이터가 저장되지 않아 전송이 빠르고 안전함
  - 그러나 NAT 뒤에 있는 클라이언트 간의 전송을 위해 TURN 서버가 필요함
  - 데이터는 중간 서버에 저장되지 않지만 통과할 수 있음
  - TURN 서버가 데이터를 읽지 않는다는 보장이 있는지 궁금함
  - E2EE가 사용되는지 여부도 궁금함

- Transmission이나 다른 토렌트 클라이언트를 설치하는 것이 문제가 아니라면 privtracker 접근 방식을 선호함
  - 대부분의 토렌트 클라이언트는 기본적으로 백그라운드에서 실행될 수 있음
  - 최근에 주목받았지만 놓쳤다면 아쉬울 것임

- PairDrop을 정말 좋아함

- Magic Wormhole도 있으며 브라우저 기반이 아님
