Home > 주소제공 > 도로명주소 API 제공

01
Open API는 다음과 같은 서비스를 제공합니다.
  • 프로그램 방식으로 다양한 시스템 환경에 적용 가능한 OpenAPI를 이용할 수 있습니다.
  • HTTP, XML, JSON 과 같은 표준 연계 방식을 이용하여 개발언어, 개발플랫폼에 제약을 받지 않습니다.
  • 테스트 인증키 : TESTJUSOGOKR (해당 인증키는 연계기능 개발편의를 위해 참고용으로 제공되며, 실제 데이터를 제공하지 않습니다.)
02
연계 신청은 아래 절차에 따라 이루어 집니다.
    1. 연계 신청
    2. 본인 인증
    3. 승인키 발급
    4. 서비스 적용
03
연계 이용 시 다음 사항에 유의해 주시기 바랍니다.
  • 승인키는 1개 사이트에 하나만 발급 됩니다.
  • 동일 IP에 여러 개의 도메인이 존재하는 경우에도 승인키를 각각 신청하셔야 합니다.
04
웹페이지에서 호출 시 다음과 같이 적용하세요.
  • apiSample.jsp (웹페이지에서 Open API를 호출하는 프로그램 예시)
  • JSP와 Ajax를 이용하여 설명합니다.
  • getAddr() 함수를 작성하세요.
       함수 명칭은 변경하셔도 무방합니다. 상이한 도메인 사이의 데이터 전달이므로 jsonp 방식을 이용 합니다.
       호출 URL은 샘플 소스의 URL을 이용해 주세요.
    
    	function getAddr(){
    		$.ajax({
    		     url :"http://www.juso.go.kr/addrlink/addrLinkApiJsonp.do"
    			,type:"post"
    			,data:$("#form").serialize()
    			,dataType:"jsonp"
    			,crossDomain:true
    		
    
    												

  • Open API 호출 결과를 처리할 핸들러를 정의하세요.
       호출이 정상적으로 종료되면 결과 목록을 작성합니다.
       호출이 비정상적으로 종료되면 오류메시지를 표시합니다.
    
    	,success:function(xmlStr){
    			if(navigator.appName.indexOf("Microsoft") > -1){
    				var xmlData = new ActiveXObject("Microsoft.XMLDOM");
    				xmlData.loadXML(xmlStr.returnXml)
    			}else{
    				var xmlData = xmlStr.returnXml;
    			}
    			$("#list").html("");
    			var errCode = $(xmlData).find("errorCode").text();
    			var errDesc = $(xmlData).find("errorMessage").text();
    			if(errCode != "0"){
    				alert(errCode+"="+errDesc);
    			}else{
    				if(xmlStr != null){
    					makeList(xmlData);
    				}
    			}
    		}
    		
    
    												

  • 조회를 위한 파라메터를 관리합니다.
       currentPage : 현재 페이지. 기본값은 1
       countPerPage : 페이지당 출력 목록 수. 기본값은 10
       confmKey : 부여 받은 승인키 (승인 중인 경우 테스트키)
       keyword : 입력 검색어
    
    	<form name="form" id="form" method="post">
    		<input type="hidden" name="currentPage" value="1"/>
    		<input type="hidden" name="countPerPage" value="10"/> 
    		<input type="text" name="confmKey" id="confmKey" style="width:250px;display:none" value="승인키"/>
    		keyword : <input type="text" name="keyword" value="" onkeydown="enterSearch();"/>
    		<input type="button" onClick="getAddr();" value="검색"/>
    		<div id="list"></div>
    	</form>
    		
    
    												

  • 조회 결과를 조합하여 화면에 표시합니다.
    
    	function makeList(xmlStr){
    		var htmlStr = "";
    		htmlStr += "<table>";
    		$(xmlStr).find("juso").each(function(){
    			htmlStr += "<tr>";
    			htmlStr += "<td>"+$(this).find('roadAddr').text()      +"</td>";
    			htmlStr += "<td>"+$(this).find('roadAddrPart1').text()      +"</td>";
    			htmlStr += "<td>"+$(this).find('roadAddrPart2').text()      +"</td>";
    			htmlStr += "<td>"+$(this).find('jibunAddr').text()     +"</td>";
    			htmlStr += "<td>"+$(this).find('engAddr').text()     +"</td>";
    			htmlStr += "<td>"+$(this).find('zipNo').text()      +"</td>";
    			htmlStr += "<td>"+$(this).find('admCd').text()      +"</td>";
    			htmlStr += "<td>"+$(this).find('rnMgtSn').text()      +"</td>";
    			htmlStr += "<td>"+$(this).find('bdMgtSn').text()      +"</td>";
    			htmlStr += "<td>"+$(this).find('detBdNmList').text()      +"</td>";
    			htmlStr += "</tr>";
    		});
    		htmlStr += "</table>";
    		$("#list").html(htmlStr);
    	}
    
    												

05
어플리케이션에서 호출 시 다음과 같이 적용하세요.
  • apiSampleController.java (어플리케이션에서 Open API를 호출하고 결과 값을 처리하는 샘플 프로그램 예시)
  • JAVA와 Spring 프레임워크를 이용하여 설명합니다.
  • 적용하실 클래스를 작성하세요.
  • 작성하신 클래스에 getAddrApi() 함수를 작성하세요.
       함수 명칭은 변경하셔도 무방합니다.
       호출 URL은 샘플 소스의 URL을 이용해 주세요.
  • 조회를 위한 파라메터를 조합합니다.
       currentPage : 현재 페이지. 기본값은 1
       countPerPage : 페이지당 출력 목록 수. 기본값은 10
       confmKey : 부여 받은 승인키 (승인 중인 경우 테스트키)
       keyword : 입력 검색어
    
    	String apiUrl = 
    	"http://www.juso.go.kr/addrlink/addrLinkApi.do?currentPage="+currentPage+"&countPerPage="
    	+countPerPage+"&keyword="+URLEncoder.encode(keyword,"UTF-8")+"&confmKey="+confmKey;
    
    												

  • Open API 호출 결과를 처리 합니다.
       호출이 정상적으로 종료되면 결과 목록을 작성합니다
       호출이 비정상적으로 종료되면 오류메시지를 표시합니다
    
    	URL url = new URL(apiUrl);
       	BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),"UTF-8"));
       	StringBuffer sb = new StringBuffer();
       	String tempStr = null;
       	while(true){
       		tempStr = br.readLine();
       		if(tempStr == null) break;
       		sb.append(tempStr);	
       	}
       	br.close();
    
    												

