다크 모드
도로명주소와 건축물·토지 데이터 레이어링으로 도출하는 공간 인사이트
작성자: 지미(박지민) | 작성일: 2026.04.08
들어가며: 주소 데이터의 숨겨진 잠재력
안녕하세요. 카카오모빌리티 공간정보기획팀에서 데이터 기획 및 운영을 담당하는 지미입니다. 지난 글에서는 우리나라의 주소 체계인 지번주소와 도로명주소의 개념을 살펴보았습니다.
우리가 흔히 사용하는 '도로명주소 데이터' 안에는 해당 건물이 위치한 ‘건물주소’ 뿐만 아니라, '지번주소'가 함께 매핑되어 있습니다. 이는 데이터 기획 관점에서 엄청난 잠재력을 의미합니다.
- 도로명주소를 통해서는 건축물대장을 연결하여 해당 공간의 형태와 성격을 분석하고,
- 연계된 지번주소를 통해서는 토지특성도를 연결하여 그 건물이 자리한 땅의 물리적 환경과 활용도를 파악할 수 있기 때문입니다.
오늘은 이처럼 '도로명주소'와 '지번주소'라는 두 개의 열쇠를 활용해, 건물과 땅의 데이터를 하나로 엮어내고 모빌리티 서비스의 비즈니스 가치를 창출하는 기술적 로직과 활용 인사이트를 상세히 공유해 드리겠습니다.
1. 건축물대장으로 읽어내는 '건물의 입체적 프로필' (건축물대장 레이어링)
도로명주소가 2D 기반의 물리적인 '위치'를 알려준다면, 건축물대장은 '그 공간이 어떤 형태와 성격을 지녔는지'를 설명해 줍니다. 건축물대장에 흩어져 있는 코드를 조합해 만든 26자리 '도로명주소 관리 번호'로 두 데이터를 결합하면, 공간적 위치와 건물의 입체적 속성을 유추할 수 있는 다각적인 정보를 얻게 됩니다.
- 물리적 규모와 구조 (형태적 속성): 층수, 연면적, 엘리베이터 유무, 주차장 대수 등을 파악합니다. 이를 통해 해당 건물의 수직적 복잡도, 수용 가능 인원 규모, 그리고 내부 이동의 접근성을 짐작할 수 있습니다.
- 공간의 성격과 활동 (용도적 속성): 주거용, 상업용, 공장, 근린생활시설 등 건물의 주된 목적을 확인합니다. 이는 해당 공간에서 사람들이 주로 머무는 시간대(주야간 여부)와 발생하는 활동의 성격을 유추하는 핵심 단서가 됩니다.
- 건물의 생애주기 (시간적 속성): 사용 승인일을 통해 건물의 연식과 노후도를 파악합니다. 이는 건축물의 구조적 현대화 정도나 주차 시설의 형태(과거 건축 기준 적용 여부 등)를 가늠하는 객관적 지표가 됩니다.
①: 건축물대장 맵핑을 위한 도로명주소 관리 번호(26자리) 생성
위와 같은 건물의 속성 데이터를 매핑하기 위해 고유 식별자인 26자리 코드를 생성합니다.
SQL
-- new_address_code(도로명주소 관리 번호) 26자리 생성 쿼리 (PostgreSQL)
SELECT
LPAD(
C11::text || -- 시군구_코드(5)
SUBSTRING(C12::text FROM 1 FOR 3) || -- 법정동_코드 앞 3자리(읍면동 8자리)
SUBSTRING(C18::text FROM 6 FOR 7) || -- 새주소_도로_코드(12자리 중 뒤 7자리)
COALESCE(C22::text, '0') || -- 새주소_지상지하_코드(1)
LPAD(COALESCE(C23::text, '0'), 5, '0') || -- 새주소_본_번(5)
LPAD(COALESCE(C24::text, '0'), 5, '0'), -- 새주소_부_번(5)
26, '0' -- 26자리에 맞춰 빈 공간 '0' 패딩
) AS new_address_code
FROM building_ledger_table;②: 누락 데이터 구제하기 (PNU 19자리 활용)
건축물대장에는 도로명주소를 유추하기 위한 일부 코드가 누락된 채 지번 정보만 존재하는 객체도 있습니다. 이 경우, 지번과 건물이 1:1 관계인 대상만 19자리 PNU(지번 고유 코드)를 새롭게 생성하여 지번 기준으로 추가 매핑이 가능합니다.
SQL
-- PNU(지번고유코드) 19자리 생성 쿼리 (표제부 기준)
SELECT
C11::text || C12::text || -- 법정동_코드(10자리)
CASE
WHEN C13::text = '1' THEN '1' -- 산(1) -> 1 유지
WHEN C13::text IN ('0', '2', '3') THEN '0' -- 일반/블록/기타 -> 0 통합
ELSE C13::text
END ||
LPAD(C14::text, 4, '0') || -- 본번 4자리
LPAD(C15::text, 4, '0') -- 부번 4자리
AS pnu_code
FROM building_ledger_table;③: 정밀 매칭을 위한 텍스트 정제 (Normalization)
아파트 단지처럼 여러 건물이 군집한 경우, 동(棟) 단위까지 데이터를 붙이려면 명칭 정제가 필수적입니다. (예: (1123동) → 1123동, 101동A → 101A). 단, 원본 데이터의 누락/오류를 고려해 이는 100% 확정값이 아닌 참조 데이터로 활용하는 것이 좋습니다.
2. 토지특성도로 파악하는 '땅의 물리적 환경과 제약' (토지특성도 레이어링)
건물의 입체적 프로필을 분석했다면, 이제는 도로명주소에 내포된 ‘지번주소’를 매개로 건물이 딛고 있는 '땅 자체의 조건'을 들여다볼 차례입니다. 19자리 지번 코드로 토지특성도를 레이어링 하면, 건축물대장만으로는 알 수 없는 주변 환경과 법적/경제적 제약 사항을 파악할 수 있습니다.
- 접근성과 경제적 가치 (규제 및 가치 속성): 용도지역, 공시지가, '도로 접면 상태(광대로 한면, 세로 등)'를 확인합니다. 특히 도로 접면 정보는 해당 부지가 얼마나 넓은 도로와 맞닿아 있는지(차량 진입 폭)를 보여주며, 용도지역과 공시지가는 해당 땅의 법적 규제 한도와 경제적 가치를 수치화하여 보여줍니다.
- 물리적 제약과 환경 (지형지세 속성): 토지의 고저(평지, 완경사, 고지대)와 형상(정방형, 사다리형, 부정형 등)을 파악합니다. 이를 통해 건물이 위치한 곳의 경사도나 보행 및 주행 환경의 험난함 등 물리적 제약 조건을 유추합니다.
토지특성도 PNU 대장 구분 코드 변환
지적 정보의 PNU와 토지특성도의 PNU는 11번째 자리인 '대장 구분 코드'가 다릅니다. 이를 주소 체계에 맞춰 변환해야 건물(형태)과 땅(환경)의 데이터를 온전히 하나로 통합할 수 있습니다.
SQL
-- AL_D195 테이블(토지특성도) 대장구분코드 변환 쿼리 (PostgreSQL)
/* 11번째 자리가 '1'(일반)이면 '0'으로, '2'(산)이면 '1'로 치환 */
SELECT
pnu AS original_pnu,
CASE
WHEN SUBSTRING(pnu FROM 11 FOR 1) = '1' THEN OVERLAY(pnu PLACING '0' FROM 11 FOR 1)
WHEN SUBSTRING(pnu FROM 11 FOR 1) = '2' THEN OVERLAY(pnu PLACING '1' FROM 11 FOR 1)
ELSE pnu
END AS road_name_pnu,
subst_pnu_nm
FROM "AL_D195";3. 현업의 데이터 결합 챌린지와 극복 방안
주소를 넘어 모빌리티 인사이트가 결집된 통합 데이터를 구축하는 과정에는 늘 예기치 못한 변수가 존재합니다. 카카오모빌리티는 이를 다음과 같이 해결하고 있습니다.
원본 데이터의 품질 한계 극복 (결측치 및 오류): 공공데이터 특성상 PNU 코드나 주소 텍스트 자체에 누락(Null)이나 오기재가 존재하는 경우가 많습니다. 단순 Key 조인(Join)만으로는 매칭되지 않는 맹점을 극복하기 위해, 텍스트 유사도 매칭이나 GIS 좌표 기반의 공간 연산(Spatial Join)을 병행하는 등 자체적인 보정 작업으로 맵핑 고도화를 진행하고 있습니다.
다중 주소 체계 관리: 하나의 건물에 여러 지번이 걸쳐 있거나(N:1), 하나의 지번에 여러 건물이 있는 경우(1:N), 별도의 매핑 이력 정보를 활용하여 정합성을 확보 합니다.
4. 통합 데이터를 활용한 모빌리티 서비스 시나리오 (예시)
이제 앞서 분석한 ‘건물의 특성’과 ‘땅의 제약 조건’을 결합해 보겠습니다. 이 거대한 데이터가 모빌리티 서비스에 어떻게 적용될 수 있을지, 몇 가지 시나리오 예시를 그려보았습니다.
도착지 '사전 브리핑'으로 이동의 당혹감 제거
- 데이터 시너지: 토지의 '경사도 및 도로 접면' 정보와 건물의 '주차면수 및 승강기/기계식 주차 여부' 결합
- 서비스 시나리오: 목적지에 도착하기 전 현장의 입체적인 상황을 브리핑해 줄 수 있습니다. "도착지 앞은 좁은 골목(세로)이며 급경사입니다. 건물 내 기계식 주차장만 있어 대형 SUV 주차가 어려울 수 있습니다" 혹은 "엘리베이터 이용이 가능합니다."와 같은 맞춤형 안내를 제공하여, 현장에서 겪게 될 변수를 사전에 차단하는 데 활용할 수 있습니다.
데이터 구축의 '선택과 집중': 대형 거점 라우팅 우선 고도화
- 데이터 시너지: 건축물대장의 '연면적(건물 규모)'과 '주차장 대수' 데이터 활용
- 서비스 시나리오: 전국 모든 건물의 용도에 맞는 정확한 하차 지점(안내좌표)을 단시간에 구축할 수는 없습니다. 이때 연면적이 넓고 주차면수가 많은 랜드마크(복합 쇼핑몰, 대형 병원 등)를 우선 추출합니다. 트래픽이 집중되는 이 대형 거점들의 POI 상세 정보와 주차장 진출입 가이드를 '1순위 타깃'으로 삼아 선제적으로 구축함으로써, 한정된 리소스로 데이터 고도화 작업의 효율을 극대화할 수 있습니다.
공급/수요 불균형 탐지와 맞춤형 신규 비즈니스 타깃팅
- 데이터 시너지: 토지의 '용도지역(핵심 상권)'과 건물의 '노후도 및 주차면수 부족' 교차 분석
- 서비스 시나리오: 차량 방문 수요는 높지만, 주차 공간이 턱없이 부족한 노후 건물 밀집 상권을 지도 위에서 필터링합니다. 이 구역에 '발렛 파킹' 서비스를 우선 도입하거나 인근 유휴 주차장과 연계하는 스마트 주차 비즈니스를 전략적으로 기획하여, 공간의 제약을 새로운 비즈니스 기회로 전환하는 근거 자료로 쓰일 수 있습니다.
마치며: 데이터 기획은 '서비스의 해상도'를 높이는 과정
세 편의 글을 통해 주소 체계에 대한 이해부터 땅과 건물 데이터를 결합하는 매칭 로직까지 상세히 살펴보았습니다.
데이터 기획자의 역할은 단순히 파편화된 정보를 수집하는 것에 그치지 않습니다. 무질서하게 흩어진 데이터 속에서 핵심적인 연결 고리를 찾고, 이를 정교하게 엮어 '비즈니스에 즉시 투입 가능한 인사이트'로 변환하는 과정이야말로 서비스의 해상도를 결정하는 핵심 동력입니다.
카카오모빌리티는 이러한 이종 데이터를 유기적으로 연결하고 실제 서비스에 녹여내기 위해 ‘통합 데이터 체계(가칭: 레고 프로젝트) 구축’을 진행하고 있습니다. 마치 레고 블록을 정교하게 조립하듯 설계된 이 데이터 파이프라인은, 분석된 데이터를 서비스에 즉각 반영하여 고객이 체감하는 카카오모빌리티 서비스의 품질을 획기적으로 높여줄 것이라 기대하고 있습니다.
오늘 공유해 드린 로직이 공간 데이터를 통해 새로운 비즈니스 가치를 고민하는 분들께 유익한 영감이 되었기를 바랍니다. 카카오모빌리티는 앞으로도 더욱 정교한 공간 정보 기술을 통해 이동의 혁신을 멈추지 않겠습니다. 감사합니다.