1989년 고대마법사 BBS를 운영한 이래, 2026년 오늘 다시 BBS를 만들었습니다
BBSChat이란?
BBSChat은 게시판과 채팅을 하나의 실시간 웹 경험으로 결합한 새로운 형태의 커뮤니케이션 서비스입니다. 사용자는 글을 쓰고, 댓글을 달고, 같은 공간에 있는 사람들과 채팅할 수 있습니다. 겉으로는 익숙한 게시판처럼 보이지만, 내부 구조는 일반적인 중앙 서버 저장형 게시판과 다릅니다.
BBSChat의 핵심은 "내 글은 내 브라우저에 저장되고, 내가 접속해 있는 동안만 다른 사람이 읽을 수 있다"는 점입니다. 글 제목, 본문, 댓글의 원본은 사용자의 브라우저 OPFS/SQLite에 durable하게 저장됩니다. 서버는 글 원본을 영구 저장하지 않고, 접속 중인 사용자의 글을 메모리 캐시에 올려 실시간으로 relay합니다.
### 기존 게시판/채팅과 무엇이 다른가?
기존 게시판은 보통 모든 글과 댓글을 중앙 서버 데이터베이스에 저장합니다. 사용자는 서버에 글을 남기고, 다른 사용자는 언제든 서버에서 그 글을 읽습니다. 반면 채팅은 실시간성이 강하지만, 긴 글과 구조화된 토론을 담기에는 약합니다.
BBSChat은 이 둘의 중간이 아닙니다. 게시판의 구조성과 채팅의 presence를 결합하되, 저장 책임을 새롭게 나눕니다.
- 글 원본은 작성자의 브라우저 OPFS/SQLite에 저장됩니다.
- 서버 SQLite에는 사용자 UUID, 별명, passkey credential metadata, 생성일, 마지막 접속 시각 같은 최소 인증/relay 정보만 저장됩니다.
- 사용자가 접속하면 자신의 글 제목, 본문, 댓글, 메타정보를 서버의 세션 메모리 캐시에 올립니다.
- 다른 접속자에게는 우선 게시물 제목/메타 리스트만 전달됩니다.
- 누군가 글을 클릭하면 서버 캐시에 있는 full document가 on-demand로 전달됩니다.
- 사용자가 퇴장하면 해당 사용자의 글은 다른 사람의 게시물 리스트에서도 사라집니다.
즉 BBSChat은 "영구 게시판"이라기보다 "live board"입니다. 누가 지금 이 공간에 있는지, 그 사람이 지금 공유하고 있는 글이 무엇인지가 중심입니다.
어떻게 사용하나?
사용법은 단순합니다.
1. bbs.cording.ai에 접속합니다.
2. 처음 접속할 때 별명을 입력하면 브라우저 passkey가 생성됩니다.
3. 글쓰기 버튼으로 게시글을 작성합니다.
4. 내가 접속해 있는 동안 다른 사람들은 내 글의 제목을 볼 수 있고, 클릭하면 본문과 댓글을 읽을 수 있습니다.
5. 채팅 영역에서는 같은 공간에 있는 사람들과 즉시 대화할 수 있습니다.
6. 다시 접속할 때는 passkey challenge 서명으로 같은 사용자임을 증명합니다.
별도의 회원가입/비밀번호 로그인은 없습니다. 브라우저와 디바이스의 passkey가 사용자의 UUID 소유권을 증명합니다.
기술적 성취
BBSChat은 단순한 UI 조합이 아니라, 웹 저장소와 실시간 relay 구조를 다시 설계한 실험적이면서도 실용적인 아키텍처입니다.
- PWA 기반 웹프론트
- OPFS/SQLite 단독 durable local storage
- WebAuthn/passkey 기반 사용자 UUID 소유권 검증
- Rust/Axum WebSocket 백엔드
- postcard 기반 binary protocol
- Cloudflare Pages + cloudflared tunnel 기반 배포
- 서버 SQLite에는 인증/relay 최소 정보만 저장
- 서버 메모리 캐시는 접속 중인 사용자 문서만 보관
- snapshot/join/update relay는 제목/메타 중심으로 최소화
- full document는 사용자가 실제로 열람할 때만 on-demand 전송
이 구조는 중앙 서버의 저장 부담과 개인정보 노출 면적을 줄이면서도, 실시간 검색/목록 갱신/댓글 relay/채팅을 가능하게 합니다.
어떤 도메인에 활용할 수 있나?
BBSChat의 아키텍처는 "정보는 개인 단말에 durable하게 있고, 서버는 접속 중인 사람들의 상태와 공유 범위만 relay한다"는 모델입니다. 이 모델은 다양한 도메인에 응용할 수 있습니다.
- 실시간 스터디룸: 각자의 노트는 로컬에 두고, 접속 중인 사람의 요약/질문만 공유
- 컨퍼런스/워크숍 Q&A: 참석자가 접속 중일 때만 질문/자료를 live board에 노출
- 의료/교육 시뮬레이션: 참가자별 케이스 노트는 로컬에 보관하고, 세션 중 필요한 정보만 공유
- 로컬 퍼스트 팀 협업툴: 서버 영구 저장 없이 접속 세션 중심으로 문서 공유
- 임시 커뮤니티/이벤트 게시판: 이벤트가 끝나면 서버에 글 원본이 남지 않는 게시판
- 엣지 디바이스 기반 협업: Jetson, 사내 장비, 로컬 서버가 relay hub 역할을 수행
BBSChat은 게시판을 서버 데이터베이스 중심의 고정된 기록물로 보는 대신, "지금 여기에 있는 사람들이 들고 온 글과 대화가 실시간으로 펼쳐지는 공간"으로 재해석합니다.