06
Open API 이용 시 사용되는 변수와 값은 다음과 같습니다.
  • 조회 입력값
    조회 입력값 표로 구분코드별 설명 정보를 제공합니다.
    순번구분코드설 명비 고
    1confmKey승인키필 수
    2currentPage페이지 번호필 수
    3countPerPage페이지당 출력할 ROW필 수
    4keyword주소 검색어필 수

  • 조회 결과 값
    조회 결과값 표로 구분코드별 설명 정보를 제공합니다.
    순번구분코드설 명비 고
    1totalCount 총 검색 데이터수필 수
    2currentPage 페이지 번호필 수
    3countPerPage 페이지당 출력할 ROW필 수
    4errorCode 에러 코드 필 수
    5errorMessage에러 메시지필 수
    6roadAddr 전체 도로명주소필 수
    7roadAddrPart1도로명주소필 수
    8roadAddrPart2도로명주소 상세
    9jibunAddr 지번필 수
    10engAddr 도로명주소(영문)필 수
    11zipNo 우편번호필 수
    12admCd행정구역코드필 수
    13rnMgtSn도로명코드필 수
    14bdMgtSn건물관리번호필 수
    15detBdNmList상세건물명

  • 오류 코드 및 메시지
    오류 코드 및 메세지표로 에러코드별 에러메세지 정보를 제공합니다.
    순번에러코드에러메시지
    10정상
    2-999시스템에러
    3E0001승인되지 않은 KEY 입니다.
    4E0002승인되지 않은 사이트 입니다.
    5E0003정상적인 경로로 접속하시기 바랍니다.
    6E0005검색어가 입력되지 않았습니다.
    7E0006주소를 상세히 입력해 주시기 바랍니다.(검색어에 시/도만 입력한 경우)

  • 조회 결과 값 예시
    
    	<?xml version=\"1.0\" encoding=\"UTF-8\"?>
    	<results>
    		<common>
    			<totalCount>110</totalCount>
    			<currentPage>1</currentPage>
    			<countPerPage>10</countPerPage>
    			<errorCode>0</errorCode>
    			<errorMessage>정상</errorMessage>
    		</common>
    		<juso>
    			<roadAddr>서울특별시 서초구 강남대로12길 6 (양재동)</roadAddr>
    			<roadAddrPart1>서울특별시 서초구 강남대로12길 6</roadAddrPart1>
    			<roadAddrPart2> (양재동)</roadAddrPart2>
    			<jibunAddr>서울특별시 서초구 양재동   326-1</jibunAddr>
    			<engAddr>6, Gangnam-daero 12-gil, Seocho-gu, Seoul</engAddr>
    			<zipNo>06779</zipNo>
    			<admCd>1165010200</admCd>
    			<rnMgtSn>116504163008</rnMgtSn>
    			<bdMgtSn>1165010200103260001002677</bdMgtSn>
    			<detBdNmList></detBdNmList>
    		</juso>
    		<juso>
    			<roadAddr>서울특별시 서초구 강남대로12길 8 (양재동)</roadAddr>
    			<roadAddrPart1>서울특별시 서초구 강남대로12길 8</roadAddrPart1>
    			<roadAddrPart2> (양재동)</roadAddrPart2>
    			<jibunAddr>서울특별시 서초구 양재동   326-2 성경빌딩</jibunAddr>
    			<engAddr>8, Gangnam-daero 12-gil, Seocho-gu, Seoul</engAddr>
    			<zipNo>06779</zipNo>
    			<admCd>1165010200</admCd>
    			<rnMgtSn>116504163008</rnMgtSn>
    			<bdMgtSn>1165010200103260002004362</bdMgtSn>
    			<detBdNmList></detBdNmList>
    		</juso>
    	</results>
    
    												

