공공데이터 api를 활용해 공항버스 시간표를 호출 하는 방법을 알아 보도록 하겠습니다. 해당 프로젝트는 파이썬 언어로 진행 되면 공항버스 시간표 어플리케이션을 제작하는 첫 단계 입니다. 공항버스 시간표를 활용하고자 한다면 도움이 되는 내용이니 끝까지 읽어 보시기 바랍니다.
공공데이터 포털 사이트 활용신청 하기
공공데이터 api를 활용하기 위해서는 공공데이터 포털 사이트에서 활용신청을 해야 합니다. 해당 포스트에서는 회원가입이 모두 이루어졌다는 전제하에 활용신청 방법 순서를 다음과 같이 안내 합니다.
- 공공데이터 포털 사이트에 접속 한다. (https://www.data.go.kr)
- 왼쪽 상단 메뉴 중 가장 왼쪽에 위치한 ‘로그인’ 버튼을 클릭 해 로그인을 진행한다.
- 공식 페이지 중앙에 위한 검색창에 ‘공항버스’를 입력 후 결과를 확인한다.
- 두 번째 섹션에 위치한 오픈 api 항목에서 한국공항공사_전국공항 버스노선으로 이동 한다.
- 활용신청 버튼을 클릭
위의 5단계를 순서대로 진행하고 나면 10분 내외로 활용신청 승인이 나고 그 시점 부터 api 호출이 가능 해 집니다.
공항버스 시간표 활용가이드 읽어보기
이제 공항버스 시간표 정보를 확인 하기 위해 api 활용가이드를 읽어봐야 합니다. 개발계정 상세보기로 이동 후 두 번째 섹션 서비스 정보의 참고 문서란에 해당 파일이 업로드 되어 있는데요. 이를 더블클릭 해 다운로드 후 실행 합니다. 해당 문서에는 다음과 같은 내용이 기재 되어 있습니다.
- 서비스명 : 전국공항 버스노선 정보
- 데이터 표준 : XML
- END POINT URL : http://openapi.airport.co.kr/service/rest/AirportBusInfo/businfo?schAirport=GMP&serviceKey=인증키
- 요청변수 : 공공데이터포털에서 받은 인증키, 페이지번호, 한 페이지 결과 수, 공항식별문자
위의 내용을 미루어 보았을 때 END POINT URL과 요청변수를 적절히 조합하면 공항버스 시간표를 호출 할 수 있음을 머리로 이해가 되었습니다.
공항버스 시간표 API 호출 해 보기
이제는 END POINT URL과 요청변수를 조합 해서 공항버스 시간표를 호출 해 보도록 하겠습니다. 앞서 말했듯 개발언어는 파이썬으로 진행하며, 코드 에디터는 VSCODE를 사용 하도록 하겠습니다. 효율적인 개발 환경 구축을 위해 가상 환경에 진입 해 주시기 바라며, 가상환경 진입이 익숙하지 않다면 아래 첨부 된 포스팅으로 이동 해 확인 해 주세요
파이썬을 이용해 api를 호출 할 때 requests 라이브러리를 이용 합니다. VSCODE 실행 후 터미널 창을 열어 pip install requests를 실행 해 라이브러리를 설치 합니다. 설치가 끝났다면 에디터 창에 다음과 같이 import 합니다.
import requsts
requests 라이브러리는 api를 호출 할 url과 호출 조건을 결정하는 파라미터의 두 개의 매개변수를 필요로 하며, 개발 계정 상세 정보를 참고 해 다음과 같이 코드를 작성 합니다.
URL = "http://openapi.airport.co.kr/service/rest/AirportBusInfo/businfo"
params= {
"ServiceKey" : " 부여된 서비스키"
"pageNo" : 1,
"numOfRows" : 10,
"schAirport" : "CJJ"
}
URL은 END POINT URL이며, params는 아래 사진과 같이 한국공항공사_전국공항 버스노선 오픈 API 상세를 보면 확인 할 수 있습니다. 작성 법은 위의 코드를 참고 해 작성하면 됩니다.

URL과 params 두개의 매개변수를 requests 라이브러리의 get 매서드를 활용해 호출 하고 그 내용을 res라고 하는 변수에 담아 보도록 합니다.
res = requests.get (URL, params=params)
다음은 지금까지 작성 된 코드를 기반으로 결과물을 확인 할 차례 인데요. 텍스트 형태로 출력 해 보도록 하겠습니다. 만약, 작성 된 코드에 문제가 있다면, 어떤 오류가 있는지도 출력하는 코드도 같이 작성 해 보도록 하겠습니다.
if res.status_code == 200:
print(res.text)
else:
print(f"error: {res.status_code}")
위의 코드를 분석 해 보면 만약 res 변수에 담긴 객체가 정상적으로 200 코드를 반환한다면 res를 텍스트 형태로 출력 하고, 그렇지 않으면 코드 번호를 반환하라는 의미 입니다. 위 코드는 프로그램을 개발한다면 매우 자주 나타나는 코드 이므로, 관용적 표현으로 알아두는 것이 좋습니다.

코드 실행 후 위와 같은 내용이 터미널 창에 출력 된다면, 올바른 코드를 작성 했다고 볼 수 있습니다. 다만, 아쉬운 점은 정리가 덜 되어 있다는 것 인데요. 다음 포스트에서는 깔끔하게 정리하는 방법을 확인 해 보도록 하겠습니다. 여기까지 공공데이터 api를 활용해 공항버스 시간표를 호출 해 봤습니다.