수출 기초 (3) - 서류 자동 생성
실습 시간: 1.5시간 필요 도구: Google Sheets, Google AI Studio (Gemini API), Apps Script 산출물: 수출 서류 자동 생성 시스템
📚 이전 실습: 무역 정보 검색에서 규제, 관세, 인증 조회 방법을 배웠습니다.
💡 실습 2: 수출 서류 자동 생성 (1.5시간)
문제 상황
현실:
- 매일 반복되는 서류 작성 (Invoice, Packing List, B/L)
- 오타, 계산 실수로 클레임 발생
- 서류당 30분 소요 → 하루 10건이면 5시간
목표:
- 주문서 입력만으로 모든 서류 자동 생성
- HS Code 자동 분류
- 관세 계산 자동화
Step 1: Google Sheets 주문 템플릿 만들기 (20분)
1-1. 새 시트 생성
Google Sheets에서 “수출 주문 관리” 시트 생성
시트1: 주문 마스터
| A | B | C | D | E | F | G | H | I | J |
|---|---|---|---|---|---|---|---|---|---|
| 주문번호 | 바이어명 | 제품명 | 수량 | 단가(USD) | 총액 | Incoterms | 출발지 | 도착지 | 서류생성 |
| ORD001 | Credo Beauty | 한방 세럼 | 100 | 22.5 | 2,250 | FOB Seoul | Incheon Port | LA Port | [생성] |
시트2: 제품 마스터
| A | B | C | D | E | F |
|---|---|---|---|---|---|
| 제품코드 | 제품명(영문) | 제품명(한글) | HS Code | 단가(USD) | 무게(kg) |
| PRD001 | Herbal Essence Serum | 한방 세럼 | 3304.99 | 22.5 | 0.15 |
시트3: 바이어 마스터
| A | B | C | D | E | F |
|---|---|---|---|---|---|
| 바이어코드 | 바이어명 | 주소 | 연락처 | 담당자 | 이메일 |
| BUY001 | Credo Beauty | 123 Market St, San Francisco, CA 94103 | +1-415-xxx-xxxx | Sarah Kim | sarah@credo.com |
1-2. 수식으로 자동 계산
F열 (총액):
=D2*E2
J열 (총 무게):
=SUMIF(제품마스터!$A:$A, C2, 제품마스터!$F:$F) * D2
Step 2: Google AI Studio에서 Gemini API 설정 (30분)
2-1. API 키 발급
- aistudio.google.com 접속
- “Get API key” 클릭
- 새 API 키 생성
- 복사해서 안전한 곳에 보관
2-2. Apps Script 설정 - Vibe Coding
핵심 학습: 완성된 코드를 복붙하는 대신, Gemini에게 단계별로 코드를 생성받습니다.
Google Sheets에서: 확장 프로그램 → Apps Script 클릭
Step 1: 기본 구조 요청
Gemini에게 다음 프롬프트 입력:
Google Apps Script로 수출 서류 자동 생성 시스템을 만들어줘.
## 환경
- Google Sheets에서 실행
- Gemini API로 서류 내용 생성
## 시트 구조
- 주문 마스터: 주문번호(A), 바이어명(B), 제품명(C), 수량(D), 단가(E), 총액(F), Incoterms(G), 출발지(H), 도착지(I)
- 바이어 마스터: 바이어코드(A), 바이어명(B), 주소(C), 연락처(D), 담당자(E), 이메일(F)
## 필요한 기능
### 1. 메뉴 시스템 (onOpen)
"🚢 수출 서류 생성" 메뉴:
- "📄 Invoice 생성" → showInvoiceDialog 함수
- "📦 Packing List 생성" → showPackingListDialog 함수
- "🔍 HS Code 조회" → showHSCodeDialog 함수
### 2. Gemini API 호출 함수 (callGeminiAPI)
- prompt를 받아 Gemini API 호출
- 응답 텍스트 반환
- 에러 처리
### 3. API 키 설정
코드 상단에 변수:
- API_KEY (Gemini API 키)
- API_URL (Gemini 2.0 Flash 엔드포인트)
## 출력
- 한글 주석 포함
- 에러 처리
Step 2: HS Code 조회 함수 요청
getHSCode 함수를 구현해줘.
## 동작
1. 제품명을 입력받음
2. Gemini API로 HS Code 추천 요청
3. 6자리 HS Code만 반환 (숫자만)
## 참고
- callGeminiAPI 함수 사용 (이미 구현됨)
Step 3: Invoice 생성 함수 요청
generateInvoice 함수를 구현해줘.
## 동작
1. 주문번호를 입력받음
2. 주문 마스터에서 해당 주문 정보 조회
3. 바이어 마스터에서 바이어 정보 조회
4. Gemini API로 Commercial Invoice 생성 요청
5. Invoices 시트에 결과 저장
## Invoice 프롬프트에 포함할 내용
- Invoice No, Date, Buyer, Product, Quantity, Unit Price, Total Amount, Incoterms
- 바이어 주소
- 판매자 정보 (하드코딩)
- "표준 Commercial Invoice 형식, 마크다운 출력" 요청
## 에러 처리
- 주문번호 못 찾으면 Error throw
Step 4: 다이얼로그 함수 요청
showInvoiceDialog, showHSCodeDialog 함수를 구현해줘.
## 동작
- SpreadsheetApp.getUi().prompt로 입력 받기
- OK 버튼 클릭 시 해당 함수 호출
- 결과/에러를 alert로 표시
Step 5: 코드 통합 및 API 키 입력
생성된 코드를 Apps Script에 붙여넣고, API 키 수정:
const API_KEY = "여기에_발급받은_API_키_붙여넣기";
2-3. 저장 및 권한 설정
- 저장 (Ctrl+S)
- “onOpen” 함수 실행 (▶ 버튼)
- 권한 요청 → “고급” → “안전하지 않은 페이지로 이동” → “허용”
Step 3: 서류 생성 테스트 (20분)
3-1. Invoice 생성
- Google Sheets 새로고침
- 메뉴에 ”🚢 수출 서류 생성” 추가됨
- ”📄 Invoice 생성” 클릭
- 주문번호 입력 (예: ORD001)
- 결과 확인
생성된 Invoice 예시:
# COMMERCIAL INVOICE
**Invoice No:** ORD001
**Date:** 2026-01-22
**Seller:** K-Beauty Organic Co., Ltd.
123 Gangnam-daero, Seoul, South Korea
Tel: +82-2-1234-5678
**Buyer:** Credo Beauty
123 Market St, San Francisco, CA 94103, USA
---
| Item | Description | HS Code | Quantity | Unit Price | Amount |
| ---- | -------------------- | ------- | -------- | ---------- | --------- |
| 1 | Herbal Essence Serum | 3304.99 | 100 pcs | $22.50 | $2,250.00 |
**Incoterms:** FOB Seoul
**Total Amount:** USD $2,250.00
---
**Payment Terms:** T/T 30 days
**Origin:** Republic of Korea
3-2. HS Code 자동 조회
- ”🔍 HS Code 조회” 클릭
- 제품명 입력 (예: “organic face cream”)
- Gemini가 HS Code 추천 (예: 330499)
Step 4: Packing List & B/L 추가 - Vibe Coding (20분)
Gemini에게 추가 함수 요청:
generatePackingList, generateBL 함수를 추가해줘.
## generatePackingList 함수
1. 주문번호를 입력받음
2. Gemini API로 Packing List 생성 요청
3. 프롬프트 내용: 표준 Packing List 형식 (Carton 번호, 제품명, 수량, Net/Gross Weight, Dimensions)
4. 마크다운 표 형식으로 출력 요청
## generateBL 함수
1. 주문번호를 입력받음
2. Gemini API로 B/L 초안 생성 요청
3. 프롬프트 내용: Shipper, Consignee, Port of Loading/Discharge 정보
4. 표준 B/L 형식으로 작성 요청
## 참고
- callGeminiAPI 함수 사용 (이미 구현됨)
메뉴 확장 요청:
onOpen 함수를 업데이트하고, generateAllDocuments 함수를 추가해줘.
## 메뉴 항목 추가
- "🚢 B/L 초안 생성" → showBLDialog
- "📋 모든 서류 생성" → generateAllDocuments
## generateAllDocuments 함수
1. 주문번호 입력 받기 (prompt)
2. Invoice, Packing List, B/L 순서로 생성
3. 완료 알림 표시
✓ 실습 2 체크 포인트
□ Google Sheets 주문 템플릿 완성
□ Gemini에게 기본 구조 + API 호출 함수 생성 요청
□ Gemini에게 HS Code, Invoice 생성 함수 요청
□ Gemini에게 Packing List, B/L 함수 요청
□ 생성된 코드 통합 및 API 키 입력
□ Invoice 자동 생성 테스트 완료
□ 모든 서류 한 번에 생성 가능
💡 응용하기
추가 기능 아이디어:
-
관세 계산 자동화
function calculateDuty(hsCode, country, amount) { const prompt = ` HS Code ${hsCode} 제품을 ${country}로 수출 시 관세율은? 총액 $${amount}에 대한 관세 계산. `; return callGeminiAPI(prompt); } -
FTA 적용 여부 자동 판단
- NotebookLM에 FTA 협정서 업로드
- Gemini로 원산지 판정
-
서류 번역 (한↔영)
- Invoice를 한글로도 자동 생성
- 바이어에게는 영문, 세관에는 한글
-
이메일 자동 발송
- Gmail API 연동
- 서류 생성 후 바이어에게 자동 발송
📖 다음 단계
- 실습 (4): 바이어 이메일 자동 응대 - 80% 완성도 초안 자동 생성
- 중급: 수출 전략 수립 - 신규 시장 진출, 가격 경쟁력 분석