직접 골라 쓰진 않는데 자꾸 받게 되는 포맷들이 있다. 구글 어스의 KML, WFS가 돌려주는 GML, D3가 사랑하는 TopoJSON. 셋의 정체와 만났을 때 대응법을 정리한다. 55MB짜리 한국 시군구 GeoJSON을 TopoJSON으로 바꿔 실제로 얼마나 줄어드는지도 재봤다.
위성은 며칠마다 전 지구를 다시 찍어 장면이 수천만 장씩 쌓인다. "서울 위, 지난 7월, 구름 10% 이하 영상"을 그 속에서 어떻게 찾을까? STAC은 위성 데이터를 찾게 해주는 공통 목록 표준이다. Item 하나가 GeoJSON이고 그 안의 링크가 COG를 가리키는, COG의 단짝을 만난다.
위성영상은 한 장이 수십 GB를 넘긴다. 예전엔 귀퉁이 하나 보려 해도 통째로 받아야 했다. COG는 평범한 GeoTIFF를 내부 타일과 오버뷰로 재배열해, 클라우드에 올려두고 HTTP Range로 화면에 보이는 조각만 뜯어온다. Sentinel-2·Landsat이 모두 채택한 위성영상의 사실상 표준을 만난다.
Shapefile부터 PMTiles까지, 지금까지의 포맷은 모두 "지도로 그리기"가 목적이었다. GeoParquet는 방향을 튼다 — 데이터를 열(column) 단위로 눕혀 저장해, PostGIS 서버 없이 노트북 한 대로 수억 행 공간 데이터를 SQL로 분석한다. Overture가 지구 전체의 장소·건물을 GeoParquet로 뿌리는 "공간 데이터의 빅데이터 시대"를 연다.
타일 서버도 데이터베이스도 없이 전 세계 지도를 그린다. PMTiles는 수억 장의 지도 타일을 목차(인덱스)까지 심은 단일 파일로 묶어, S3에 툭 올려두고 HTTP Range로 화면에 필요한 타일만 뜯어온다. Protomaps가 지구 전체를 120GB 파일 하나로 뿌리는 "서버 없는 지도"의 정체를 파헤친다.
GeoJSON은 커지면 브라우저 탭을 잡아먹고, GeoPackage는 웹으로 스트리밍이 안 됐다. FlatGeobuf는 바이너리 안에 공간 인덱스를 통째로 심어, 12GB 파일을 정적 저장소에 올려두고도 HTTP Range 요청으로 화면에 보이는 피처만 뜯어온다. GeoJSON의 진짜 후계자를 만난다.
확장자만 .gpkg일 뿐, 정체는 SQLite 데이터베이스 파일이다. 새 포맷을 발명하는 대신 세상에서 가장 많이 깔린 DB를 지도 컨테이너로 재활용한 발상의 전환 — 벡터·타일·좌표계·인덱스가 파일 하나에 다 들어가는 Shapefile의 공식 후계자를 만난다.
Shapefile은 파일 다섯 개가 한 묶음이었다. GeoJSON은 메모장으로 열면 사람이 그냥 읽는다. 웹 표준이 된 이 포맷의 구조(FeatureCollection), 좌표가 왜 하필 [경도, 위도]인지, 그리고 파일이 커지는 순간 무너지는 한계까지.