01
통합검색창은 다음과 같은 서비스를 제공합니다.
  • URL팝업 방식으로 최신 도로명주소 데이터를 실시간으로 편리하게 검색할 수 있습니다.
  • HTTP, Ajax 와 같은 표준 연계 방식을 이용하여 웹사이트에 주로 사용하는 JSP, PHP, ASP 등에서 연계하여 이용할 수 있습니다.
  • 테스트 인증키 : TESTJUSOGOKR (해당 인증키는 연계기능 개발편의를 위해 참고용으로 제공되며, 실제 데이터를 제공하지 않습니다.)
02
연계 신청은 아래 절차에 따라 이루어 집니다.
    1. 연계 신청
    2. 본인 인증
    3. 승인키 발급
    4. 서비스 적용
03
연계 이용 시 다음 사항에 유의해 주시기 바랍니다.
  • 승인키는 1개 사이트에 하나만 발급 됩니다.
  • 동일 IP에 여러 개의 도메인이 존재하는 경우에도 승인키를 각각 신청하셔야 합니다.
04
jusoPopup.jsp 프로그램 수정 방법입니다.
  • 통합검색창을 호출한 후 결과를 처리하는 프로그램입니다. 수정 없이 사용해도 무방합니다.
  • 여러분의 사이트에서 어떤 URL로 서비스 할 것인지 결정 하세요.
  • jusoPopup.jsp 를 해당 경로의 소스 폴더에 복사하세요.
    (필요 시 jusoPopup.jsp 파일명을 원하시는 이름으로 수정하여 사용하세요)
  • 발급 받은 승인키를 “승인키” 자리에 입력하세요.
    
    	<script language="javascript">
    	function init(){
    	var url = location.href;
    	var confmKey = "승인키";
    	var inputYn= "<%=inputYn%>";
    		
    
    												

05
Sample.jsp 프로그램 수정 방법입니다.
  • jusoPopup.jsp 를 호출하여 사이트에 통합검색기능을 제공하고자 하는 프로그램입니다. 사이트에 맞게 수정하여 사용하세요.
  • 시스템의 어떤 화면에서 통합검색창을 호출할 것인지 결정 하세요.
  • 해당 화면의 소스를 Sample.jsp 를 참고하여 수정하세요.
       goPopup 함수를 작성한 후 위에서 작성한 “jusoPopup.jsp” 파일의 경로를 입력하세요.
       (파일명을 변경하신 경우 변경 한 파일명을 입력하세요)
    
    	<script language="javascript">
    	function goPopup(){
    		var pop = window.open("/popup/jusoPopup.jsp","pop","width=570,height=420, scrollbars=yes, resizable=yes"); 
    	}
    
    												

       jusoCallBack 함수를 작성하세요.
       jusoCallBack함수는 goPopup 함수를 이용하여 통합검색창을 호출 한 후 결과를 반영하는 함수입니다.
       여러분의 사이트에서 필요한 항목을 선택하여 사용하세요.
    
    	function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn){
    			document.form.roadFullAddr.value = roadFullAddr;
    			document.form.roadAddrPart1.value = roadAddrPart1;
    			document.form.roadAddrPart2.value = roadAddrPart2;
    			document.form.addrDetail.value = addrDetail;
    			document.form.engAddr.value = engAddr;
    			document.form.jibunAddr.value = jibunAddr;
    			document.form.zipNo.value = zipNo;
    			document.form.admCd.value = admCd;
    			document.form.rnMgtSn.value = rnMgtSn;
    			document.form.bdMgtSn.value = bdMgtSn;
    	}
    
    												

06
통합검색창을 사용할 준비가 끝났습니다.
  • 여러분의 사이트에서 통합검색 화면을 띄워보세요.
  • 통합검색창은 아래의 화면으로 구성되어 있습니다.
       도로명주소 안내시스템과 동일한 방식으로 통합 검색을 이용하실 수 있습니다.

    통합검색창 화면


  • 검색어 입력 후 “검색” 버튼을 클릭하면 목록이 표시되며, 원하는 도로명주소를 선택하면 상세주소를 입력 할 수 있는 화면이 표시됩니다.

    검색어 입력 후 검색 버튼 클릭하면 검색결과 목록을 보여주는 화면 검색결과 목록에서 주소 선택 시 발생하는 상세주소 입력 창 화면


  • 상세주소 입력 후 “주소입력” 버튼을 클릭하면 선택한 도로명주소가 부모창에 표시 됩니다.

    연계신청 기관 표시화면으로 1번은 도로명주소 2번은 기타주소 3번은 참고항목을 보여주는 화면