프로젝트

나눔 추첨기 — 유튜브 스트리머를 위한 실시간 채팅 추첨 시스템

2025년 12월 9일 9분
나눔 추첨기 바로가기 →

제시어 선착순, 그 혼란스러운 풍경

여가 시간에 유튜브로 게임 방송을 즐겨 봅니다. 좋아하는 스트리머의 라이브 방송을 보다 보면, 가끔 시청자 참여 이벤트가 열립니다. 그중에서도 "제시어 선착순"은 꽤 흔한 방식입니다. 스트리머가 특정 단어를 제시하면, 시청자들이 채팅에 그 단어를 입력하고, 가장 먼저 정확하게 입력한 사람 순서대로 상품을 받는 구조입니다.

문제는 이 과정이 전부 수작업이라는 점이었습니다. 스트리머는 빠르게 올라오는 채팅 속에서 제시어와 일치하는 메시지를 눈으로 찾아내야 했고, 오타가 있는 메시지는 일일이 걸러내야 했습니다. 찾아낸 당첨자를 메모장에 수기로 정리하는 것은 물론이고요.

편법이 판을 치다

몇 번 반복하다 보면 더 큰 문제가 드러납니다. 어떤 시청자는 닉네임을 살짝 바꿔서 이미 당첨된 상품을 또 받으려 시도합니다. 한 방송에서 여러 차례 이벤트가 진행될 때, 이전 회차에서 이미 당첨된 사람이 또 당첨되는 경우도 빈번합니다. 스트리머 입장에서는 수십 명의 채팅을 실시간으로 확인하면서 중복까지 걸러내기란 사실상 불가능합니다.

"이걸 왜 사람이 하고 있지? 자동으로 하면 되는 거 아닌가?"

직접 만들어보기로

Highlighter를 만들면서 "내 손으로 쓸 만한 프로그램을 만들 수 있다"는 자신감이 생겼었습니다. 이번에는 교육과는 전혀 관련 없는, 순전히 여가 시간에 느낀 불편함이었지만, 해결 방법이 머릿속에 그려지기 시작했습니다.

핵심 아이디어는 간단했습니다. 유튜브 채팅을 통째로 복사해서 붙여넣으면, 스트리머의 제시어 이후에 정답을 입력한 사람을 자동으로 찾아 순서대로 정렬하는 것. 여기에 중복 당첨 방지, 오타 감지, 상품 매칭까지 얹으면 스트리머가 이벤트를 훨씬 쉽고 공정하게 진행할 수 있겠다고 생각했습니다.

그렇게 만든 것이 나눔 추첨기입니다. 유튜브 라이브 방송 중 시청자 참여 이벤트를 쉽고 공정하게 진행할 수 있도록 만든 웹 기반 추첨 시스템으로, 채팅을 복사해서 붙여넣기만 하면 정답자를 자동으로 추첨합니다. 이제 그 구조와 기능을 하나씩 살펴보겠습니다.

스트리머 입장에서

스트리머 페이지는 이벤트 진행의 모든 과정을 하나의 화면에서 처리할 수 있도록 설계했습니다.

  1. 로그인 — 관리자에게 발급받은 계정으로 접속합니다. 방송자 닉네임과 추첨 인원을 설정합니다.
  2. 채팅 복사 — 유튜브 라이브 채팅창에서 채팅 내용을 드래그하여 복사합니다. 방송자의 제시어가 포함되어야 합니다.
  3. 분석 실행 — 복사한 채팅을 붙여넣고 제시어를 입력한 뒤 "분석하기"를 클릭합니다.
  4. 결과 확인 — 방송자의 제시어 이후 정답을 입력한 시청자가 자동으로 선착순 정렬됩니다.
  5. 상품 매칭 — 당첨자와 상품을 1:1로 매칭하고, 지급 현황을 추적합니다. 미지급 상품도 한눈에 확인할 수 있습니다.
나눔 추첨기 스트리머 페이지 — 채팅 분석 및 당첨자 정렬 화면
스트리머 페이지 — 채팅을 붙여넣으면 정답자가 자동으로 정렬됩니다

시청자 입장에서

시청자는 스트리머가 공유하는 링크를 통해 별도의 시청자 페이지에 접속할 수 있습니다.

  • 실시간 결과 확인 — 추첨이 진행되면 자신의 등수가 실시간으로 표시됩니다. "내가 몇 등이지?"를 직접 확인할 수 있습니다.
  • 닉네임 검색 — 본인 닉네임을 검색하면 과거 참여 기록과 당첨 이력을 조회할 수 있습니다.
  • 명예의 전당 — 역대 추첨 기록과 다승 랭킹이 공개됩니다. 가장 많이 당첨된 행운의 시청자가 누구인지 확인할 수 있습니다.
나눔 추첨기 시청자 페이지 — 실시간 등수 확인 화면
시청자 페이지 — 실시간으로 자신의 등수를 확인할 수 있습니다
나눔 추첨기 명예의 전당 — 누적 당첨 기록 화면
명예의 전당 — 역대 당첨 기록과 다승 랭킹을 확인할 수 있습니다

주요 기능

실시간 채팅 분석

유튜브 채팅을 복사해서 붙여넣으면 자동으로 파싱합니다. 방송자의 제시어 이후에 입력된 정답만 정확하게 집계하여 선착순으로 정렬합니다.

중복 당첨 방지

이전 회차에서 당첨된 시청자는 다음 회차에서 자동으로 제외됩니다. 닉네임을 바꿔 중복 수령을 시도하는 편법도 방지할 수 있어, 더 많은 시청자에게 공평한 기회를 제공합니다.

오타 감지

정답과 다른 답변을 입력한 시청자를 별도로 표시합니다. 아깝게 탈락한 시청자도 한눈에 확인할 수 있어, 스트리머가 재량껏 구제할 수 있습니다.

회차별 기록 관리

모든 추첨 결과가 회차별로 저장됩니다. 이전 회차 기록을 언제든 확인하고 관리할 수 있으며, 상품 지급 현황도 함께 추적됩니다.

전체참여(버닝) 모드

기본적으로 중복 당첨은 방지되지만, 특별한 이벤트에서는 "전체참여(버닝)" 모드를 사용하여 중복 제한 없이 추첨을 진행할 수 있습니다.

데이터와 개인정보

모든 추첨 데이터는 클라우드에 안전하게 저장됩니다. 브라우저를 닫아도 기록이 유지되며, 스트리머와 시청자 페이지 간 실시간 동기화가 이루어집니다.

만들며 배운 점 — 여가에서도 개발자의 눈으로

형광펜 확장프로그램 Highlighter는 학습연구년제라는 교육적 맥락에서 탄생했습니다. 하지만 나눔 추첨기는 순수하게 게임 방송을 보다가 느낀 불편함에서 시작되었습니다. 교육 현장이든 여가 시간이든, 사람들이 불편해하는 지점을 발견하고 그것을 기술로 해결할 수 있다는 사실이 점점 더 분명해졌습니다.

"불편함을 발견하는 눈은 직업과 상관없이 언제 어디서든 켜져 있다."
나눔 추첨기 바로가기 →