
AI와 3D 서비스를 만들어 공개했다. 가장 효과적이었던 것은 구현이 아니라 「조사」였다
요약
AI를 활용해 3D 도쿄 시각화 서비스를 개발하며 얻은 경험을 공유합니다. 단순 구현보다 AI를 통한 사전 데이터 조사와 검증이 기획의 성패를 결정짓는 핵심임을 강조합니다.
핵심 포인트
- AI를 활용한 데이터 사양 조사가 기획의 실현 가능성을 판단하는 데 결정적 역할 수행
- 조사 과정을 통해 데이터 부재를 확인하여 잘못된 기획을 조기에 폐기함으로써 리소스 낭비 방지
- 데이터 결합 시 발생할 수 있는 좌표 불일치 문제를 AI 검증으로 사전에 발견
- AI의 역할은 코드 작성을 넘어 기획의 타당성을 검토하는 파트너로 확장 가능
공시지가를 「건물의 높이」로 변환한 3D 도쿄를 만들어 공개했습니다. 1983년부터 2026년까지 44년 분량을 재생할 수 있습니다.

AI와 함께 만들었습니다. 다만, 되돌아보니 가장 가치 있었던 것은 코드를 작성해 준 것이 아니었습니다. 조사를 시켜서 기획 하나를 폐기한 것이었습니다.
이 기사는 AI 사용법에 대한 이야기가 아니라, AI에게 맡길 범위를 어디에서 선을 그었는가에 대한 기록입니다.
분담은 이렇게 되었다
대략적으로 말하면 다음과 같습니다.
| 담당 | |
|---|---|
| 아이디어 도출 | AI가 여러 안을 제시, 인간이 선택 |
| 데이터의 실재 확인·사양 조사 | AI |
| 설계 | AI가 작성, 인간이 리뷰 |
| 구현·테스트·배포 | AI |
| "이것은 틀리다"라는 판단 | 인간 |
"AI가 만들었다"기보다 "AI에게 조사시키고 구현하게 했으며, 판단은 내가 했다"에 가깝습니다. 이하, 인상에 남았던 4가지 사건을 적습니다.
1. 유력했던 기획이 조사 과정에서 무산되다
처음에 5가지 아이디어를 받아냈고, 제가 가장 끌렸던 것은 **"발밑의 지하 라이브"**였습니다. 스마트폰을 지면에 갖다 대면, 자신의 바로 밑 지하철이 실제 다이아(ダイヤ, 운행 시간표)대로 달리고 있는 것이 보이는 방식입니다.
"이것은 전례가 없다"며 분위기가 달아올라 설계를 부탁했습니다. 그러자 설계에 들어가기 전에 조사가 돌아왔습니다.
지하철의 심도(depth) 데이터는 존재하지 않았습니다.
OpenStreetMap의 도쿄 지하철 831개 노선을 실제로 호출하여 조사한 결과가 이것입니다.
| 태그 | 831개 중 부여 수 |
|---|---|
layer | 822 |
ele (해발 고도) | 0 |
depth (깊이) | 0 |
layer는 "-1", "-2"와 같은 값이 들어있지만, 이는 교차하는 구조물의 상하 관계를 나타내는 순서값이며, OSM의 공식 문서에도 "높이를 나타내는 것이 아니다"라고 명시되어 있습니다. 미터(m) 단위의 깊이는 어디에도 공개되어 있지 않았습니다.
더 조사해보니, 도쿄 메트로의 실시간 열차 위치는 운영용 API 카탈로그에 존재하지 않았고, 가져올 수 있는 것은 도영(都営) 4개 노선뿐이었습니다 (실제로 API를 호출하여 94개의 열차 데이터를 확인). 13개 노선 중 4개 노선만으로는 "도쿄의 지하"라고 자처할 수 없습니다. 게다가 도심의 GPS 오차는 약 15m로, 터널의 폭과 비슷한 수준입니다.
"실제 깊이"를 내세울 수 없다면, 이 기획의 핵심이 빠지게 됩니다. 결과적으로 저는 이 기획을 포기했습니다.
만약 조사 없이 만들기 시작했다면, 심도를 적당히 정한 "그럴싸한 그림"을 만들고 나서, 나중에 "이거 실제 데이터가 아니네"라고 깨닫고 버리게 되었을 것입니다. 착수 전에 폐기할 수 있었던 것이 가장 큰 수확이었습니다.
2. "사용할 수 있을 법한 키"를 사용할 수 없었다
채택한 지가 시각화에서도 같은 일이 일어났습니다.
1983~1994년 데이터를 추가할 때, 당연히 "표준지 번호로 결합하면 된다"고 생각합니다. 행정구역 코드 + 용도 구분 + 연번으로 동일한 토지를 추적할 수 있을 것입니다.
AI가 검증한 결과, 번호가 일치한 991개 지점 중 216개 지점은 좌표가 100m 이상 어긋나 있었습니다. 그리고 그 어긋난 216개 지점 모두에 대해, 다른 번호를 가진 지점이 거리 거의 0m 위치에 존재했습니다.
2026년 측: 신주쿠구 니시신주쿠 5초메 498번 2
번호 일치한 1994년 측: 신주쿠구 니시와세다 2-18-35 ← 2,970m 떨어져 있음
좌표가 일치하는 1994년 측: 신주쿠구 니시신주쿠 5-15-4 ← 0m. 주소도 일치
표준지 번호는 연도를 넘기며 다시 부여되었습니다. 번호로 결합했다면, 완전히 다른 토지의 가격을 "동일한 토지의 44년"으로 그리고 있었을 것입니다. 그래프는 그럴싸하게 그려지기 때문에 아마 눈치채지 못했을 것입니다.
대신 좌표의 최근접 이웃(nearest neighbor) 방식으로 대조하는 방식을 택했고, 12년치 모두에서 대상 지점의 100%가 일치했습니다.
이러한 "전수 조사하여 확인하는" 작업은 인간이 하면 지루하고, 게다가 놓치더라도 알아채기 어려운 종류의 것입니다. 이 부분은 AI에게 맡기길 잘했습니다.
3. AI가 자신이 쓴 카피를 나중에 정정했다
이것이 가장 인상적이었습니다.
작품에 연대 테ロップ(자막)을 넣었는데, 마지막 2026년에는 이렇게 적혀 있었습니다.
현재 — 긴자는 버블 정점을 넘었다
각 연도의 최고 가격을 비교하면, 1991년이 3,850만 엔/m², 2026년이 6,710만 엔/m²이므로 확실히 넘었습니다. 이것은 실제로 공개되었습니다.
그 후, 자막은 다른 이유(시끄러웠기 때문)로 삭제했습니다. 게다가 며칠 뒤, "작품을 더 재미있게 만들려면 어떻게 해야 할까"라고 상담하자, AI가 이력 데이터를 집계하여 다음과 같이 보고해 왔습니다.
1991년과 2026년 모두 조사된 595개 지점 중, 1991년의 가격을 상회한 곳은 단 1곳(다이토구 아사쿠사)뿐이었습니다.
44년 동안 계속 조사되고 있는 신주쿠구 니시신주쿠 1초메는, 1991년에 3,850만 엔/m², 2000년에 920만 엔까지 떨어졌고, 2026년에도 2,330만 엔입니다. 아직 피크의 61% 수준입니다.

