[수출입 데이터 자동화 03] 관세청 수출입 자료 파이썬으로 받아보기|XML·CSV 파일로 저장하기

 

오늘은 10월 1일이다. 어제 파이썬 작업까지 해놓았으니 오늘은 발행되는 자료를 파이썬으로 어떻게 받아보는지 시도해보려 한다. 과연 웹페이지를 찾아보는 것과 어떤 차이가 있어서 내가 이리 고생을 해대는 것인지 증명해보고 싶기도 하다.

어제는 관련 자료가 나오는 날이 아니어서 202508 과거 자료를 시험 삼아 요청해봤고, 오늘은 202609로 해당 일자를 변경해서 오늘 10월 1일, 매달 1일에 나오는 자료인 한 달 전체 잠정치를 요청해서 받아봤다.

그런데 여기서 ‘받아봤다’는 의미가 모호하다. 이게 내가 알아볼 수 있는 파일이 아니기 때문이다.

나의 상상으로는 파이썬으로 명령을 주면 나의 폴더에 자료가 툭 떨어지는 거였다. 맥을 사용할 때 서버로 접속해서 받거나 상대방이 나에게 명령어를 줘서 클릭하면 자료가 받아지는 그런 과정을 생각했었다.

그러나 터미널 창에 알 수 없는 숫자와 문자들의 나열로 자료를 요청해 받아보는 것이 끝났다고 한다. 이걸 어떻게 설명할 수가 없어서 답답하긴 하다. 자동화까지 끝내봐야 이걸 이해하려나 하는 생각도 들고.

1. 작업의 전체 흐름

글에 두서가 없어서다. 아래 과정을 먼저 정리해놓는 게 좋을 것 같다.

진행 순서

관세청 서버 → API로 자료 요청 → Python이 자료를 받음 → 처음에는 터미널에 표시해서 확인 → print(data)를 없앰 → 같은 자료를 다시 요청 → XML 파일로 폴더에 저장 → XML을 열어보니 여전히 알아보기 어려움 → Python으로 XML을 CSV 파일로 바꿈 → 내가 열어볼 수 있는 파일 생성

2. 10월 1일 수출입 자료 받아보기

어제는 과거 자료로 연결이 되는지만 확인했으니, 오늘은 파일 경로를 정리하고 코드를 수정해 이전 자료가 아닌 오늘 1일 발행된 자료를 받아보는 것으로 바꿨다.

처음에는 자료가 제대로 들어오는지 확인하기 위해 터미널 화면에 표시해봤다. 이후 파일로 저장하는 과정에서는 터미널에 원자료를 표시하는 단계는 건너뛰게 된다.

수출입 자료 발표 일정 다시 확인하기

이건 아직도 나는 헷갈리는 일정인데 다시 한번 여기에 정리해두려고 한다.

수출입 자료 발표 일정

11일 → 그달 1~10일 잠정치

21일 → 그달 1~20일 잠정치

익월 1일 → 전월 1일~말일까지 한 달 전체 잠정치

매월 15일 → 전월 한 달의 확정치

매년 2월 → 연간 확정치

이런 스케줄도 눈으로 한번 쓱 보면 체감하지 못한다. 특히 필자의 경우 더더욱 그렇다. 이렇게 시간을 들여 한번 해보는 게 백번 눈으로 보는 것보다 낫다.

나처럼 코딩에 대해 아무것도 모르는 상황이라면 AI와 함께 작업할 텐데, 제미나이는 도저히 사용을 못하겠어서 ChatGPT를 구독했다. 두 가지밖에 써보지는 않았지만 제미나이와는 너무 씨름을 많이 해서 요즘 작업은 좀 홀가분한 느낌이랄까?

오늘 글에는 코드박스가 없다. 내가 도저히 따라잡을 수 없기도 하고 오류가 별로 없기도 했고, 어차피 AI와 작업을 할 테니 필자의 글은 과정의 흐름과 결과를 기록하는 용도가 되겠다.

