빠르게 흐르는 GeekNews 뉴스 피드 곁에, 일상과 관심사를 조금 더 오래 이야기하는 대화 공간 BeeBS를 열었습니다.
다시 살아난 BBS, BeeBS를 공개합니다
GeekNews를 7년 동안 운영하면서 한 가지 아쉬운게 있었습니다.
좋은 링크와 새로운 소식은 매일 쌓이는데, 그 링크에서 시작된 이야기는 뉴스의 속도만큼 빠르게 뒤로 밀린다는 점입니다. 요즘 써본 도구에 대한 짧은 감상, 개발과 커리어에 관한 고민, 최근 읽은 책이나 본 영화, 주말에 즐긴 게임 같은 이야기는 GeekNews 사용자들과 나누고 싶어도 뉴스 피드에 올리기에는 조금 어색했습니다.
뉴스를 보는 곳 옆에, 조금 다른 속도로 대화하는 공간이 있으면 어떨까 생각했습니다.
그래서 BeeBS를 만들었습니다.
뉴스가 아닌 이야기를 위한 자리
GeekNews는 좋은 원문을 빠르게 발견하고, 핵심을 훑고, 그에 관한 의견을 나누는 데 초점을 맞춰 왔습니다. 이 구조는 기술 뉴스에는 잘 맞지만 모든 이야기가 링크나 최신 소식에서 출발하는 것은 아닙니다.
BeeBS에서는 이런 이야기를 기대하고 있습니다.
- GeekNews 사용자들의 일상
- 요즘 써본 도구와 서비스에 대한 감상
- 개발, 제품, 커리어에 관한 질문과 경험
- 책, 영화, 게임, 보드게임, 술 같은 취향 이야기
- 만들고 있는 프로젝트와 사이드 프로젝트의 진행 과정
- 뉴스 피드에 올리기는 애매하지만 함께 이야기해보고 싶은 것들
GeekNews를 대체하거나 또 하나의 뉴스 피드를 만드는 것이 목표는 아닙니다. GeekNews에서 같은 정보를 읽던 사람들이 그 바깥의 관심사도 나누고, 지나간 이야기를 다시 꺼내 이어갈 수 있는 옆방에 가깝습니다.
그래서 첫 번째 게시판도 GeekNews BeeBS로 열었습니다. GeekNews 오른쪽 아래의 BeeBS 버튼을 누르면 읽던 페이지를 떠나지 않고 작은 서랍처럼 열리고, 필요하면 독립된 페이지로 넓게 볼 수 있습니다. 읽기는 로그인 없이 가능하고, 이메일이나 GeekNews 계정으로 시작할 수 있습니다.
오래된 글이 다시 살아나는 게시판
BeeBS라는 이름은 오래된 BBS(Bulletin Board System) 에서 가져왔습니다. 단순한 목록과 글, 댓글을 중심으로 한 게시판의 장점은 살리되, 지금의 웹에서 기대하는 편집과 검색, 모바일 경험을 더하고 싶었습니다.
기본 화면도 일반적인 최신순이 아니라 활발(Buzzing) 순입니다.
새 글만 계속 위에 쌓이는 대신 댓글과 반응이 붙어 다시 활발해진 글이 위로 올라옵니다. 며칠 전에 시작한 이야기도 새로운 경험이나 질문이 더해지면 다시 보입니다. 새로 올라온 글은 새글, 반응과 참여가 많이 쌓인 글은 인기 탭에서 따로 볼 수 있습니다.
커뮤니티의 좋은 대화는 꼭 처음 올라온 순간에만 가치가 생기지 않습니다. 시간이 지나 새로운 사람이 참여하고, 다른 관점이 붙으면서 더 좋아지기도 합니다. BeeBS의 Buzzing은 그런 글에 다시 숨을 불어넣기 위한 장치입니다.
링크를 넘어, 이야기의 대상을 쌓는 Hex
BeeBS를 만들며 가장 오래 고민한 기능은 Hex입니다.
게시판에서 책 한 권을 이야기하고, 몇 달 뒤 다른 글에서 같은 책을 다시 언급해도 두 대화는 보통 서로 연결되지 않습니다. 글은 쌓이지만 그 안에서 사람들이 함께 이야기한 대상은 목록 뒤로 흩어집니다.
Hex는 책, 영화, 주식, 보드게임, 술처럼 글 속에서 이야기하는 대상을 구조화된 카드로 넣고 같은 식별자로 연결합니다. 책이라면 표지와 저자, 출판 정보를, 영화라면 포스터와 감독, 출연진을 함께 보여줍니다. Hex를 누르면 대상에 관한 정보를 보고, 그 대상을 언급한 다른 공개 글도 다시 찾을 수 있습니다.
이 기능을 단순한 링크 미리보기보다 조금 더 크게 보고 있습니다.
한 글에서는 책을 읽은 감상을 나누고, 다른 글에서는 같은 작가의 작품을 추천하고, 시간이 지난 뒤에는 책의 상세 페이지에서 관련 대화를 함께 발견하는 것. 정보와 대화가 따로 흩어지지 않고, 커뮤니티가 관심을 보인 대상의 지도로 남는 것이 Hex의 목표입니다.
현재는 책, 영화, 국내외 주식, 보드게임, 와인·위스키·전통주 같은 술과 일반 URL을 지원합니다. 아직 완성된 데이터베이스라기보다 사람들이 이야기하면서 채워가는 실험에 가깝습니다.
편하게 쓰고, 빠르게 움직이기
게시판은 결국 자주 읽고 쉽게 쓸 수 있어야 합니다. BeeBS의 글쓰기 화면은 보이는 그대로 편집하는 WYSIWYG 방식과 Markdown 원문 편집을 함께 제공합니다. Markdown을 몰라도 제목, 목록, 인용, 링크, 이미지, 코드 블록을 넣을 수 있고, 익숙한 사용자는 원문을 직접 다듬을 수 있습니다. YouTube, Instagram, X 등의 주소를 한 줄에 붙이면 읽기 화면에서 임베드로 표시됩니다.
마우스 없이 사이트를 쓰는 분들을 위한 키보드 단축키도 처음부터 넣었습니다. j와 k로 글을 오가고, w로 새 글을 쓰고, c로 댓글 입력칸으로 이동할 수 있습니다. Cmd/Ctrl + K를 누르면 이동과 정렬, 테마 변경을 한곳에서 찾는 명령 팔레트가 열립니다. // 로 Hex도 삽입 가능합니다. 전체 단축키는 언제든 ? 키로 확인할 수 있습니다. 방문이후에 마우스를 전혀 안 쓰고도 네비게이션 할 수 있게 구석구석 신경을 썼습니다.
화면은 시스템, 라이트, 다크 모드와 함께 모노와 터미널 테마를 제공합니다. 모노는 색을 덜어내고 글과 구조에 집중한 화면이고, 터미널은 고정폭 글꼴과 녹색 계열로 PC통신의 기억을 살린 테마입니다. 오래된 BBS의 정서를 그대로 복원하기보다, 그 시절의 빠르고 단순한 조작감을 지금의 웹에 맞게 옮겨보고 싶었습니다.
작은 서버에서도 오래 운영할 수 있게
BeeBS는 TypeScript로 만들었습니다. 화면은 React와 Vite, 서버는 Node.js와 Hono, 데이터베이스는 PostgreSQL과 Drizzle ORM을 사용합니다. 글은 Tiptap 기반 에디터에서 편집하고 Markdown으로 저장합니다. 사용자는 편하게 쓰면서도, 데이터가 특정 에디터의 내부 형식에 지나치게 묶이지 않게 하기 위한 선택입니다.
기술 선택의 기준은 새로움보다 운영이었습니다. 공개 글과 목록, Hex 상세 페이지는 CDN과 ETag를 활용해 캐시하고, 세션과 내 반응 여부처럼 개인화된 정보는 별도 경로로 분리했습니다. Node 서버 하나가 API와 서버 렌더링, 정적 파일을 함께 제공하도록 구성해 작은 서버에서도 시작할 수 있게 했습니다.
게시판은 오픈 순간보다 그 뒤의 운영이 더 중요합니다. 글과 댓글의 수정 이력을 남기고, 공개 읽기는 빠르게 유지하고, 데이터가 많아져도 한꺼번에 느려지지 않는 구조를 고심한 것은 긱뉴스와 마찬가지로 오래 운영하기 위해서입니다.
첫 번째 벌집을 열며
BeeBS는 우선 GeekNews 사용자들과 함께 실제 대화의 흐름을 검증하는 단계입니다. 앞으로는 다른 사이트에도 붙일 수 있는 임베디드 게시판과, 각 커뮤니티가 자기만의 관심사 데이터베이스를 쌓는 서비스로 발전시키려 합니다. 여러 공개 게시판이 연결되는 더 큰 그림도 그리고 있지만, 지금은 첫 번째 공간을 잘 운영하는 일이 먼저입니다.
GeekNews도 처음에는 운영자가 매일 좋은 링크를 올리는 작은 사이트였습니다. 오랫동안 운영하며 커뮤니티의 모양을 배웠듯, BeeBS 역시 실제로 쓰고 이야기하면서 다음 모습을 찾아가려 합니다.
UI가 어색한 곳, 손에 붙지 않는 단축키, 더 있었으면 하는 Hex, 함께 이야기하고 싶은 주제가 있다면 BeeBS 안에 글이나 댓글로 남겨주세요.
BeeBS — 다시 살아난 BBS, 위잉위잉.
BeeBS 안에는 더 자세한 소개도 올려두었습니다.