왜 "넘어선" 것처럼 보였을까요. 2026년 1위인 긴자 4초메 2번 4는, 1991년에는 표준지조차 아니었기 때문입니다. 2005년부터 조사 대상이 된 지점이었습니다. 전체 최고치를 연도별로 추적하면, 비교 대상이 매년 바뀌게 됩니다.
AI는 "이전에 자막에 썼던 표현은 이런 의미에서 부정확했습니다"라며 스스로 정정해 왔습니다. 자막은 이미 지워진 상태라 실질적인 피해는 없었지만, 일시적으로 부정확한 카피를 공개했다는 사실에는 변함이 없습니다.
교훈으로는, AI가 처음에 작성한 카피를 그대로 믿지 말 것, 그리고 AI에게 나중에 검증을 시키면 자신의 오류를 찾아낼 때가 있다는 것, 이 두 가지라고 생각합니다.
4. 법무적인 허점을 지적받다
공개 후, "이거 일반 공개해도 괜찮을까? 보안 문제는 없을까?"라고 물었습니다.
보안 측면은 거의 문제없음(백엔드도 폼도 사용자 입력도 없는 정적 사이트, Cookie 0개, 외부 통신 제로)이라는 답변을 받았으나, 대신 다른 지적이 들어왔습니다.
출처 표기가 이용 약관을 충족하지 않았습니다.
저는 "국토수치정보(지가공시 데이터)(국토교통성)"라고만 적었지만, 구의 경계선에는 행정구역 데이터도 사용하고 있습니다. 국토수치정보의 이용 약관은 "각 데이터마다 개별적인 출처 기재가 필요하다"라고 규정하고 있으므로, 이대로는 부족합니다.
게다가 같은 배포처라도 역별 승하차 인원 데이터셋은 "상업적 이용 불가"라고 명시되어 있는 것이 있습니다. "같은 사이트에서 내려받았으니 같은 라이선스"가 아니었습니다.
보안을 물었는데 법무적인 허점이 드러난 것은 예상 밖이었지만, 물어보길 잘했다고 생각합니다.
인간이 결정한 것
반대로, AI에게 맡기지 않은 판단들을 나열하면 다음과 같습니다.
- 5가지 아이디어 중 1개를 선택 (AI가 추천한 것은 다른 안이었습니다)
- 연도 자막을 삭제 (AI는 유용하다고 생각하여 넣었었습니다)
- 상세 패널의 배치를 3가지 안 중에서 선택 (실제로 3가지 패턴을 구현하여 비교했습니다)
- 완성된 기능을 비공개로 전환 (후술)
- X(구 Twitter)에 게시할 내용과 타이밍
특히 세 번째는 흥미로웠는데, "패널이 도심과 겹쳐서 보기 어렵다"라고 전달하자, AI는 4가지 패턴의 배치를 구현하여 URL 파라미터로 전환할 수 있는 상태로 만들어 왔습니다. 브라우저에서 직접 비교하며 고를 수 있었기에, 말로 설명하는 것보다 빨랐습니다.

