파이썬(Python)/니트릴장갑 수출입 오픈 API

[무역|5|API] 니트릴장갑 수출입 - 공공데이터포털 API XML 기초 (3부)

JJ Goh[Certified customs broker] 2020. 7. 2. 06:00

[무역|5|API] 니트릴장갑 수출입 - 공공데이터포털 API XML 기초 (3부)

 

 

 2부에서 공공데이터포털 제공 관세청 오픈API 개발계정 활용신청을 진행하였습니다.

 

 이제 자동승인에 의거, 서비스 인증키가 발급되었습니다. 

 이 서비스 인증키는 데이터에 접근하기 위해 필수적으로 제출되어야 하는 정보이기 때문에 우선 해당 서비스 인증키를 어디에서 확인할 수 있는지 알아 보겠습니다.

 

 오픈API 서비스 인증키 확인하기

 
 
 공공데이터포털의 '마이페이지'로 이동합니다. 로그인이 유지된 상태에서 확인되는 페이지이므로, 로그아웃 상태이시면 로그인을 먼저 수행하셔야 합니다. 
 

 

보시는 것처럼 마이페이지의 왼쪽 사이드바에 카테고리가 나오는데요. 오픈API 카테고리의 인증키 발급현황을 클릭합니다.

 

그러면 인증키발급현황 페이지가 나옵니다. 

 

또다른 방법으로는 상세검색에 열람되어 있는 활용신청건의 항목을 선택합니다.

 

 

 

 

 

그러면 아래와 같은 정보창으로 이동됩니다.

일반인증키에서 그 값을 확인하실 수 있습니다. 해당 인증키는 data를 읽어 들일때 필수로 제출하게 됩니다.

 

 

 

 

 

 

참고문서 - OpenAPI 활용가이드

 

 

 이전 포스팅에서 말씀 드렸던 바와 같이, 참고문서로 링크가 걸린 OpenAPI활용가이드에는 필요한 data를 읽어 들이기 위해서 필요한 각종의 정보들이 집약 되어 있습니다. 그럼 한번 해당 압축파일에 담긴 '관세청_OpenAPI활용가이드_v2.7' 파일을 열람해 보겠습니다.

 

 소개와 관련된 내용이 있는데요. 간단히 읽어보시면 open API를 시행하게 된 취지와 활용방안 등을 참조하실 수 있습니다.

 

 중요 정보는 '2. 서비스사용'부터 나와 있네요.

 

 서비스 개요에서는 다른 내용은 제쳐 두시더라도, 아래 서비스 URL은 참조가 필요합니다. 

 

 이 URL 중 개발환경은 관세청이 이 오픈 API서비스 개발을 위해 설정한 URL입니다. 

 

 운영환경은 관세청이 제공하는 이 오픈 API서비스를 운영하는 환경의 URL입니다. 그런데, 우리처럼 오픈 API를 사용하여 개발하는 입장에서는 관세청이 제공하는 이 운영환경 서비스가 우리의 개발환경이 됩니다.

 

 따라서, data를 불러들이기 위해 지정해 주는 URL변수는 이 운영환경 값에서 출발합니다.

 

 

서비스 URL
개발환경
http://openapi.customs.go.kr/openapi/service/
운영환경
http://openapi.customs.go.kr/openapi/service/newTradestatistics

 

 

 두번째로 오퍼레이션 목록의 내용을 확인해 주셔야 합니다.

 

 관세청이 제공하는 open API서비스는 다양한 오퍼레이션을 한데 묶어 제공됩니다. 오퍼레이션은 관세청 무역 통계 사이트 기준으로 하나의 통계 카테고리를 의미합니다. 즉, 한 개의 특정 목적을 가지고 수행되는 알고리즘 하나를 가리킵니다. '품목별 수출입실적' 통계가 하나의 카테고리로 구성되어 있는 것이고, 해당 오퍼레이션은 getitemtradeList 라는 이름을 가지고 있습니다.

 

 앞선 서비스 URL과 마찬가지로 우리가 읽어 들이고자 하는 대상값은 운영환경 서비스 URL아래에 getitemtradeList라는 이름을 가지고 있습니다. 따라서, 오퍼레이션 목록의 값도 data를 불러들일 때 함께 지정해 주어야 하겠습니다.

 

 

