정보기술 ·
Django LiveView, DOOM 게임으로 초당 60만개 div 렌더링 성공...웹 프레임워크 성능 한계 시험
스페인 개발자 안드로스 페놀로사가 장고 라이브뷰를 활용해 DOOM 게임을 웹에서 구현, 초당 60만개 HTML 요소 처리 능력 입증했다.
[한국정보기술신문] Django 기반 실시간 웹 프레임워크인 장고 라이브뷰가 초당 60만개의 HTML div 요소를 렌더링하는 극한의 성능 테스트를 통과했다. 스페인 개발자 안드로스 페놀로사는 자신의 블로그를 통해 ViZDoom을 활용해 고전 게임 DOOM을 장고 환경에서 구동하는 실험 결과를 공개했다.
페놀로사는 최근 발표한 장고 인터랙티브 프레임워크 성능 비교 테스트에서 장고 라이브뷰가 가장 빠른 동적 프론트엔드 프레임워크로 나타났다고 밝혔다. 그는 이 프레임워크의 성능 한계를 테스트하기 위해 단순한 게임이 아닌 DOOM 게임 구현이라는 난이도 높은 도전을 선택했다.
픽셀당 div 하나씩 할당해 렌더링
이번 실험에서 DOOM 게임은 100x100 픽셀 해상도로 초당 60프레임으로 작동했다. 이는 매 초마다 60만개의 div 요소가 생성되고 렌더링되어야 함을 의미한다. 페놀로사는 각 픽셀을 하나의 div 요소로 변환하고 해당 색상을 적용하는 방식으로 화면을 구성했다.
데이터 처리 과정은 다음과 같다. 먼저 ViZDoom이 게임 프레임을 생성하면 장고의 템플릿 엔진이 이를 1만개의 div 요소로 변환한다. 이후 장고 라이브뷰가 연결된 사용자의 페이지에 이를 렌더링하고 CSS가 배치를 담당한다.
실시간 브로드캐스트로 동시 시청 가능
특히 주목할 점은 브로드캐스트 방식을 통해 데이터가 전송되어 모든 플레이어가 동일한 화면을 실시간으로 볼 수 있다는 것이다. 이는 단순히 개인 사용자의 화면 렌더링을 넘어 여러 사용자에게 동시에 데이터를 전송하는 능력까지 검증한 것이다.
페놀로사는 실험 결과에 대해 장고 라이브뷰가 DOOM 스트레스 테스트를 성공적으로 통과했다며, 이 프레임워크가 거의 모든 작업을 처리할 수 있음을 증명한 재미있는 실험이었다고 평가했다. 그는 이번 실험의 소스 코드를 GitHub에 공개했으며 개발자들이 실용적인 프로젝트에 장고 라이브뷰를 활용하기를 권장했다.
장고 라이브뷰는 장고 Channels 기반으로 작동하는 실시간 웹 프레임워크로, 서버와 클라이언트 간 양방향 통신을 지원한다. 이번 실험은 웹 기술의 발전으로 과거 네이티브 애플리케이션에서만 가능했던 고성능 실시간 처리가 웹 환경에서도 구현 가능함을 보여주는 사례로 평가받고 있다.
한국정보기술신문 정보기술분과 유상헌 기자 news@kitpa.org