<PonsLink/>
작업
글
주제
시리즈
카테고리
연락
⌘K 검색
About
코드와 제품으로

코드와 제품으로

연결되는 세계

연결되는 세계

PonsLink는 만남 뒤 요청을 세션으로 잇고, PonsWarp는 서버 보관 없이 파일을 직접 전송합니다. 이 블로그는 기능 소개보다 설계 판단과 운영 증거를 남깁니다.

연락처

[email protected]github.com/DeclanJeon

운영

콘텐츠는 WordPress headless CMS, 공개 UI는 Next.js입니다.

초안 미리보기
© 2026 PonsLink Blog|Next.js · WordPress REST · Framer Motion
Local-first · Backup-before-deploy

Writing

시리즈: ponswarp-concept-classroom에 해당하는 글입니다.

주제
프로젝트
글 유형
26개의 글
[PonsWarp 개념 교실 25] 멱등성 — 같은 결제 이벤트를 두 번 처리하지 않는 법
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 25] 멱등성 — 같은 결제 이벤트를 두 번 처리하지 않는 법

쉽게 말하면, **멱등성은 같은 요청을 한 번 처리하든 열 번 처리하든 최종 결과가 한 번 처리한 것과 같게 만드는 성질**이다. ![PonsWarp idempotent-webhook](/tistory/ponswarp/concept/2026-08-21-ponswarp-concept-idempotent-webhook-cover-imagegen.webp) 결제 Webhook은 네트워크 오류

PonsWarp멱등성IdempotencyWebhook결제DatabaseLemonSqueezyPayPal개발회고
[PonsWarp 개념 교실 24] 토큰버킷 — API 요청을 어떻게 일정하게 제한하나
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 24] 토큰버킷 — API 요청을 어떻게 일정하게 제한하나

쉽게 말하면, **토큰버킷은 요청이 들어올 때마다 토큰을 하나씩 꺼내고, 토큰이 없으면 잠시 기다리거나 거부하는 요청 제한 장치**다. ![PonsWarp token-bucket](/tistory/ponswarp/concept/2026-08-21-ponswarp-concept-token-bucket-cover-imagegen.webp) 무조건 초당 N개만 허용하는 고정 창보다 순간 bur

PonsWarp토큰버킷RateLimitAPIMesh429보안개발회고
[PonsWarp 개념 교실 26] 헥사고날 아키텍처 — 외부 기술을 갈아끼우는 구조
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 26] 헥사고날 아키텍처 — 외부 기술을 갈아끼우는 구조

쉽게 말하면, **헥사고날 아키텍처는 핵심 업무 로직이 WebRTC·파일시스템·클라우드 같은 외부 기술을 직접 알지 않게 만드는 구조**다. ![PonsWarp hexagonal architecture](/tistory/ponswarp/concept/2026-08-21-ponswarp-concept-26-hexagonal-cover-imagegen.webp) 외부 기술을 바꾸더라도 안쪽

PonsWarp헥사고날아키텍처PortsAdapters개발회고
[PonsWarp 개념 교실 23] presigned URL — 서버를 거치지 않고 R2에 올리는 법
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 23] presigned URL — 서버를 거치지 않고 R2에 올리는 법

Cloud Drop은 서버가 파일을 받아 저장하는 방식이 아니다. 서버가 잠깐 유효한 업로드 URL을 발급하고, 브라우저가 R2에 직접 PUT한다.

PonsWarppresigned URLCloudflare R2MultipartCloud DropETag개발회고
[PonsWarp 개념 교실 22] TURN 자격증명 — coturn REST API와 HMAC-SHA1
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 22] TURN 자격증명 — coturn REST API와 HMAC-SHA1

쉽게 말하면, **TURN 자격증명은 "잠깐만 쓸 수 있는 릴레이 이용권"이고, username 안에 만료시각을 넣고 그 전체를 HMAC-SHA1으로 서명한다.** ![시간 제한 TURN 자격증명](/tistory/ponswarp/concept/2026-08-21-ponswarp-concept-22-turn-credential-cover-imagegen.webp) 직접 WebRTC 연결이

