TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 23 READS

1992년 도스 데모가 브라우저에서 그대로: 명령어 단위 재컴파일의 의미

PC 데모신(demoscene)은 1980~90년대 유럽을 중심으로 번성한 컴퓨터 예술 문화다. 소규모 프로그래머·아티스트 집단이 제한된 하드웨어에서 음악과 실시간 그래픽을 결합해 몇 분짜리 영상을 만들어 서로 기술을 겨뤘다. 이번에 공개된 프로젝트는 이 시대의 대표작들을 별도 설치 없이 웹 브라우저에서 구동할 수 있게 한 시도다. 수록작은 Future Crew의 Unreal과 Second Reality, Triton의 Crystal Dream II, NoooN의 Stars: Wonders of the World으로, 모두 당시 데모신에 무료로 배포됐던 작품들이다.

에뮬레이션이 아니라 재컴파일

이 프로젝트의 핵심은 접근 방식에 있다. 설명에 따르면 각 데모의 원본 도스(DOS) 코드를 명령어 하나하나 단위로 재컴파일해 브라우저에서 실행한다. 흔히 쓰이는 방식은 가상의 CPU와 운영체제를 소프트웨어로 흉내 내 원본 실행 파일을 그대로 돌리는 에뮬레이션이다. 반면 정적 재컴파일(static recompilation)은 원본 기계어를 분석해 현재 플랫폼에서 돌아가는 코드로 변환해 두는 방식에 가깝다. 데모 자체의 로더, 음악 재생기, 각종 효과는 1992~1993년 당시와 동일하게 동작하며, 바뀐 것은 그 코드가 올라타는 하드웨어 계층뿐이라는 점이 이를 뒷받침한다.

이 구분은 단순한 구현 취향의 문제가 아니다. 원본 바이너리를 런타임에 해석하는 대신 변환된 코드를 실행하면 해석 오버헤드가 줄어들 여지가 있고, 코드의 실제 제어 흐름이 변환 결과로 드러난다. 다만 자기수정 코드나 동적으로 생성되는 코드가 많은 데모의 특성상 정적 변환만으로 모든 경우를 다루기는 까다로우며, 소스에서는 이 부분을 어떻게 처리했는지까지는 밝히지 않았다. 따라서 '명령어 단위 재컴파일'이라는 서술을 구현의 완전한 설계도로 읽기보다는 지향점으로 이해하는 편이 안전하다.

원본 그대로를 지키는 보존의 관점

주목할 또 다른 대목은 원본 릴리스 파일을 수정 없이 그대로 제공하고, 데모가 실행 시점에 그 파일을 직접 읽어 들인다는 점이다. 즉 데이터 자산을 추출해 웹용으로 가공하지 않고, 원래의 파일 구조와 로딩 경로를 보존한 채 돌린다는 뜻이다. 이는 디지털 보존의 관점에서 의미가 크다. 원본을 변형하지 않을수록 당시 제작자가 의도한 동작과 결과물이 왜곡될 가능성이 줄고, 훗날 다른 연구자나 개발자가 같은 원본을 다른 방식으로 재구동할 때 기준점이 남기 때문이다.

재현 정확도를 중시한 흔적은 디스플레이 조건 설명에서도 드러난다. 이 데모들은 VGA에서 70Hz로 구동됐기 때문에 70Hz, 혹은 140Hz 이상 주사율의 화면에서 가장 부드럽게 보인다고 안내한다. 60Hz가 사실상 표준이 된 오늘날의 모니터에서는 프레임이 화면 갱신 주기와 정수배로 맞아떨어지지 않아 미세한 끊김이나 떨림이 생길 수 있다. 원작의 타이밍을 임의로 바꿔 현대 디스플레이에 맞추는 대신, 원래의 70Hz 리듬을 유지하고 그에 맞는 환경을 권고한 셈이다.

실무자에게 주는 시사점

웹 기술 관점에서 이 작업은 브라우저가 이제 어디까지 구형 네이티브 소프트웨어의 실행 기반이 될 수 있는지를 보여주는 사례다. 과거라면 전용 에뮬레이터를 내려받아야 했을 콘텐츠가 링크 하나로 실행된다는 것은, 레거시 소프트웨어의 아카이빙과 배포 방식에 새로운 선택지가 생겼음을 뜻한다. 코드 번역·변환 계층을 다루는 개발자라면, 오래된 바이너리를 현대 런타임으로 옮기는 접근이 교육용 데모뿐 아니라 산업용 레거시 시스템 이전에도 응용될 여지가 있다는 점에서 참고할 만하다.

프라이버시 설계도 눈여겨볼 지점이다. 방문 횟수는 익명으로만 집계되며 IP 주소, 추적 쿠키, 개인 식별자를 수집하지 않는다고 명시한다. 분석 도구를 기본값대로 붙이는 관행이 흔한 가운데, 집계 목적을 최소한의 데이터로 달성하려는 태도는 참고할 만한 선택이다. 화면 출력에 쓰인 폰트도 int10h.org의 VileR가 만든 IBM VGA 8x16을 CC BY-SA 4.0 라이선스로 활용했다고 밝혀 출처 표기를 챙겼다.

한계도 분명하다. 소스는 재컴파일의 범위와 정확도를 검증할 성능 수치나 호환성 데이터를 제공하지 않으며, 수록작도 네 편으로 한정된다. 그럼에도 이 프로젝트는 '원본을 바꾸지 않고 환경만 재현한다'는 보존 철학을, 브라우저라는 가장 접근성 높은 플랫폼 위에서 구현해 보였다는 점에서 기록할 가치가 있다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://treylorswift.github.io/demoscene-recomp/web/
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...