이현준 블로그

  1. .osm.pbf와 osmium — 한국 전체 지도가 파일 하나에 포스트 대표 이미지

    .osm.pbf와 osmium — 한국 전체 지도가 파일 하나에

    전국 도로·건물·상점이 전부 담긴 파일이 271MB다. 같은 데이터를 XML로 풀면 19.5배로 부푼다. Protocol Buffer·StringTable·delta encoding 세 겹이 어떻게 겹쳐 있는지 파이썬 표준 라이브러리만으로 직접 뜯어보고, osmium으로 서울만 잘라내 손에 쥔다.

    14
    • GIS
  2. OpenStreetMap 데이터 모델 — 폴리곤이라는 타입이 없다 포스트 대표 이미지

    OpenStreetMap 데이터 모델 — 폴리곤이라는 타입이 없다

    GeoJSON에도 Shapefile에도 있는 Polygon이, 정작 세상에서 가장 큰 지도 데이터베이스에는 없다. OSM은 지구 전체를 Node·Way·Relation 딱 셋으로 그린다. 서울 편의점 7,100개를 직접 세어 보니 6,986개는 점이고 114개는 면이었다. 이 "부족한" 모델이 왜 20년을 버텼는지 파헤친다.

    21
    • GIS
  3. KML·GML·TopoJSON — 알아만 둘 포맷 3형제 포스트 대표 이미지

    KML·GML·TopoJSON — 알아만 둘 포맷 3형제

    직접 골라 쓰진 않는데 자꾸 받게 되는 포맷들이 있다. 구글 어스의 KML, WFS가 돌려주는 GML, D3가 사랑하는 TopoJSON. 셋의 정체와 만났을 때 대응법을 정리한다. 55MB짜리 한국 시군구 GeoJSON을 TopoJSON으로 바꿔 실제로 얼마나 줄어드는지도 재봤다.

    16
    • GIS
  4. STAC — 수천만 장에서 원하는 위성영상 한 장 찾기 포스트 대표 이미지

    STAC — 수천만 장에서 원하는 위성영상 한 장 찾기

    위성은 며칠마다 전 지구를 다시 찍어 장면이 수천만 장씩 쌓인다. "서울 위, 지난 7월, 구름 10% 이하 영상"을 그 속에서 어떻게 찾을까? STAC은 위성 데이터를 찾게 해주는 공통 목록 표준이다. Item 하나가 GeoJSON이고 그 안의 링크가 COG를 가리키는, COG의 단짝을 만난다.

    9
    • GIS
  5. COG — 100GB 위성영상에서 화면만 뜯어오는 GeoTIFF 포스트 대표 이미지

    COG — 100GB 위성영상에서 화면만 뜯어오는 GeoTIFF

    위성영상은 한 장이 수십 GB를 넘긴다. 예전엔 귀퉁이 하나 보려 해도 통째로 받아야 했다. COG는 평범한 GeoTIFF를 내부 타일과 오버뷰로 재배열해, 클라우드에 올려두고 HTTP Range로 화면에 보이는 조각만 뜯어온다. Sentinel-2·Landsat이 모두 채택한 위성영상의 사실상 표준을 만난다.

    10
    • GIS
  6. GeoParquet — 수억 행을 훑는 열 지향 공간 데이터 포스트 대표 이미지

    GeoParquet — 수억 행을 훑는 열 지향 공간 데이터

    Shapefile부터 PMTiles까지, 지금까지의 포맷은 모두 "지도로 그리기"가 목적이었다. GeoParquet는 방향을 튼다 — 데이터를 열(column) 단위로 눕혀 저장해, PostGIS 서버 없이 노트북 한 대로 수억 행 공간 데이터를 SQL로 분석한다. Overture가 지구 전체의 장소·건물을 GeoParquet로 뿌리는 "공간 데이터의 빅데이터 시대"를 연다.

    11
    • GIS
  7. PMTiles — 서버 없이 지도를 서빙하는 단일 파일 포스트 대표 이미지

    PMTiles — 서버 없이 지도를 서빙하는 단일 파일

    타일 서버도 데이터베이스도 없이 전 세계 지도를 그린다. PMTiles는 수억 장의 지도 타일을 목차(인덱스)까지 심은 단일 파일로 묶어, S3에 툭 올려두고 HTTP Range로 화면에 필요한 타일만 뜯어온다. Protomaps가 지구 전체를 120GB 파일 하나로 뿌리는 "서버 없는 지도"의 정체를 파헤친다.

    18
    • GIS
  8. next dev에서만 페이지가 잘린다 — 디버그 스택 정보가 부른 RSC 직렬화 오버플로 포스트 대표 이미지

    next dev에서만 페이지가 잘린다 — 디버그 스택 정보가 부른 RSC 직렬화 오버플로

    dev에서만 블로그 글 하단이 잘리고 프로덕션은 멀쩡했다. dev 서버 터미널 로그에서 찾은 진짜 에러(Maximum call stack)의 정체는, 개발 모드 전용 “디버그 스택 정보”를 RSC로 직렬화하다 스택이 넘친 것. 범인(렌더 중 패치된 fetch)까지 좁힌 기록.

    6
    • Next.js