https://www.juso.go.kr/addrlink/addrLinkUrl.do?confmKey=승인키&returnUrl=주소결과를 리턴 받을 URL
승인키와 url을 주소에 넣고 브라우저에서 요청을 해주면 주소 검색창이 뜨는 것을 볼 수 있습니다.
주소 검색을 하고 확인을 누르면
에러가 나는데 에러가 나는 이유는 제 서버에서 localhost:8000은 HTTP Method 방식이 Post가 아니기 때문입니다.
주소가 제대로 검색되어서 입력되는지 확인해보기 위해서 주소 API를 다운로드 해서 실행시켜봅니다.
새로운 API를 다운받아서 테스트 할 때는 바로 내 프로젝트에 적용해보기 보단 DynamicProject를 통해서 같은 환경에서 테스트 해보고 내 프로젝트에 적용하는 것이 좋습니다.
다시 도로명 주소 API 사이트에 들어가서 팝업 API를 다운받아줍니다
압축을 풀고 jsp_sample에 있는 jsp 파일 두개를 복사해줍니다.
Dynamic Web Project 를 만들어서 src - main - webapp 에 붙여넣기 해줍니다.
Sample.jsp를 서버로 실행시키면
잘 뜨는 것을 볼 수 있습니다.
팝업창을 눌러보면
404 에러가 뜹니다. 이유는
context path가 프로젝트 이름으로 있어야 제대로 찾을 수 있기때문입니다. 앞에 /popup부분을 프로젝트 이름으로 바꿔줍니다.
jusoPopup.jsp 파일에서도 confmKey 변수에 아까 승인 받은 승인키를 넣어줍니다.
다시 실행시켜보면 팝업이 잘 뜹니다.
주소를 검색해서 해당 주소를 누르면
상세 주소를 입력할 수 있고 주소 입력 버튼을 눌러 완료하면
이렇게 값이 반환되는 것을 볼 수 있습니다. 그런데 지금 UTF-8설정이 되어있지 않은지 다 깨집니다.
다시 jusoPopup.jsp 파일로 돌아가서
해당 주석을 제거해줍니다. 친절하게 써놓으셨네요.
다시 실행시켜서 주소 입력해보면 제대로 잘 나오는 것을 볼 수 있습니다.
보통 주소 찾기에서 사용되는 것은 전체 주소이므로 <body> 태그에서 전체주소 하나만 남겨주고 다 지워줍니다.
여기서 팝업을 눌러 주소를 검색하면
입력창에 주소는 잘 들어가지만 팝업창이 닫히지 않는 오류가 발생합니다.
이유는 roadFullAddr 만 받아오면 되는데 받아오는 데이터들이 너무 많아져서 에러가 나는 것 입니다.
따라서 하나만 남기고 다 지워줍니다.
jusoPopup.jsp 파일에서도 init 함수 속 else에서 jusoCallBack으로 받아오는 데이터를 roadFullAddr을 빼고는 다 지워줍니다.
여기서 opener는 자식이 부모의 함수를 실행시키는 역할을 합니다.
처음 받아오는 inputYn엔 전달되는 값이 없기 때문에 null이 전달됩니다. 따라서 처음 if문으로 들어가 코드 실행 후 다시 실행이 되면서 else문의 코드가 실행되어 roadFullAddr이 반환됩니다. 즉 returnurl 때문에 자기 자신으로 돌아가지고 총 2번 실행되는 것 입니다.
이제 실제 프로그램에도 적용할 준비가 되었습니다.
'웹개발 > Springboot' 카테고리의 다른 글
[블로그 만들기] 주소 API 활용 -2) 주소찾기 기능 넣기 (0) | 2021.07.19 |
---|---|
open-in-view (0) | 2021.07.18 |
ORM / 양방향 매핑 원리 (0) | 2021.07.17 |
댓글