PonsWarpTURNcoturnSTUNNATHMAC-SHA1WebRTC자격증명개발회고
[PonsWarp 개념 교실 21] 시그널링 — 방 모델과 메시지 라우팅
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 21] 시그널링 — 방 모델과 메시지 라우팅

쉽게 말하면, **시그널링 서버는 파일 운반자가 아니라 두 브라우저를 소개하는 교환원**이다. ![시그널링 서버는 파일을 운반하지 않고 피어를 소개한다](/tistory/ponswarp/concept/2026-08-21-ponswarp-concept-21-signaling-room-cover-imagegen.webp) 파일 바이트는 WebRTC DataChannel로 직접 흐르고, 서버는

PonsWarp시그널링WebSocketWebRTC방모델OfferAnswerICERust개발회고
[PonsWarp 개념 교실 20] Resume 커서 — 끊긴 전송을 중간부터 이어가는 법
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 20] Resume 커서 — 끊긴 전송을 중간부터 이어가는 법

전송이 끊겼을 때 처음부터 다시 보내는 것은 가장 비싼 복구다. PonsWarp는 global offset을 file offset·sequence·next partition으로 바꿔 정확한 위치부터 재개한다.

PonsWarpresume재개offset커서모바일PARTITION개발회고
[PonsWarp 개념 교실 19] 백프레셔 — high/low watermark로 전송을 보호하는 법
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 19] 백프레셔 — high/low watermark로 전송을 보호하는 법

받는 쪽 디스크가 느린데 보내는 쪽이 계속 달리면 버퍼가 쌓인다. PonsWarp는 48MiB에서 PAUSE하고 16MiB까지 내려오면 RESUME하는 high/low watermark를 사용한다.

PonsWarp백프레셔backpressurewatermarkPAUSERESUME스트리밍개발회고
[PonsWarp 개념 교실 18] AIMD — 혼잡 제어의 고전
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 18] AIMD — 혼잡 제어의 고전

네트워크가 괜찮을 때는 조금씩 키우고, 혼잡해지면 한 번에 줄인다. AIMD는 이 단순한 규칙으로 전송량을 안정화한다. PonsWarp는 RTT와 bufferedAmount를 보고 cwnd를 조절한다.

PonsWarpAIMD혼잡제어cwndRTTbufferedAmount네트워크개발회고
[PonsWarp 개념 교실 17] 파티션 배리어 — PARTITION_ACK와 연속 프론티어
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 17] 파티션 배리어 — PARTITION_ACK와 연속 프론티어

암호화된 파일 조각을 끝없이 보내면 수신측 writer가 따라가지 못한다. PonsWarp는 일정 구간마다 PARTITION 마커를 보내고, 수신측의 연속 오프셋이 그 지점에 도달했을 때 다음 구간을 보낸다.

PonsWarpPARTITION_ACKpartitionbarrier재정렬WebRTCbackpressure개발회고
[PonsWarp 개념 교실 16] in-flight 윈도우 — BDP와 슬라이딩 윈도우
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 16] in-flight 윈도우 — BDP와 슬라이딩 윈도우

보내지 않은 데이터를 무한히 큐에 넣으면 브라우저 버퍼가 터진다. PonsWarp는 네트워크 경로와 RTT를 보고 동시에 날아갈 수 있는 바이트를 정하고, bufferedAmount를 뺀 만큼만 더 요청한다.

PonsWarpin-flight슬라이딩윈도우BDPRTTbufferedAmount흐름제어개발회고
[PonsWarp 개념 교실 15] prepare-ahead 크레딧 — 생산자·소비자 큐
2026년 8월 21일·PonsWarp 개념 교실·9 min

[PonsWarp 개념 교실 15] prepare-ahead 크레딧 — 생산자·소비자 큐

암호화 워커가 파일을 너무 빨리 읽으면 준비된 암호문이 메모리에 쌓인다. PonsWarp는 12MiB 크레딧을 두고 소비된 만큼만 다시 만들게 하는 생산자·소비자 흐름을 구현했다.

PonsWarpprepare-aheadcreditproducer-consumerWebWorkerbackpressure메모리개발회고
[PonsWarp 개념 교실 14] WebRTC DataChannel — SCTP 신뢰성과 bufferedAmount
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 14] WebRTC DataChannel — SCTP 신뢰성과 bufferedAmount

