TECH 으로 돌아가기
TECH HACKER NEWS 2026.10.27 10:00 7분 읽기 36 READS

스위스 전체를 1m 블록으로 쌓았다? 나라 하나를 브라우저에 올린 복셀 지도 프로젝트

스위스 전체를 1m 블록으로 쌓았다? 나라 하나를 브라우저에 올린 복셀 지도 프로젝트
SOURCE IMAGE · HACKER NEWS
스위스 전체를 1m 블록으로 쌓았다? 나라 하나를 브라우저에 올린 복셀 지도 프로젝트

나라 하나를 블록으로 다시 짓기

마인크래프트처럼 생긴 세상인데, 그게 실제 스위스라면 어떨까요? blocks.manifold3d.ch는 스위스를 '블록 단위로, 1:1 축척으로' 보여주는 프로젝트예요. 블록 세계에서는 보통 블록 하나를 현실의 1m로 보니까, 알프스 산맥과 호수, 도시까지 1m짜리 정육면체로 다시 쌓아 올린 셈이에요.

언뜻 재미있는 장난감처럼 보이지만 개발자 눈으로 보면 질문이 쏟아지는 프로젝트예요. 데이터는 어디서 왔을까, 나라 하나 분량을 어떻게 저장하지, 브라우저에서 어떻게 버벅이지 않고 보여주지? 이 프로젝트가 내부를 정확히 어떻게 구현했는지는 사이트에서 직접 확인해 보시고, 이 글에서는 이런 프로젝트를 가능하게 하는 기술을 하나씩 풀어볼게요.

재료: 스위스의 오픈 지리 데이터

이런 시도가 가능한 가장 큰 이유는 데이터예요. 스위스 연방 지형청(swisstopo)은 2021년부터 대부분의 지리 데이터를 무료로 공개하고 있어요. 대표적인 게 땅의 높이를 촘촘한 격자로 기록한 디지털 고도 모델 swissALTI3D예요. 쉽게 말해 '칸마다 땅 높이를 적어둔 거대한 표'라고 보면 돼요. 항공 라이다(LiDAR, 레이저로 거리를 재는 센서)로 나무와 건물까지 수많은 점으로 담은 swissSURFACE3D, 건물 3D 모델인 swissBUILDINGS3D, 고해상도 항공사진 SWISSIMAGE도 있어요. 항공사진은 블록 색을 정할 때 참고하기 좋죠. 국토 규모의 블록 세계를 만든다면 보통 이런 데이터를 조합하게 돼요.

복셀화: 높이 데이터를 블록으로 바꾸기

연속적인 지형 데이터를 블록으로 바꾸는 걸 복셀화(voxelization)라고 해요. 복셀은 '부피를 가진 픽셀'이에요. 2D 이미지가 픽셀 격자라면, 3D 공간을 정육면체 격자로 나눈 게 복셀이죠. 원리는 단순해요. 1m×1m 칸마다 지면 높이를 읽어서 그만큼 블록 기둥을 세우고, 위치에 따라 블록 종류를 정해요. 고도가 높으면 눈, 호수 영역이면 물, 건물 외곽이면 벽돌 같은 식으로요.

문제는 규모예요. 스위스 면적은 약 41,000km²라서, 1m 격자면 지표 칸만 410억 개가 넘어요. 게다가 200m 안팎의 호수부터 4,600m가 넘는 봉우리까지 고도 차이가 엄청나요. 땅속까지 블록으로 꽉 채워 저장하면 감당할 수 없는 숫자가 나오죠.

그래서 필요한 기술들

첫 번째는 희소 저장이에요. 어차피 안 보이는 땅속은 비우고, 눈에 보이는 표면 근처만 저장하는 거죠. 두 번째는 청크(chunk) 분할이에요. 세상을 일정 크기의 덩어리로 나눠서 카메라 근처 덩어리만 불러오는 방식인데, 마인크래프트가 쓰는 바로 그 방식이에요.

세 번째는 LOD(Level of Detail)예요. 멀리 있는 산은 블록을 뭉쳐서 거칠게, 가까운 곳만 세밀하게 그려요. 지도 앱이 줌 레벨마다 다른 타일을 보여주는 것과 같은 원리죠. 네 번째는 메시 최적화예요. 블록마다 면 6개를 전부 그리면 GPU가 버티질 못해요. 그래서 서로 맞닿아 안 보이는 면은 빼고, 같은 종류의 인접 면은 큰 사각형 하나로 합치는 그리디 메싱(greedy meshing) 같은 기법을 써요. 마지막으로 브라우저에서는 WebGL이나 WebGPU로 그리면서 필요한 청크를 네트워크로 계속 받아오는 스트리밍이 필요해요. 나라 규모의 복셀 세계라면 이 중 상당수는 피할 수 없는 숙제예요.

업계 맥락: '국토 마인크래프트'와 디지털 트윈

국토를 블록으로 만든 시도가 처음은 아니에요. 덴마크 지리청은 2014년에 덴마크 전역을 1:1로 마인크래프트에 옮긴 적이 있고, swisstopo도 예전에 스위스 마인크래프트 맵을 공개한 적이 있어요. 지구 전체를 1:1로 짓는 커뮤니티 프로젝트 Build the Earth도 있고요.

더 큰 흐름에는 디지털 트윈, 즉 현실을 그대로 복제한 가상 공간이 있어요. Google의 Photorealistic 3D Tiles, Cesium이 주도해 OGC 표준이 된 3D Tiles, 실제 지형 데이터로 지구를 렌더링하는 Microsoft Flight Simulator가 대표적이죠. 이들이 사진 같은 사실성을 추구한다면, 블록 방식은 일부러 단순하게 만들어서 데이터를 가볍게 하고 누구나 직관적으로 탐색하게 해요. 사실성 대신 가독성과 재미를 고른 거예요.

한국 개발자에게 주는 시사점

한국에도 재료는 충분해요. 국토교통부의 브이월드(V-World)는 3D 지형과 건물 데이터를 오픈 API로 제공하고, 국토지리정보원은 수치지형도와 고도 데이터를 공개하고 있어요. 서울시는 S-Map이라는 3D 디지털 트윈을 운영하고요. '우리 동네를 블록으로' 같은 사이드 프로젝트를 해보기 좋은 환경이죠.

공부 재료로도 훌륭해요. 좌표계 변환, 래스터와 점군 처리, 대용량 데이터 분할과 스트리밍, WebGL 렌더링 최적화가 한 프로젝트에 다 엮여 있거든요. 게임 엔진, GIS, Three.js 같은 프론트엔드 3D 중 어디에 관심이 있든 배울 게 많아요. 특히 한국은 EPSG:5186 같은 고유 좌표계를 쓰기 때문에 좌표 변환부터 직접 부딪혀 보는 경험이 꽤 값져요.

마무리

한 줄 정리: 공개된 국가 지리 데이터에 영리한 복셀 엔지니어링을 더하면 나라 하나를 브라우저에 올릴 수 있어요.

여러분이 한국 데이터로 같은 걸 만든다면 어디부터 블록으로 쌓아 보고 싶나요? 그리고 수백억 개의 칸을 다뤄야 한다면 어떤 저장 구조를 고르실지도 궁금해요.


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://blocks.manifold3d.ch/
SHARE
NEXT · CHOOSE

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

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

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