Juso 주소검색 팝업/검색 API 명세
Status: Source spec preserved
이 문서는 행정안전부 도로명주소 주소기반산업지원서비스 Juso 팝업 API와 직접 주소검색 API를 ZIP:ON 구현 기준으로 보존한 명세입니다. 실제 승인키는 이 문서에 남기지 않고 JUSO_ADDRESS_CONFIRM_KEY, JUSO_ADDRESS_SEARCH_KEY 같은 환경변수로만 관리합니다.
1. 팝업 API
호출방식 구분 요청 URL 출력결과 POST / GET 웹 https://business.juso.go.kr/addrlink/addrLinkUrl.do파라미터
요청 변수
요청변수명 타입 필수여부 설명 confmKeyString Y 신청 시 발급받은 승인키 returnUrlString Y 주소 검색 결과를 리턴받을 URL resultTypeString N 도로명주소 검색결과 화면 출력유형. 1: 도로명, 2: 도로명 + 지번, 3: 도로명 + 상세 건물명, 4: 도로명 + 지번 + 상세 건물명 useDetailAddrString N 상세주소 동/층/호 정보 제공 여부. Y: 제공, N: 미제공/직접 입력
출력 변수
출력변수명 타입 필수여부 설명 roadFullAddrString Y 전체 도로명 roadAddrPart1String Y 도로명주소, 참고항목 제외 roadAddrPart2String N 도로명주소 참고 항목 jibunAddrString Y 지번주소 engAddrString Y 도로명 영문 zipNoString Y 우편번호 addrDetailString N 고객 입력 상세 주소 admCdString Y 행정구역코드 rnMgtSnString Y 도로명코드 bdMgtSnString Y 건물관리번호 detBdNmListString N 상세건물명 bdNmString N 건물명 bdKdcdString Y 공동주택 여부. 1: 공동주택, 0: 비공동주택 siNmString Y 시도명 sggNmString Y 시군구명 emdNmString Y 읍면동명 liNmString N 법정리명 rnString Y 도로명 udrtYnString Y 지하여부. 0: 지상, 1: 지하 buldMnnmNumber Y 건물본번 buldSlnoNumber Y 건물부번 mtYnString Y 산여부. 0: 대지, 1: 산 lnbrMnnmNumber Y 지번본번, 번지 lnbrSlnoNumber Y 지번부번, 호 emdNoString Y 읍면동일련번호
2. 직접 주소검색 API
구분 요청 URL 출력결과 JSONP/XML/JSON https://business.juso.go.kr/addrlink/addrLinkApiJsonp.do주소 후보 XML/JSON https://business.juso.go.kr/addrlink/addrLinkApi.do주소 후보
ZIP:ON 구현은 백엔드 JusoAddressSearchApiClient에서 addrLinkApi.do를 resultType=json으로 호출한다. 프론트엔드는 Juso URL을 직접 호출하지 않고 GET /api/address-search/juso를 호출한다.
요청 변수
요청변수명 타입 필수여부 기본값 설명 confmKeyString Y 없음 신청 시 발급받은 주소검색용 승인키 currentPageString Y 1현재 페이지 번호 countPerPageString Y 10페이지당 출력 개수 keywordString Y 없음 주소 검색어 resultTypeString N xmlZIP:ON은 json으로 고정 hstryYnString N N변동이력 주소 포함 여부 firstSortString N none정렬. none, road, location addInfoYnString N N추가정보 제공 여부
응답 변수
영역 출력변수명 설명 commontotalCount총 검색 결과 수 commoncurrentPage현재 페이지 번호 commoncountPerPage페이지당 출력 개수 commonerrorCode결과 코드 commonerrorMessage결과 메시지 jusoroadAddr전체 도로명주소 jusoroadAddrPart1도로명주소, 참고항목 제외 jusoroadAddrPart2도로명주소 참고 항목 jusojibunAddr지번주소 jusoengAddr영문주소 jusozipNo우편번호 jusoadmCd행정구역코드 jusornMgtSn도로명코드 jusobdMgtSn건물관리번호 jusodetBdNmList상세건물명 jusobdNm건물명 jusobdKdcd공동주택 여부 jusosiNm, sggNm, emdNm, liNm시도/시군구/읍면동/법정리명 jusorn도로명 jusoudrtYn지하여부 jusobuldMnnm, buldSlno건물본번/부번 jusomtYn산여부 jusolnbrMnnm, lnbrSlno지번본번/부번 jusohstryYn변동이력 여부 jusorelJibun관련 지번 jusohemdNm행정동명
오류 코드
코드 메시지/상황 ZIP:ON 처리 0정상 SUCCESS 또는 결과 0건이면 EMPTY-999시스템에러 ERRORE0001승인되지 않은 KEY UNAVAILABLEE0005검색어 없음 INVALID_REQUESTE0006주소가 상세하지 않음 INVALID_REQUESTE0008검색어 두 글자 미만 INVALID_REQUESTE0009문자와 숫자가 같이 입력되어야 함 INVALID_REQUESTE0010검색어가 너무 김 INVALID_REQUESTE0011너무 긴 숫자 포함 INVALID_REQUESTE0012특수문자 + 숫자만으로 검색 INVALID_REQUESTE0013SQL 예약어 또는 금지 특수문자 포함 INVALID_REQUESTE0014개발승인키 기간 만료 UNAVAILABLEE0015검색 범위 초과 INVALID_REQUEST
ZIP:ON 구현 메모
팝업용 키와 검색용 키는 서로 다르므로 JUSO_ADDRESS_CONFIRM_KEY, JUSO_ADDRESS_SEARCH_KEY를 분리한다.
JusoAddressSearchApiClient의 운영 로그 requestSummary에는 confmKey와 원문 검색어를 저장하지 않고 keywordHash만 남긴다.
주소검색 결과는 현재 DB에 저장하지 않는다. 위험진단 이력에는 사용자가 선택해 제출한 주소 snapshot만 저장한다.
countPerPage는 Juso 원문 명세에 최대값이 명시되어 있지 않지만, ZIP:ON 백엔드는 과도한 요청을 막기 위해 1~100으로 제한한다.