STILL CODING / NOTES
Cloudflare Durable Objects 개발 노트
Cloudflare Durable Objects
여러 앱에서 Cloudflare Durable Objects을(를) 다루며 남긴 노트 7편입니다.
-
sessionId는 비밀이 아니다 — CollaBoard의 식별자와 입장 권한 분리
CollaBoard에서 공개 식별자, 일회용 입장권, 멤버 토큰, 방장 토큰의 역할을 나눕니다. 참가자 번호를 아는 것과 입장·방장 권한을 갖는 것을 어떻게 갈랐는지 정리합니다.
-
사진은 서버를 거치지 않는다 — Direct Play가 게임 자원을 P2P로 나눠 주는 법
사진퍼즐처럼 방장이 올린 사진이 게임의 재료인 앱에서, 서버에 사진을 저장하지 않고 참가자에게 전달하기 위해 Direct Play가 만든 자원 요청 라우팅, 16,000자 청크 전송, 해시 검증, 실패 처리를 정리합니다.
-
가위바위보 선택은 서버에만 보인다 — Durable Object로 만든 비공개 라운드
방장이 계산하는 대신 Durable Object가 참가자 등록, 비공개 선택, 승패 판정과 재접속 상태를 관리하는 Direct Play 가위바위보의 서버 권위 구조를 설명합니다.
-
방에도 수명이 있다 — 알람으로 청소하고 하루 500방으로 지키는 Direct Play의 서버 비용 설계
Direct Play는 설정 중 1시간 뒤 삭제, 활동 없이 3일 뒤 보관, 보관 후 7일 뒤 삭제를 예약합니다. Durable Object 알람으로 방을 정리하는 방법, 쓰기를 줄이는 장치, 하루 500방 한도를 전역 객체 하나로 세는 방법을 코드로 정리합니다.
-
스파이 게임의 진행 규칙 — 역할 확인, 투표, 마지막 추리
4~12명이 함께하는 Direct Play 스파이 게임의 투표와 결선, 마지막 추리 규칙을 설명합니다. 로컬 코드로 확인한 제한 시간 처리와 진행 상태 복원의 한계도 기록합니다.
-
사진 한 장으로 '여기가 어디게?' — EXIF GPS, 지도 임베드, 그리고 사진 만 장 중 한 장 고르기
Direct Play 사진퍼즐의 EXIF GPS 읽기, 지도 표시, 장소 이름 추천을 설명합니다. 공개 여부를 확인해야 하는 로컬 Flutter 사진첩 구현과 60초 타임아웃에 관한 커밋 기록도 다룹니다.
-
서버는 방만 만든다 — CollaBoard의 WebRTC P2P 협업 구조
팀 자료를 서버에 저장하지 않는 협업 도구를 만들기 위해 CollaBoard가 선택한 시그널링, 메시와 스타 토폴로지, 16KB 청크 전송, 입장 보안 설계를 정리합니다.