저희는 사내 해커톤에서 "Eye See You(아이 시 유)"라는 프로젝트로 우승했습니다. 온라인 퀴즈를 위한 '프라이버시 우선' 부정행위 감지 시스템이었죠. 그로부터 6개월이 지난 지금, 그 핵심 아이디어들은 실제 프로덕션 환경에서 살아 움직이며 수백만 건의 퀴즈 세션을 지켜내고 있습니다. 48시간짜리 프로토타입이 어떻게 진짜 제품의 일부가 되었는지, 그 이야기를 들려드리겠습니다.
문제 의식
온라인 퀴즈를 활용하는 모든 선생님들은 똑같은 딜레마와 마주합니다. 학생들의 기기를 감시 도구로 만들지 않으면서, 어떻게 평가의 진정성을 지킬 수 있을까?
학생들의 '창의력'은 갈수록 진화하고 있습니다. Google Lens로 문제를 찍어 검색하고, 탭을 바꿔 검색 엔진을 돌리고, 문제를 복사해 ChatGPT에 붙여 넣고, 심지어 퀴즈를 자동으로 풀어주는 브라우저 확장 프로그램까지 동원합니다. 기존의 시험 감독 솔루션들은 웹캠, 화면 녹화, 잠금 브라우저로 맞섭니다. 하지만 이런 도구들은 침습적이고, 비용이 많이 들고, 학습 경험 자체를 망가뜨리는 마찰을 만들어냅니다.
저희는 완전히 다른 질문을 던졌습니다. 브라우저 그 자체가 우리에게 필요한 모든 걸 알려줄 수 있다면?
해커톤: 48시간, 엔지니어 3명, 그리고 하나의 미친 아이디어
저희가 만든 해커톤 프로토타입 "Eye See You"는 두 개의 탐지 레이어로 구성되어 있었습니다.
레이어 1: DOM 기반 화면 녹화
화면 공유 API로 픽셀을 캡처하는 방식(별도의 권한 요청이 필요하고, 학생이 거부하기도 쉽습니다)을 쓰는 대신, 퀴즈 탭 그 자체의 DOM 상태를 기록하기로 했습니다. 그 결과, 웹캠도, 마이크도, 학생의 권한 동의 팝업도 없이 퀴즈 안에서 실제로 무슨 일이 벌어졌는지를 시각적으로 다시 재생할 수 있게 되었습니다.
레이어 2: 행동 신호 수집
이와 동시에, 일련의 행동 이벤트를 함께 수집했습니다. 탭 전환, 복사/붙여넣기, 개발자 도구 사용, 창 크기 변경, 답변 입력 타이밍 패턴 같은 데이터를 AI 모델에 그대로 흘려보냈고, 모델은 가중치가 적용된 위험 점수와 함께 타임스탬프가 찍힌 진정성 리포트를 만들어냈습니다.
점수 산정 공식은 의도적으로 한쪽에 무게를 실었습니다.
•
화면 분석(학생이 실제로 무엇을 했는가): 70%
•
행동 메타데이터(어떻게 했는가): 30%
시연은 잘 굴러갔고, 심사위원들은 열광했습니다. 저희는 우승했죠.
프로토타입에서 프로덕션까지: 무엇을 남기고, 무엇을 잘라냈는가
해커톤 프로젝트를 진짜 제품으로 출시한다는 건 곧 무자비한 우선순위 정리의 과정입니다. 진짜 엔지니어링은 이런 모습이었습니다.
프로덕션에 올린 것들
행동 탐지 레이어는 거의 그대로 프로덕션에 올렸습니다. 다만 해커톤 버전보다 훨씬 더 빡빡한 엔지니어링이 들어갔죠. 현재 프로덕션 시스템은 다음 항목들을 추적합니다.
•
탭 전환
•
복사/붙여넣기 감지
•
우클릭 추적
•
Google Lens 감지 — 엔지니어링 측면에서 가장 자랑스러운 순간이었습니다. 높은 정확도로 이걸 잡아내는 휴리스틱을 만들어냈습니다
•
창 크기 변경 감지 및 전체화면 전환 인식
•
Quiz Solver AI, Question AI 같이 잘 알려진 퀴즈 풀이 확장 프로그램을 겨냥한 브라우저 확장 감지
•
전체화면 종료 추적
각각의 위반 사항은 선생님의 실시간 대시보드로 즉시 전송되며, 문항별 귀속 정보와 기기 메타데이터까지 함께 표시됩니다. 선생님 화면에는 **'부정행위 방지(Anti-Cheating) 탭'**이 별도로 제공되어, 위반 유형별 필터링, 위반 횟수가 표시된 학생별 카드, 그리고 자동 경고 발송 기능까지 사용할 수 있습니다.
여기에 더해 **포커스 모드(Focus Mode)**라는 보완 시스템도 함께 구축했습니다. 퀴즈 중에 전체화면을 강제하고, 화면이 잠들지 않도록 웨이크 락(wake lock)을 관리하며, iOS 태블릿의 엣지 케이스를 처리하고, 소켓 연결이 끊기더라도 위반 사항 큐가 다시 연결되도록 처리합니다.
출시하지 않은 것들 (그리고 그 이유)
해커톤 시연에서 가장 화려했던 부분이었던 DOM 기반 화면 녹화는 결국 프로덕션에 올리지 못했습니다. 이유는 지극히 현실적이었습니다.
•
규모에 따른 비용: 동시에 진행되는 수백만 건의 퀴즈 세션 각각에 대해 DOM 리플레이를 녹화하고 저장하는 건 비용이 감당이 안 됐습니다
•
AI 분석 오버헤드: 모든 세션 녹화본에 대해 비전 모델을 돌리는 건 우리 스케일에서 실현 가능하지 않았습니다
•
행동 레이어만으로 충분했다: 프로덕션 테스트에서, 메타데이터 신호만으로도 대부분의 부정행위 패턴을 높은 신뢰도로 잡아냈습니다
해커톤에서 프로덕션으로 가는 이야기에서 아무도 잘 얘기하지 않는 부분이 바로 이겁니다. 때로는 무엇을 만들지 않을지 아는 것이야말로 최선의 엔지니어링 결정입니다.
이 모든 걸 가능하게 한 아키텍처
차이를 만들어낸 몇 가지 기술적 결정들을 짚어봅니다.
큐(Queue) 기반 위반 사항 보고: 감지된 모든 이벤트는 큐 시스템을 거칩니다. API 호출을 배치로 묶고, 일시적인 소켓 연결 끊김을 견뎌내며, 연결이 복구되면 대기 중이던 위반 사항들을 다시 재생(replay)합니다. 35명짜리 교실에서 신호 하나라도 누락되면 안 되니까요.
똑똑한 오탐(false-positive) 필터링: 시스템은 학생들이 실제로 어떻게 행동하는지에 적응합니다. 데스크톱 브라우저, 모바일 웹, iOS 태블릿, React Native 웹뷰까지 — 한 플랫폼에서 의심스러워 보이는 행동이 다른 플랫폼에서는 지극히 정상이기 때문이죠.
실시간 선생님 컨트롤: 선생님은 게임 도중에도 감지 기능을 켜고 끄거나, 자동 경고를 활성화하거나, 설정을 조정할 수 있습니다.
우리가 배운 것들
프라이버시 우선이 곧 탐지를 미루는 것은 아닙니다. 브라우저 네이티브 신호로만 한정하기로 스스로 제약을 두었기에, 학생들이 눈치조차 채지 못하는 시스템을 만들 수 있었습니다. 그게 바로 정확히 우리가 노린 지점입니다. 가장 좋은 진정성 시스템은 시험 응시 경험을 바꾸지 않는 시스템입니다.
엣지 탐지에서는, 휴리스틱이 무거운 ML을 이깁니다. 우리의 Google Lens 감지기는 신경망이 아니라 단순한 상태 머신(state machine)입니다. 빠르고, 결정론적이며, 디버깅도 쉽습니다. 모든 게 AI일 필요는 없습니다.
해커톤 코드는 무엇을 만들어야 하는지 가르쳐주고, 프로덕션 코드는 무엇을 처리해야 하는지 가르쳐줍니다. 해커톤 프로토타입에는 엣지 케이스가 0개였습니다. 프로덕션 시스템은 수많은 엣지 케이스를 다룹니다. 진짜 엔지니어링이 사는 곳은 바로 여기입니다.
지루한 것부터 먼저 출시하세요. 화면 녹화는 시연의 하이라이트였습니다. 하지만 프로덕션에서 조용히 돌아가는 탭 전환 감지기 하나가, 단 일주일 동안 잡아낸 진정성 이슈의 수가, 비용을 감당할 수 있는 수준에서 AI 비디오 분석이 평생 잡아낼 수 있는 양보다 많았습니다.
영향
이 부정행위 방지 시스템은 현재 Wayground 전역에서 가동 중이며, 전 세계 수백만 명의 선생님들이 사용하고 있습니다. 퀴즈가 진행되는 동안 조용히 돌아가고, 학생 쪽에서는 어떠한 별도 세팅도 필요 없으며, 오디오나 비디오를 일절 수집하지 않고, 선생님에게는 평가 진정성에 대한 명확하고 실시간적인 시야를 제공합니다.
밤늦은 작업, 슬랙(Slack)에서의 실시간 디버깅, 그리고 마감 직전에 간신히 완성된 시연 — 48시간짜리 이야기로 시작된 이 프로젝트는, 이제 글로벌 규모에서 평가의 진정성을 지켜내고 있습니다.
가장 좋은 해커톤 프로젝트는 단지 상을 받는 데 그치지 않습니다. 진짜 문제를 풉니다. 우리 것은 마침 수백만 명의 선생님과 학생들을 위한 문제를 풀어냈을 뿐입니다.
Wayground의 3인 팀이 만들었습니다. 해커톤 트로피에서 프로덕션 기능까지.
'오늘배움' 구독하기
사이트를 구독하면 새 포스트 등 최신 업데이트를 알림과 메일로 가장 먼저 받아보실 수 있습니다.
Slashpage에 가입하고 '오늘배움'을 구독하세요!