셋째 날: 도로명주소 우편번호 검색 API

저자

@aanoaa - 홍형석, 사당동 펠프스, github:aanoaa

시작하며

Postcodify는 웹 페이지에서 도로명주소, 지번주소, 영문주소 등을 편리하게 검색할 수 있도록 해주는 오픈소스 라이브러리입니다. PHP 구현물이며, LGPL-3.0 라이센스이고, 현재 GitHub 저장소에서 개발이 이루어지고 있습니다. 공식 홈페이지의 설명에 따르면 다음과 같은 장점이 있다고합니다.

참, 좋아보이는데 Perl 사용자는 어떻해야 할까요?

p5-postcodify

PHP 구현물인 Postcodify를 Perl로 옮긴 프로젝트가 p5-postcodify입니다. 자, 지금부터 Postcodify 라이브러리를 펄을 이용해 사용하는 방법을 알아보죠. p5-postcodify 모듈은 CPAN 모듈이 아니므로 설치를 위해 저장소를 복제합니다.

$ git clone git@github.com:aanoaa/p5-postcodify.git

전국 주소 데이터베이스 파일

Postcodify를 사용하려면 우선 전국 주소 데이터베이스 파일이 필요합니다. 필요한데, 원본은 대한민국 정부가 운영하는 도로명주소 DB 제공 홈페이지에서 내려받을 수 있습니다.

Postcodify에서 이 파일을 바로 사용할 수 있는 것은 아니고 내려받은 후 인덱스 구동 절차를 거쳐야 합니다. 편리하게도 Postcodify에서는 인덱스까지 생성을 완료한 데이터베이스를 자체 서버에서 다운로드받을 수 있도록 링크를 제공합니다. Perl로 포팅한 p5-postcodify 저장소에는 이 데이터베이스 파일을 다운로드할 수 있도록 스크립트를 제공하고 있습니다. 다음 명령을 이용해서 데이터베이스 파일을 다운로드 합니다. 하드 디스크에 2GB 이상의 여유 공간이 필요합니다.

$ cd p5-postcodify/
#
# wget
#
$ wget -qO https://raw.githubusercontent.com/aanoaa/p5-postcodify/develop/installer.sh | sh
#
# or curl
#
$ curl https://raw.githubusercontent.com/aanoaa/p5-postcodify/develop/installer.sh | sh

스크립트를 통해 자동으로 다운로드 및 압축 해제가 끝나면 db/postcodify.20141112.v2.sqlite 파일이 준비됩니다.

의존 모듈 설치

p5-postcodify 모듈은 CPAN 모듈이 아니므로 cpanm을 이용해 설치하는 것을 추천합니다. 의존 모듈을 설치하는 명령은 다음과 같습니다.

$ cpanm --installdeps .

실행

잘 동작하는지 확인하는 방법은 간단합니다.

$ perl -Ilib scripts/search.pl 서울시 강남구 논현동 99-1
{"lang":"KO","time":"0.2474","version":"v2.2.0","msg":"...

위와 비슷한 결과가 나왔다면 성공입니다.

모듈을 적재해서 사용하는 법 역시 간단합니다.

#!/usr/bin/env perl

use strict;
use warnings;
use Postcodify;

my $p = Postcodify->new;
my $result = $p->search('서울시 강남구 논현동 99-1');
print $result->json;

정리하며

펄과 Postcodify를 이용하면 단 몇 줄의 코드를 이용해 간단하게 주소 및 우편번호를 검색할 수 있습니다. 직접 데이터베이스와 서버를 구축하는 것이 번거롭다면 무료 Web API Service를 사용할 수도 있습니다. p5-postcodify공식 Postcodify jQuery 플러그인과 호환되므로 더 자세한 내용을 알고 싶다면 공식 문서를 확인하세요.

마지막으로 이렇게 훌륭한 라이브러리와 서비스를 만든 Postcodify 개발진에게 고마운 마음을 전합니다.

blog comments powered by Disqus