정부조차 지키지 않는 도로명주소 민낯
Topic본인은 주소 도메인을 메인 업무 중 하나로 맡고 있는 개발자로, 그동안 적지 못한 이야기를 꺼내볼까 한다. 신주소라 쓰고 있는 도로명주소가 얼마나 체계도 근본도 없는지 적어보려고 한다.
본인이 도로명주소를 도입하기 전까지 이곳은 오로지 지번주소만 사용하고 있었다. 언제부터 유지되었을지 모르는 코드로 주소를 다루고 있었고, 결국 도로명주소를 도입하기 위해서는 모든 부분을 갈아엎어야 했다. 데이터베이스 테이블부터 모든 주소 입력 페이지 마다 개별로 가지고 있는 코드까지 문제가 많았다. 하지만 이건 중요치 않는 이야기다. 필자가 말하고 싶은건 도로명주소에 대한 정체성이다.
도로명주소는 2014년 전면시행한 주소 표기 방식이다. 도로를 기준으로 하여 주소를 명명하는데, 근본적인 문제는 한국에 계획 도시가 거의 존재하지 않는다는 사실이다. 따라서 도로명주소를 쓴다고 한들 지번주소의 단점을 메울 수 없었다. 그럼에도 불구하고 새롭게 도입하고자 했던 도로명주소는 아직도 명확한 규칙을 가지고 있지 않는다. 도로명주소가 시행된지 5년 째인 지금도 지번주소가 가진 단점을 상쇄하지 못 하고 있다.
개발자니까 먼저 주소에 대한 규칙을 살펴보자. 지번과 도로명을 구분할 수 있는 정규식은 다음과 같다.
// 지번주소 정규식
/^((?!상가)[가-힣])+(\d{1,5}|(\d{1,5}[가-힣,]+\d{1,5})?)(읍|면|동|가)$/
// 도로명주소 정규식
/^[가-힣A-Za-z·\d~\-\.]+(로|길)$/
이 정규식을 보면 큰 의문이 생길 것이다.
‘어째서 도로명주소 정규식에 알파벳이 포함되어 있지?’
이는 오류가 아니다. 실제로 도로명주소에 영문 표기가 존재한다. 단 하나, 바로 ‘APEC로’다. 도로명주소는 분명 국책사업이며, 대한민국은 한글만을 주언어로 삼고 있다. 그런데 대뜸 알파벳이라고? APEC은 아시아 태평양 경제 협력체의 줄임말로 국제기구를 의미한다. 단지 부산에서 APEC 정상회담이 열렸다는 이유 하나만으로 주소에 영어를 쓰고 있는 것이다! 그래, 국민 절반 정도는 알파벳을 읽을 수 있다. 하지만 그건 젊은 세대 이야기지 않는가? 또한 굳이 영문 줄임말인 APEC을 주소로 할 이유는 없다. 하다못해 한글로 얼마든지 표현할 수 있으며, 대체할 수 없는 단어도 아니다. 과연 이게 국가에서 시행한 사업이란 말인가? 자국어가 아닌, 외국어를 기본주소에 사용하는 국가가 어디 있을까 싶다. 본인이 볼 때는 사대주의에 물든 지자체의 허영심으로 보일 뿐이다. (주소 네이밍은 지자체 권한이란다.)
다른 경우를 살펴보자. 이번에는 특수문자인 가운뎃점과 마침표다. 이 글을 읽는 사람 중 가운뎃점을 1초 안에 입력할 수 있는 사람은 몇 안 될 것이다. 기본적으로 특수문자이며, 키보드에 표기되어 있지도 않은 문자다. 이걸 일반인에게 입력시킨다는 발상 자체가 잘못되었다. 자동완성을 통해 일정 부분 보완해줄 수 있을지 언정 올바른 해결책이라 보이지 않는다. 실제로 자동완성을 제대로 지원하는 곳은 다음 우편번호 서비스 뿐이었다.
이번에는 도로명주소 표기 방식을 살펴보자. 도로명주소 표기 방식은 시행령 3조를 보면 자세히 나와있다. 하지만 이 시행령을 읽고 올바르게 주소를 표기하는건 요원한 일이다. 그 중 하나는 바로 건물명 표기다. 일정 조건을 충족하면 건물명을 괄호 안에 필수적으로 표기하여야 한다. 그 조건을 전국민이 숙지하고 이해하기에는 구분하기 힘들다. 무작정 괄호 안에 건물명을 넣어서는 안 되며, 괄호 안에 들어가야할 건물명을 괄호 밖에 적어서도 안 된다.
다음은 법정동 표기 방식이다. 이러한 방식은 도로명주소만으로는 해당 지역이 어디인지 한눈에 정확히 알 수 없기에 도입된 것이라 본다. 결국 도로명주소로 인하여 주소만 길어졌다.
국민 중 대다수는 주소를 적을 때 법정동과 건물명을 어떻게 써야하는지 모를 것이다. 정부 부처조차 지키지 않고 있는데, 일개 개인이 주소 표기 방식에 관심 가질리 없다. 하다못해 프로그래밍 로직을 빼버리면 주소 도메인을 관리하는 본인도 틀리는 경우가 발생한다.
이 스크린샷은 청와대 홈페이지에서 찍었다. 스크린샷에 적힌 청와대 주소는 도로명주소법 시행령을 지키지 않았다! 상세주소 뒤에 건물 정보를 표기하려면 쉼표로 구분해줘야 한다. 또한 법정동을 표기하지 않았다. 대한민국 간판이라는 청와대조차 이를 지키지 않았다.
이번에는 서울지방고용노동청다. 법정동을 표기하기 위해 괄호로 묶는건 맞지만, 괄호는 주소 마지막에 표기해야 한다. 그 외 가볍게 정부와 관련된 사이트 몇 개를 뒤적여보면 다음과 같이 도로명주소법 시행령을 제대로 지키지 않은 곳을 쉽게 찾아볼 수 있다.
정부조차 지키지 않으니 사기업은 두말할 필요가 없다. 네이버, 포스코, 넷마블, 야놀자, 우아한형제들, CJ 등등 수많은 기업이 도로명주소를 제대로 표기하지 않고 있으며, 시행령을 정확히 지키고 있는 회사를 찾기 더 힘들다. 이는 모두 사용자단에서 입력하는 데이터가 아니라, 코드에 들어가 있는 주소 텍스트다. 사용자가 지키지 않으면 그러려니 넘길 수 있었겠지만, 너무하다 싶을 정도로 정확히 지키는 곳을 찾기 더 힘들다. 정부는 그저 법으로 정해놓았을 뿐 제대로 알리지도 않았고, '사람들이 쓰기 불편하지 않은가?' 에 대한 고민도 없던게 분명하다.
// good case
청와대: 서울특별시 종로구 청와대로 1, 대통령 비서실(세종로)
서울지방고용노동청: 서울특별시 중구 삼일대로 363, 장교빌딩 1~4층(장교동)
고용노동부: 세종특별자치시 한누리대로 422, 정부세종청사 11동 고용노동부(어진동)
워크넷: 충청북도 음성군 맹동면 태정로 6, 한국고용정보원
법무부: 경기도 과천시 관문로 47, 정부과천청사 1동 법무부(중앙동)
결국 이렇게 하나하나 따지고 들어가면 위에서 살펴본 것처럼 별 의미 없는 도로명주소 정규식이 완성된다! 심지어 그 정규식은 지번/도로명을 구분하기 위한 용도이므로 한계가 명확하다. 데이터 마이그레이션이라도 하려고 한다면 추가적인 로직이 필요하다. 위에 적은 정규식은 데이터 마이그레이션 용도가 아니기 때문에 해당 정규식만으로 무언가를 처리하려고 한다면 오류가 가득하다. 우아한형제들 기술블로그에 나와있는 정규식조차 한계가 명확하다. 본인이 도로명주소를 도입하기 위한 개발을 시작할 때 처음 참고한 정규식이 바로 우아한형제들 기술블로그였다.
결국 표본 1만 건을 선정하고 수십 차례 돌려가며 마이그레이션 로직을 만들었다. 단 하나의 정규식만으로는 온전히 주소를 분리해낼 수 없다고 판단하여, 여러 정규식과 서버 로직을 통해 마이그레이션 로직을 보완하였다. DBA조차 본인이 짠 로직에 대해 일언반구 하지 않을 만큼 데이터 마이그레이션을 위한 로직은 복잡하였다.
수 년이 지난 지금까지 지번주소만 사용하는 곳은 아마 거의 없을 것이다. 따라서 이 글은 도로명주소 표기 방식을 제외하면 개발자에게 큰 의미가 없다고 본다. 그럼에도 불구하고 기록하는 이유는 졸속 국책 사업이 줄어들었으면 하는 국민으로써 바람을 담았기 때문이다. 이것이 정부조차 제대로 지키지 않는 도로명주소, 몇 백 억 짜리 국책사업이 가진 민낯이다.
Devellany
back-end Developer
PHP, Java, JavaScript, MySQL, Redis, Ubuntu, Nginx
Codeigniter, Laravel, Zend, Phalcon, Spring Boot, JPA
PHPStorm, IntelliJ, Upsource, SVN, Git, Telegram Bot