WebRTC 연결이 됐다고 파일이 자동으로 안전하게 흐르는 것은 아니다. DataChannel은 SCTP 위에서 신뢰성과 순서를 제공하지만, 애플리케이션은 control/bulk 분리와 bufferedAmount 흐름 제어를 직접 설계해야 한다.

PonsWarpWebRTCDataChannelSCTPbufferedAmountbackpressurecontrol-plane개발회고
[PonsWarp 개념 교실 13] Reed-Solomon — GF(2^8) 이레이저 코딩
2026년 8월 21일·PonsWarp 개념 교실·9 min

[PonsWarp 개념 교실 13] Reed-Solomon — GF(2^8) 이레이저 코딩

패킷이 손실돼도 원본을 복구할 수 있다면 재전송을 기다릴 필요가 없다. Reed-Solomon은 데이터에 패리티를 더해 일부를 잃어도 나머지로 복원하는 FEC다.

PonsWarpReed-SolomonFECGF(2^8)Vandermonde이레이저복구WASM개발회고
[PonsWarp 개념 교실 12] LZ4 블록 압축 — 속도를 위해 만든 비표준 포맷
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 12] LZ4 블록 압축 — 속도를 위해 만든 비표준 포맷

DEFLATE보다 훨씬 빠른 압축이 필요한 순간이 있다. LZ4는 압축률을 희생하고 속도에 올인한 블록 압축이다. PonsWarp는 LZ4를 표준 프레임이 아닌 자체 블록 포맷으로 구현했는데, 그 선택의 이유와 대가를 파헤친다.

PonsWarpLZ4압축블록압축속도WASM비표준개발회고
[PonsWarp 개념 교실 11] DEFLATE — zip64 속의 압축 (miniz_oxide)
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 11] DEFLATE — zip64 속의 압축 (miniz_oxide)

ZIP64 편에서 압축은 옵션이라고 했다. 그 옵션을 켰을 때 실제로 데이터를 줄이는 DEFLATE는 어떤 원리로 동작하고, 스트리밍에서 어떻게 조각 단위로 압축을 이어가는지 파헤친다.

PonsWarpDEFLATE압축miniz_oxideLZ77허프만WASMZIP개발회고
[PonsWarp 개념 교실 10] ZIP64 스트리밍 — LFH·CEN·EOCD64 구조
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 10] ZIP64 스트리밍 — LFH·CEN·EOCD64 구조

여러 파일을 묶어 하나의 다운로드로 만들 때, 전체를 메모리에 올리지 않고 스트리밍으로 ZIP을 쓸 수 있다. PonsWarp의 수신측은 ZIP64 구조(LFH→데이터→CEN→EOCD64)를 조각 단위로 만들어 4GB 이상도 무손실로 표현한다.

PonsWarpZIP64스트리밍ZIP아카이브압축WASM대용량개발회고
[PonsWarp 개념 교실 9] 재정렬 버퍼 — Arena·free-list·BTreeMap·LRU
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 9] 재정렬 버퍼 — Arena·free-list·BTreeMap·LRU

조각이 순서대로 도착한다는 보장은 없다. 수신측은 뒤섞인 조각을 정렬해 파일 순서대로 디스크에 써야 한다. PonsWarp는 Arena+free-list로 메모리를 관리하고, BTreeMap으로 인덱스를 유지하며, 128MiB 한도를 넘으면 LRU로 밀어낸다.

PonsWarp재정렬버퍼ArenaBTreeMapLRUWASM메모리개발회고
[PonsWarp 개념 교실 8] 청크 크기 16~192KiB — 어떻게 정해졌나
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 8] 청크 크기 16~192KiB — 어떻게 정해졌나

청크가 크면 패킷 수가 줄어 빨라질 것 같지만, SCTP 메시지 상한과 메모리·재전송 비용이 가로막는다. PonsWarp가 경로별로 16~192KiB를 고르는 기준과, 크면 무조건 빠르다가 아닌 이유를 파헤친다.

PonsWarp청크청크사이즈SCTPDataChannel튜닝성능WebRTC개발회고
[PonsWarp 개념 교실 7] 22바이트 패킷 헤더 — 한 조각이 자신을 설명하는 법
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 7] 22바이트 패킷 헤더 — 한 조각이 자신을 설명하는 법

