How to become a real programmer/Back-End

공공API - 국민연금사업장 목록을 활용한 국민연금사업장 조회 서비스 개발(시작 - 1)

MinDDokDDok 2022. 6. 25. 16:33

이전 학기 오픈소스프로그래밍 수업에서 배운 클라우드, 파이썬-플라스크, postgresql을 통한 데이터베이스 구축과 AWS로 호스팅하기, 컨테이너 활용하여 배포하기를 사용하여 웹사이트 개발 하는 과정을 해보도록 하겠다. 

우선 공공데이터포털을 이용, 유의미한 정보를 내포한 웹사이트를 구현하기 위해서 아이템을 선정하였는데, https://www.data.go.kr/data/15083277/fileData.do#tab-layer-openapi(국민연금공단_국민연금 가입 사업장 내역)을 활용하였다.

 

공공API란 무엇인가?

쉽게 말하자면, 유의미한 데이터들을 담은 풀이라고 생각하면 되는데, 국민연금 사업장 정보와 같은 데이터는 개개인이 접근하기 힘들기에 공공API는 어떠한 틀에 맞게 국가에서 수집한 정보를 오픈소스로 공개한 것이라 생각하면 된다.

* 오픈소스란, 공개적으로 접근할 수 있는 소스라고 생각하면 편함

우선 위의 웹사이트에 접속하게 되면 위와같은 창이 뜬다. 여기서 데이터를 활용하기 위해서 해야하는 것은 우선 회원이 아닌 사람의 경우 회원가입을 하면 된다. 나는 카카오 로그인이 편해서 빠르게 회원가입을 완료하였다.

그리고 데이터 활용신청을 하면 되는데, 활용신청을 하는 이유는 개인의 인증키를 해당 데이터에 활용하기 위해 등록하는 과정이라 생각하면 된다. 즉 내 아이디가 접속할 수 있게 신청하는 것이다.

파일 데이터 / 오픈 API / 추천 데이터 중 오픈 API를 누르고, 활용신청을 해주자.

활용신청을 하면, 활용목적과 같은 창이 나오는데 활용 목적을 간단하게 작성하고 신청을 끝내면 된다.

이후 개발계정에 들어가면, 신청되었다는 것을 확인할 수 있다.

 

해당 창에 들어가면 서비스에 대한 정보를 간략하게 알 수 있는데, 우선 국민연금 가입 사업장 데이터의 경우 데이터 포맷이 JSON과 XML을 지원한다.

데이터 포맷이란, 데이터를 담은 형식으로 크게 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷인 JSON과 W3C에서 개발한 XML이 있다. 개인적으로 JSON이 가독성이나, 활용에 더 익숙하게 느껴진다 생각해서 JSON으로 데이터를 가져올 것이다.

그리고 여기서 인증키를 확인 가능한데, 이는 내 아이디에 할당된 인증키이다. 고로 데이터를 호출할 때 이 인증키를 복사해서 붙여넣기 해주어야 한다.

그리고 밑 부분, 인증키 설정 부분을 클릭 - ApiKeyAuth2 부분에 아까 확인한 인증키를 복붙 해주자.

 

이후, 밑으로 내리다 보면 밑과 같이 GET ~ 알수없는 숫자들이 있을 텐데, 클릭을 해보면 가입 사업장 내역의 일자가 나올 것이다. 현재 22.06.25일 기준 가장 최신 데이터가 20220531이기에 해당하는 부분을 눌러주고 호출을 눌러보면,

밑과 같이 RequestUrl이 뜰 것인데, 즉 데이터를 요쳥할 때 쓰는 URL이다. 

하지만 필자는 항상 저기서 데이터를 확인하면 에러코드가 떠서, Postman을 활용하여 데이터가 잘 불러와지는지 확인했다.

 

데이터포털에서 제공하는 인증키 설정을 통한 데이터 확인 방식도 좋긴 하지만 오류가 날 때가 많아서 postman을 사용하여 제대로 api가 호출되는지 확인한다. postman은 api를 활용한 개발을 한다면 상당한 도움이 될 것이다.(https://www.postman.com/ 에서 다운로드, 설치 할 수 있다)

위와 같이 postman에서 requesturl을 넣어주고, url 끝 부분 "servicekey=" 부분 다음에 나의 인증키를 넣어준다. 그리고 send를 누르면 밑과 같이 정보가 뜨는것을 확인할 수 있다. 그렇다면 데이터가 잘 불러와진 것 !!

postman의 query params를 수정하면 url에 해당하는 부분의 숫자를 바꾸어 데이터를 다르게 불러올 수 있는데. 이 api의 경우 총 데이터의 양이 "totalCount": 544122 으로 나오는 것으로 보아, 544122개 인 것을 확인할 수 있고, 한 페이지 당 10개의 데이터를 불러오기에 마지막 페이지는 자연스럽게 유추해보면 54413페이지가 마지막 페이지이고 두 개의 데이터가 뜰 것 이다.

이제 데이터가 잘 불러와지는 것을 확인했으니, 데이터 베이스에 이 데이터들을 넣어 줄 것이다.

여기서, 우리가 만들어 볼 서비스에 대해서 대략적으로 더 설명하자면 공공데이터 포털에서 불러온 데이터를 조회할 수 있는 홈페이지를 만들어야 하므로 데이터 베이스에 데이터들을 넣어줄 것이다. 데이터 베이스로는 오픈소스인 postgresql을 사용하고 데이터 베이스를 가독성 향상을 위해 pgamin4를 활용하겠다. postgresql은 sql문을 활용하여 데이터베이스 내 데이터를 조회, 추가, 삭제 등을 할 수 있는데 sql문은 검색하면서 배울 수 있기에 어렵지 않다 생각하여 채택하였다.

 

우선 postgresql을 설치해주자. 필자는 IDE로 VSC를 사용하는데, 혹시 우분투 가상환경을 사용한다면https://phoenixnap.com/kb/how-to-install-postgresql-on-ubuntu 페이지를 통해 따라하며 설치하면 되겠다.

윈도우나 맥 환경의 경우 https://www.postgresql.org/download/ 사이트를 통해 로컬 환경에 설치할 수 있다. 즉, 내 컴퓨터를 데이터베이스로 설정한다는 뜻이다.

* 설치 과정은 다른 블로거 분 것을 참고하면 될 것 같다. 나처럼 맥 사용자도 비슷한 과정일 것이다.

https://dog-developers.tistory.com/122 

 

PostgreSQL 설치 하기 (Windows 10)

PostgreSQL 설치 하기 링크 : https://www.postgresql.org/download/windows/ PostgreSQL: Windows installers Windows installers Interactive installer by EnterpriseDB Download the installer certified by E..

dog-developers.tistory.com

위 블로거 분의 글에서 접속하기, 샘플 설치까지 해보았다면 계속 진행해도 될 것이다. 그리 오래 걸리지 않으니(한 10분 정도?) 따라하고 같이 이어갔으면 좋겠다.

 

우선 지금까지 데이터베이스 역할을 할 postgresql을 설치하였으니, 이제 파이썬-플라스크 파일을 통해 데이터를 불러와 해당 데이터베이스에 입력해주어야 한다. 이후의 과정은 다음 단계에서 다루겠다.