일련번호
서비스명(국문)
오퍼레이션명(영문)
오퍼레이션명(국문)
메시지명(영문)
1
수출입통계정보
gettradeList
수출입총괄 서비스
N/A
2
getitemtradeList
품목별 수출입실적 서비스
N/A
3
getnationtradeList
국가별 수출입실적 서비스
N/A
4
gettempertradeList
성질별 수출입실적 서비스
N/A
5
getnewtempertradeList
신성질별 수출입실적 서비스
N/A
6
getNitemtradeList
품목별 국가별 수출입실적 서비스
N/A
7
getNtempertradeList
성질별 국가별 수출입실적 서비스
N/A
8
getNnewtempertradeList
신성질별 국가별 수출입실적 서비스
N/A
9
getcontinenttradeList
대륙별 수출입실적 서비스
N/A
10
geteconomytradeList
경제권별 수출입실적 서비스
N/A
11
getcustomstradeList
세관별 수출입실적 서비스
N/A
12
getkindtradeList
종류별 수출입실적 서비스
N/A
13
getporttradeList
항구/공항별 수출입실적 서비스
N/A         
14
getsidotradeList
시도별 수출입실적 서비스
N/A
15
getsidotempertradeList
시도별 성질별 수출입실적 서비스
N/A
16
getsidoitemtradeList
시도별 품목별 수출입실적 서비스
N/A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  그리고 이제 우리가 관심을 가지고 있는 '(2) [품목별 수출입실적 목록 검색] 오퍼레이션 명세로 이동해 보겠습니다.

 

 

 

 

  첫번째로 요청 메시지 명세입니다.

 

항목명(영문)
항목명(국문)
항목크기
항목구분
샘플데이터
항목설명
searchBgnDe
시작 년도월
6
1
201701
조회기간1년이내
searchEndDe
끝 년도월
6
1
201701
조회기간1년이내
searchItemCd
품목코드
10
0
0106191000
품목 코드번호

항목구분 : 필수(1), 옵션(0), 1건 이상 복수건(1..n), 0건 또는 복수건(0..n)

 

※ 조회기간은 1년이내이며 초과할 경우 조회종료일 기준으로 1년 데이터가 조회 됨

 

 이 값은 우리가 data를 불러들일 때 검색조건을 설정할 수 있도록 지정되어진 변수명입니다. 마찬가지로, URL를 불러들일 때, 해당 값을 설정해 준 값에 따라, 해당 조건에 맞는 data들이 불러와 지게 됩니다.

 

 여기서 주의할 점은 샘플데이터의 형식을 보시고, 해당 형식에 맞는 방법으로 해당 변수에 조건값을 대입해 주셔야 한다는 것입니다. 

 

 

  두번째로 응답 메시지 명세입니다.

 

항목명(영문)
항목명(국문)
항목크기
항목구분
샘플데이터
항목설명
year
기간
7
1
2017.01
기간
statKor
품목명
60
1
기타
품목명
hsCode
HS코드
10
1
0106191000
HS코드
expWgt
수출중량
15
1
5610
수출중량
expDlr
수출금액
17
1
94676
수출금액
impWgt
수입중량
15
1
2847
수입중량
impDlr
수입금액
17
1
268930
수입금액
balPayments
무역수지
15
1
-174254
무역수지

 

항목구분 : 필수(1), 옵션(0), 1건 이상 복수건(1..n), 0건 또는 복수건(0..n)

 

 우리가 데이터를 불러들이게 되면 항목명과 같은 이름을 가진 데이터들이 샘플데이터와 같은 형식으로 표출됨을 의미합니다.

 

 이번에 API 신청한 데이터의 형식은 XML입니다. XML은 HTML과 같이 태그를 달아서 데이터를 담고 있는데요. XML은 HTML의 우수한 웹 사용성에 기반하여 데이터베이스도 그와 같은 형식으로 관리하고 전송할 수 있도록 새롭제 제정한 표준이라고 간략히 설명할 수 있습니다. 따라서, XML 형식의 데이터를 열어보시면 HTML에서 보셨던 태그 구문과 같은 형태로 데이터가 존재 한다는 것을 알 수 있습니다. 그러한 이유로 parsing을 함에 있어서도 HTML을 parsing하는 것과 유사한 방식으로 처리된다고 간단히 이해를 가져가시면 되겠습니다.

 

 

 마지막으로 요청/응답 메시지 예제가 있는데요.

 

 요청 메시지를 한번 보시겠습니다.

 

