처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.03.28 55

DNS 레코드 2,000개로 DOOM을 돌렸다고요? 게임 엔진을 DNS에 구현한 미친 프로젝트

Hacker News 원문 보기
DNS 레코드 2,000개로 DOOM을 돌렸다고요? 게임 엔진을 DNS에 구현한 미친 프로젝트

세상에서 가장 이상한 곳에서 돌아가는 DOOM

개발자들 사이에서 오래된 밈이 하나 있어요. "그래서 거기서 DOOM 돌릴 수 있어?" 라는 건데요. 임신 테스트기, ATM, 트랙터 계기판 등 온갖 기상천외한 하드웨어에서 1993년작 게임 DOOM을 실행시키는 도전이 일종의 개발자 문화가 된 거죠. 그런데 이번에 누군가가 정말 예상 못한 곳에서 DOOM을 돌려냈어요. 바로 DNS(Domain Name System) 안에서요.

DNS가 뭐냐면, 우리가 웹 브라우저에 "google.com"을 입력하면 그걸 실제 서버 IP 주소로 변환해주는 시스템이에요. 전화번호부 같은 거라고 보면 돼요. 이름을 알려주면 번호를 찾아주는 역할이죠. 그런데 이 전화번호부 안에다가 게임 엔진을 통째로 집어넣은 겁니다.

도대체 어떻게 만든 건지 뜯어보기

이 프로젝트의 핵심 아이디어는 DNS의 TXT 레코드를 활용한 거예요. DNS 레코드에는 여러 종류가 있는데, TXT 레코드는 원래 도메인에 대한 부가 정보를 텍스트로 저장하는 용도로 만들어졌어요. 이메일 인증(SPF, DKIM)이나 도메인 소유권 확인 같은 데 쓰이죠. 그런데 이 TXT 레코드에 텍스트를 저장할 수 있다는 점을 이용해서, 게임 로직과 데이터를 약 2,000개의 DNS 레코드에 쪼개서 저장한 거예요.

작동 방식을 좀 더 풀어볼게요. 일반적으로 게임 엔진은 프로그램 코드가 메모리에 올라가서 CPU가 명령어를 하나씩 실행하는 구조잖아요. 그런데 이 프로젝트에서는 게임의 상태(맵 데이터, 플레이어 위치, 렌더링 정보 등)를 전부 DNS 레코드 형태로 인코딩했어요. 플레이어가 키 입력을 하면 DNS 쿼리가 발생하고, 그 쿼리의 응답으로 다음 게임 상태가 반환되는 식이에요. 마치 웹페이지를 요청할 때마다 서버가 새로운 페이지를 보내주는 것처럼, DNS 요청을 할 때마다 게임의 다음 프레임 정보가 돌아오는 거죠.

기술적으로 까다로웠던 부분이 몇 가지 있는데요. 우선 DNS TXT 레코드 하나의 크기 제한이 있어요. 일반적으로 하나의 TXT 레코드에 255바이트까지 저장할 수 있거든요. DOOM의 게임 데이터를 이 작은 조각들로 분할해서 저장하고, 순서에 맞게 조합하는 로직을 짜야 했던 거예요. 또한 DNS는 원래 단방향 질의-응답 구조라서, 이걸 인터랙티브한 게임 루프로 변환하는 것 자체가 상당한 창의력을 요구하는 작업이었어요.

"쓸데없는 짓"이 아닌 이유

이런 프로젝트를 보면 "재밌긴 한데 실용성은 없지 않나?"라고 생각할 수 있어요. 하지만 이런 류의 해킹 프로젝트는 해당 프로토콜의 한계와 가능성을 동시에 보여준다는 점에서 의미가 커요.

실제로 DNS를 데이터 전송 채널로 활용하는 기법은 보안 분야에서 아주 중요한 주제예요. "DNS 터널링"이라고 불리는 기법인데, 방화벽이 대부분의 트래픽을 차단하더라도 DNS 쿼리는 거의 항상 허용되거든요. 그래서 공격자들이 DNS를 통해 데이터를 몰래 빼돌리거나, 악성코드의 명령 채널로 활용하는 사례가 실제로 있어요. 이 DOOM 프로젝트는 DNS로 게임 하나를 통째로 돌릴 수 있다는 걸 보여줌으로써, DNS 프로토콜이 얼마나 유연하게(혹은 위험하게) 사용될 수 있는지를 극적으로 보여주는 셈이죠.

비슷한 맥락의 프로젝트들도 있었어요. 예전에 TCP 패킷의 시퀀스 번호에 데이터를 숨기는 실험이나, HTTP 헤더만으로 통신하는 프로젝트 등이 있었는데요. 이런 것들은 전부 "프로토콜의 원래 용도를 벗어난 창의적 활용"이라는 공통점이 있어요. 그리고 이런 실험들이 결국 프로토콜 보안 강화나 새로운 활용법 발견으로 이어지곤 해요.

한국 개발자에게 어떤 의미가 있을까

이 프로젝트에서 배울 수 있는 게 몇 가지 있어요. 첫째, 프로토콜에 대한 깊은 이해예요. DNS의 스펙을 정말 구석구석 알아야 이런 걸 만들 수 있거든요. RFC 문서를 읽고 프로토콜의 동작 원리를 파악하는 능력은 네트워크 프로그래밍이나 인프라 엔지니어링에서 정말 중요한 스킬이에요.

둘째, 제약 조건 안에서의 창의적 문제 해결이에요. 255바이트짜리 레코드 2,000개로 게임을 돌린다는 건, 극단적인 최적화와 데이터 압축 능력을 요구해요. 이런 사고방식은 임베디드 개발이나 성능 최적화가 중요한 프로젝트에서 직접적으로 도움이 돼요.

보안 엔지니어나 인프라 담당자라면 DNS 터널링 탐지와 방어에 대해 한번 공부해보는 것도 좋아요. 이 프로젝트가 보여주듯이 DNS를 통해 예상보다 훨씬 많은 양의 데이터를 주고받을 수 있거든요. 회사 네트워크에서 DNS 트래픽 모니터링을 하고 있는지 점검해볼 좋은 계기가 될 수 있어요.

한 줄 정리

DNS 레코드 2,000개로 DOOM을 돌린 이 프로젝트는 단순한 장난이 아니라, 프로토콜의 가능성과 보안 위험을 동시에 보여주는 훌륭한 기술 데모예요.

여러분은 어떤 "말도 안 되는 곳"에서 프로그램을 돌려보고 싶으신가요? 혹시 프로토콜을 원래 용도가 아닌 방식으로 활용해본 경험이 있다면 공유해주세요!


🔗 출처: Hacker News

이 뉴스가 유용했나요?

이 기술을 직접 배워보세요

AI 도구, 직접 활용해보세요

AI 시대, 코딩으로 수익을 만드는 방법을 배울 수 있습니다.

AI 활용 강의 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.