글자 크기

관세 정산서류, 이제 자동으로 정리한다

관세 정산서류, 이제 자동으로 정리한다

귀찮음의 시작

1688에서 물건을 들여오면 관세사무소에서 메일이 온다.

“정산내역 송부드립니다.”

PDF 첨부파일.

열어보면 관세, 부가세, 통관수수료가 적혀있다.

이걸 원가계산서에 옮겨 적어야 한다.

한 건이면 괜찮다.
근데 주문이 쌓이면?

이메일 열고, PDF 다운받고, 숫자 찾고, 엑셀 열고, 입력하고.

이게 쌓이면 진짜 귀찮다.


자동화하면 되잖아

Claude Code에게 물었다.

“관세사무소 이메일에서 PDF 자동으로 받아서 파싱할 수 있어?”

“응 만들어봐.”

30분 뒤.

./run.sh

터미널에 결과가 쏟아진다.

📧 발견된 이메일: 6건

📨 [대교관세사무소] 520404033870 정산내역
  ✅ 다운로드: 정산서류.pdf

📄 처리 중: 정산서류.pdf
  B/L: 520404033870
  관세+부가세: 2,110원
  통관수수료: 12,000원

된다.


어떻게 만들었나

1. Gmail에서 PDF 다운로드

Gmail API로 특정 발신자의 이메일을 검색한다.

query = 'from:dk2@dkcus.com subject:정산내역 has:attachment'

대교관세사무소에서 온 메일 중 첨부파일이 있는 것만.

PDF 파일을 inbox/ 폴더에 저장.
이미 처리한 건 건너뛴다.

2. PDF 파싱

pdfplumber로 PDF를 열어서 텍스트를 추출한다.

정규식으로 필요한 숫자를 찾는다.

# B/L 번호
bl_match = re.search(r'B/Ls*(?:번호|No)s*[:s]*(d{12})', text)

# 통관수수료
fee_match = re.search(r'통관s*수수료s*([0-9,]+)', text)

# 관세+부가세 (납부금액)
payment_match = re.search(r'납기내s*d+s+([0-9,]+)', text)

관세사무소마다 PDF 양식이 다를 수 있다.
우리 관세사 양식에 맞춰서 패턴을 조정했다.

3. 한 줄 실행

./run.sh           # 다운로드 + 파싱
./run.sh fetch     # 다운로드만
./run.sh parse     # 파싱만
./run.sh test PDF  # 테스트

끝.


결과물

6건의 정산서류가 자동으로 정리됐다.

B/L 번호 관세+부가세 통관수수료 품명
520404033870 2,110원 12,000원 매트
520404033310 14,690원 12,000원 기타
520404033553 3,150원 12,000원 모자
591451025623 10,650원 12,000원 가방
591451023140 3,910원 12,000원 플라스틱
591451021751 19,910원 12,000원 의류

이제 이메일 확인 안 해도 된다.
터미널에서 한 줄이면 끝.


배운 것

귀찮음은 자동화의 신호다.

매번 반복하는 작업이 있다면,
그건 자동화할 수 있다는 뜻이다.

Claude Code와 대화하면서 만들었다.
코드를 한 줄씩 설명하지 않아도 된다.
“이거 해줘”하면 만들어준다.

막히면 같이 디버깅한다.
PDF 양식이 이상해서 숫자가 안 잡혔는데,
raw text 출력해서 패턴 찾고 수정했다.

혼자 코딩하는 것보다 빠르다.


다음 단계

  • 원가계산서 자동 업데이트
  • 넥스트배송 카톡 알림도 파싱
  • 크론잡으로 매일 자동 실행

1인 사업자의 무기는 자동화다.

반복 작업을 없애면 시간이 생긴다.
그 시간에 더 중요한 일을 할 수 있다.

작은 자동화가 쌓이면 큰 차이가 된다.


— Bloom late, but stronger. —

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다