http://openapi.customs.go.kr/openapi/service/newTradestatistics/getitemtradeList?searchBgnDe=201701&searchEndDe=201701&searchItemCd=0106191000&serviceKey=서비스키

 

 이 예제문을 잘라서 구분해 보겠습니다. 

 

 1) http://openapi.customs.go.kr/openapi/service/newTradestatistics/

    이 서비스의 운영환경 URL값입니다.

 

 2) getitemtradeList? 

    이 서비스 중 희망하는 operation 명입니다. '품목별 수출입실적'이구요. ?를 붙여주네요.      

 

 3) searchBgnDe=201701&

    시작연도월의 변수인데 그 값을 201701로 대입하였습니다. 즉, 2017.01을 시작연도월로 해달라고 조건을 준 것입니다. 추가적인 조건은 &를 붙여서 주게 됩니다.

 

 4) searchEndDe=201701&

    끝 연도월의 변수입니다. 201701로 대입하였습니다. 즉, 2017.01월 한 달치만 값을 달라고 조건을 주게 된 것입니다.

 

 5) searchItemCd=0106191000&

    품목코드의 변수이며, HS code 0106191000 세번의 데이터를 조회하는 것으로 조건을 주었습니다. 참고로, 0106191000세번은 '생동물 중 강아지'가 분류되는 세번입니다.

 

 6) serviceKey=서비스키

    API 인증키를 대입하는 변수로서, open API 활용신청하여 받아둔 인증키를 이 값에 대입하게 됩니다.

 

 

  

그리고 응답 메시지 예제를 보시면

 

 

<response>
<header>
<resultCode>00</resultCode>
<resultMsg>NORMAL SERVICE.</resultMsg>
</header>
<body>
<items>
<item>
<balPayments>-174254</balPayments>
<expDlr>94676</expDlr>
<expWgt>5610</expWgt>
<hsCode>0106191000</hsCode>
<impDlr>268930</impDlr>
<impWgt>2847</impWgt>
<statKor></statKor>
<year>2017.01</year>
</item>
<item>
<balPayments>-174254</balPayments>
<expDlr>94676</expDlr>
<expWgt>5610</expWgt>
<hsCode>-</hsCode>
<impDlr>268930</impDlr>
<impWgt>2847</impWgt>
<statKor>-</statKor>
<year>총계</year>
</item>
</items>
</body>
</response>
 

 

 

보이시는 것처럼 마치 HTML을 보는 것과 비슷한데요. 

잘 보시면 <balPayments>라는 tag에 -174254라는 값이 들어 있습니다. balPayments는 무역수지의 응답메시지 항목명입니다. 따라서, 무역수지 -174254라는 값이 balPayments 태그에 둘러싸여 값이 제공된 것입니다.

이러한 형식의 데이터베이스를 XML이라 부르는 것이구요.

 

이제 데이터를 불러 들이기 위한 기초 설명이 끝났습니다.

 

 이러한 이해를 바탕으로 이제 진짜 parsing을 위한 코딩을 다음 포스팅에서 다뤄 보겠습니다.

 

 

 (4부에서 계속..)

 

 

NPU(엔피유) 관세사무소

대표관세사 고장주

Tel) 031-986-7190

E-mail) sales@npucus.com

[NPU관세사무소 프로모션 페이지] https://www.tradenpu.com/npu_cus/

[무역비지니스 인텔리전스 서비스 | TradeNPU] https://www.tradenpu.com

[파이썬 실용 예제. 무역과 공공데이터] https://pdatinmylife.tistory.com

Certified Customs Broker JangJu Goh

Executive Customs Broker @ NPU Customs Consulting

CEO @ JG TradePlus

sales@npucus.com

Trade Compliance / Customs clearance management at foreign company

Working experience of Air export freight forwarding

Data Visualization / Independent development of business automation application – copyright of JGPO_Manager, JG Data Center, AutoCC and etc.

B2B consignment & direct export/import, B2C Overseas Buying Office consulting

Alibaba.com B2B trade / taobao B2C trade / Amazon.com global selling etc. Online trade regulation consulting.

Import license / Quarantine

English communication available

[TradeNPU for partnership proposal - JGTP] https://www.tradenpu.com/jgtp/

반응형