파일을 조각내 보내면 수신측은 이 조각이 파일의 어디에 붙는지 알아야 한다. PonsWarp는 22바이트 고정 헤더에 그 정보를 담는다. 각 필드가 왜 그 크기인지, 왜 그 순서인지, 그리고 CRC 필드가 0으로 비워진 사연까지 파헤친다.

PonsWarp패킷헤더프로토콜청크직렬화바이너리개발회고
[PonsWarp 개념 교실 6] 무결성 3총사 — CRC32 vs SHA-256 vs Merkle Tree
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 6] 무결성 3총사 — CRC32 vs SHA-256 vs Merkle Tree

데이터가 전송 중 변조되지 않았는지 확인하는 방법은 세 가지 층위가 있다. CRC32는 빠르지만 약하고, SHA-256은 강하지만 무겁고, Merkle 트리는 부분 검증이 가능하다. PonsWarp가 실제로 고른 조합과 그 이유를 파헤친다.

PonsWarpCRC32SHA-256Merkle무결성해시검증WebRTC개발회고
[PonsWarp 개념 교실 5] HMAC과 상수시간 비교 — 키 확인과 타이밍 공격
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 5] HMAC과 상수시간 비교 — 키 확인과 타이밍 공격

두 브라우저가 같은 키를 가졌는지 확인하려면 문자열 비교로 충분할 것 같지만, 그 비교 방식이 보안 구멍이 될 수 있다. HMAC과 상수시간 비교가 왜 함께 필요한지 파헤친다.

PonsWarpHMACSHA-256상수시간타이밍공격키확인보안개발회고
[PonsWarp 개념 교실 4] GCM nonce — 왜 4B 카운터 + 8B random prefix인가
2026년 8월 21일·PonsWarp 개념 교실·7 min

[PonsWarp 개념 교실 4] GCM nonce — 왜 4B 카운터 + 8B random prefix인가

GCM에서 nonce가 두 번 재사용되면 암호문 두 개를 XOR하는 것만으로 키를 역산할 수 있다. PonsWarp가 nonce를 4바이트 카운터와 8바이트 랜덤 프리픽스로 쪼갠 이유와, 그 설계에 남은 위험이 무엇인지 파헤친다.

PonsWarpGCMnonce카운터암호화보안취약점WebCrypto개발회고
[PonsWarp 개념 교실 3] AES-256-GCM — 암호화의 구조 (CTR + GHASH + tag)
2026년 8월 21일·PonsWarp 개념 교실·8 min

[PonsWarp 개념 교실 3] AES-256-GCM — 암호화의 구조 (CTR + GHASH + tag)

AES-256-GCM은 암호화와 위변조 감지를 한 번에 해결한다. CTR 모드로 데이터를 섞고, GHASH로 인증 태그를 만들어 붙인다. 이 태그가 16바이트로 파일 무결성을 지키는 이유를 파헤친다.

PonsWarpAESGCMGHASHCTR암호화인증AEAD개발회고
[PonsWarp 개념 교실 2] HKDF-SHA256 — 공동 비밀을 안전한 키로 가공하기
2026년 8월 21일·PonsWarp 개념 교실·6 min

[PonsWarp 개념 교실 2] HKDF-SHA256 — 공동 비밀을 안전한 키로 가공하기

ECDH가 만든 공동 비밀은 좋은 AES 키라고 바로 가정하면 안 된다. 그 사이에 키 제조 공장 하나를 두는데, 그게 HKDF-SHA256이다.

PonsWarpHKDFSHA-256키유도암호화RFC5869WebCrypto개발회고
[PonsWarp 개념 교실 1] ECDH P-256 — 둘만 아는 공동 비밀 만들기
2026년 8월 21일·PonsWarp 개념 교실·5 min

[PonsWarp 개념 교실 1] ECDH P-256 — 둘만 아는 공동 비밀 만들기

서로 비밀키를 직접 보내지 않고, 두 기기만 똑같은 암호화 키를 만들어내는 방법.

PonsWarpECDHP-256암호화키교환WebRTCWebCrypto개발회고