ChatGPT는 나의 발행된 블로그까지 분석할 수 있으니 나의 지금 진행 상태를 파악하기에 최적이다. 이렇게 기록을 해놔야 이전의 문제점과 앞으로의 방향을 모두 잡을 수 있다. 그러니 이렇게 과정을 남기는 것은 헛되지 않았다는 생각이 든다.

3. 받은 자료 데이터 파일로 저장하기

앞에서는 처음 해보는 작업이라 관세청에서 자료가 제대로 들어오는지 확인하기 위해 터미널 화면에 그대로 출력해봤다. 하지만 앞으로는 굳이 터미널에 복잡한 원자료를 표시할 필요가 없다고 한다.

이번에는 같은 자료를 다시 요청하되 터미널 화면에 출력하는 대신 내가 만들어놓은 폴더에 데이터 파일로 바로 저장해보려고 한다. 이제야 내가 처음 상상했던 ‘파이썬에 명령을 내리면 내 폴더에 자료가 툭 떨어지는 모습’에 조금 가까워지는 것 같다.

XML 파일로 저장

ChatGPT와 터미널에서 이렇게 저렇게 요렇게 하니 내가 지정한 폴더에 파일이 생겼다. 파일 이름은 아래와 같다.

202609_customs_provisional.xml

위 파일을 기분 좋게 열어보니 역시나 숫자들의 나열이다. 컴퓨터 세상에서 혼자 원시시대에 살다가 온 느낌이라고나 할까? 음식점에 가서 메뉴판을 보고 주문을 하고 싶은데 키오스크를 이용하지 못하는 상황이라 뒤처지는 느낌이라고 할까? 물론 기분이 좋지는 않다.

그래서 위 XML 파일을 필자가 확인할 수 있게 작업 과정을 한번 더 거쳐야 했다.

XML을 CSV 파일로 바꾸기

또 이렇게 저렇게 요렇게 ChatGPT가 시키는 대로 하다 보니 터미널 창에 아래와 같은 단어가 나타났다.

CSV 파일 저장 완료

한글을 보니 정말 반가웠다. 이제 성공했나 보다. 내가 지정한 폴더에도 아래 이름과 같은 파일이 생겼다.

202609_customs_provisional.csv

위 CSV 확장자가 붙은 이 파일을 설레는 마음으로 열어봤다. 그러나 정말 달랑 15열 4행의 표가 전부이다. 그것도 모두 영어와 숫자로 된 정말 간략한 표 말이다. 이걸로 뭘 한다는 거지? 와... 그냥 웹페이지에서 보면 될 잘 정리된 자료를 놔두고 이 고생을 했는데 이렇게 보이는 게 맞나 싶었다.

현재 폴더에 생긴 파일

현재 지정된 폴더에는 아래와 같은 파일이 생겨 있다.

customs_10day_test.py
관세청에 자료를 요청하고 XML로 저장하는 것

202609_customs_provisional.xml
관세청에서 받아 저장한 자료

xml_to_csv.py
XML을 CSV로 바꾸는 것

202609_customs_provisional.csv
내가 실제로 열어서 표 형태로 확인할 파일

4. 파일 저장까지는 성공했다

일단 오늘은 여기까지다. 파이썬으로 자료를 요청하고 파일로 저장하는 것까지는 성공했다. 그런데 이게 실제로 쓸모가 있는지는 아직 전혀 모르겠다. 다음에는 이 숫자들이 무엇을 의미하는지부터 알아봐야 할 것 같다.

📌 현재 진행 상태

파이썬으로 자료 요청 → XML 저장 → CSV 변환까지 성공.

다음 단계는 CSV에 들어 있는 숫자와 항목이 무엇을 의미하는지 확인하는 것이다.

 

댓글

이 블로그의 인기 게시물

학점은행제 아동학 학사 학위 신청 방법, 보육교사 2급 자격증 취득 순서 정리

블로그 작성 시간을 줄이자. 크롬 다크리더 사용 글자색이 회색으로 보이는 방법 해결

주식 데이터 자동 기록 기초 EP01. 구글 클라우드 콘솔 설정 및 블로거 API 연동