네 번째는, "지가를 용적률로 나누면 격차가 45배에서 12배로 줄어든다"라는 기능을 만든 후, 공개는 하지 않기로 했다는 판단입니다. 데이터로서는 흥미롭지만, 작품으로서 주장이 너무 많아지면 산만해질 것 같다고 느꼈습니다. AI는 기능을 삭제하지 않고 플래그(Flag)로 숨기는 방식으로 처리해 주었기에, 나중에 다시 되돌릴 수 있습니다.
결국, AI는 어디에 효과적이었나
체감상으로는 다음과 같습니다.
효과적이었던 것:
- 데이터가 실제로 존재하는지 확인 (사양서가 아니라 실물을 가져와서 세는 작업)
- 전수 조사 검증 (991건을 대조하여 216건의 이상치를 찾아내는 것과 같은 작업)
- 내가 만든 것의 허점 찾기 (나중에 검증을 시키면 오류가 나옵니다)
- 선택지의 구현 (말로 설명하는 것보다 4가지 안을 만들어 비교하는 것이 빠릅니다)
효과가 없었거나 맡기지 않은 것:
- 무엇을 만들지 결정하는 것
- 무엇을 뺄지 결정하는 것 (기능을 추가하는 것은 잘해도, 깎아내는 판단은 인간이 더 적합하다는 느낌이 듭니다)
- 주장을 어디까지 강하게 할지 (데이터 해석에는 신중함이 필요합니다)
가장 큰 배움은, "오픈 데이터가 있다"와 "그 데이터를 쓸 수 있다"는 완전히 별개이며, 그 차이를 메우는 작업이야말로 AI에 적합하다는 것이었습니다. 표준지 번호처럼 있지만 쓸 수 없는 식별자가 있고, 지하철의 심도처럼 있을 법하지만 존재하지 않는 데이터가 있습니다. 둘 다 사양서만 읽어서는 알 수 없으며, 실물을 내려받아 확인해 봐야 비로소 알 수 있습니다.
기획의 핵심이 되는 데이터는 착수 전에 반드시 실물을 취득하여 확인한다. 이것을 인간만으로 수행하는 것은 너무 번거로워서 대개 건너뛰게 됩니다. 건너뛰지 않을 수 있었던 것이, 이번에 AI를 사용하여 가장 좋았던 점이었습니다.
접할 수 있습니다. PC에서도 스마트폰에서도 작동합니다.

「실제 스케일로 보기」를 누르면, 긴자의 탑이 화면을 뚫고 나옵니다. 도쿄에서 가장 비싼 땅(긴자 6,710만 엔/m²)과 가장 저렴한 땅(하치오지의 잡목림 1,560엔/m²)의 차이는 약 43,000배입니다.
데이터는 국토교통성의 국토수치정보(지가공시 데이터·행정구역 데이터)를 가공하여 작성했습니다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기