해외주식을 증여할 때 증여한 자산의 금액을 직접 계산하여 증빙 서류를 만들어주는 도구입니다.
- 증여 금액 계산: 증여일 전 2개월 + 1일부터 후 2개월 - 1일까지의 종가 평균 × 매매기준환율
- 주가 데이터: finance.yahoo.com 에서 자동 수집
- 환율 데이터: smbs.biz에서 자동 수집 (매매기준환율)
- 증빙 서류 생성(PDF):
- 주가 데이터 + 종가 평균
- 환율 증빙
| 구분 | 기술 |
|---|---|
| Backend | FastAPI + Python 3.13 |
| Frontend | Vanilla JS + HTML/CSS |
| reportlab | |
| Scraping | requests + BeautifulSoup |
| Deploy | Docker + OCI |
- Python 3.13+
- Docker (optional)
# 설치
uv pip install .
# 실행
uvicorn backend.main:app --reload
# 브라우저에서 열기
open http://localhost:8000# 빌드 & 실행
docker-compose up -d
# 브라우저에서 열기
open http://localhost:8000
# 로그 확인
docker-compose logs -f# 테스트
pytest backend/tests/ -v
# 린트
ruff check .
# 타입 체크
mypy backend/주의: 증여일 기준 후 2개월 기간이 모두 지난 뒤에만 계산할 수 있습니다. 예를 들어 2025-11-06 증여분은 2026-01-06부터 계산 가능합니다.
curl -X POST http://localhost:8000/api/calculate \
-H "Content-Type: application/json" \
-d '{
"gift_date": "2025-11-06",
"stocks": [
{"ticker": "AAPL", "qty": 100, "currency": "USD"}
]
}'{
"gift_date": "2025-11-06",
"stocks": [
{
"ticker": "AAPL",
"qty": 100,
"currency": "USD",
"price_average": "150.00",
"period_start": "2025-09-07",
"period_end": "2026-01-05",
"exchange_rate": "1350.00",
"gift_amount_krw": "20250000.00"
}
],
"total_gift_amount_krw": "20250000.00",
"exchange_rate_date": "2025-11-06"
}계산 불가 예시:
{
"detail": {
"code": "INSUFFICIENT_POST_GIFT_WINDOW",
"message": "증여일 기준 후 2개월 기간이 아직 지나지 않아 현재는 계산할 수 없습니다. 2026-01-06부터 다시 시도해 주세요.",
"available_from": "2026-01-06",
"gift_date": "2025-11-06"
}
}gifttax/
├── frontend/ # 프론트엔드
│ ├── index.html
│ ├── style.css
│ └── app.js
├── backend/ # 백엔드
│ ├── main.py # FastAPI 앱
│ ├── api/
│ │ └── router.py # API 라우터
│ ├── services/
│ │ └── calculator.py # 계산 로직
│ ├── tax/ # 세금 계산 (예정)
│ ├── integrations/
│ │ └── scraper/ # 웹 크롤러
│ │ ├── investing.py
│ │ ├── smbs.py
│ │ └── yahoo.py
│ ├── pdf/
│ │ └── generator/ # 파일 생성기
│ │ ├── exchange_rate_pdf.py
│ │ └── gift_calculation_pdf.py
│ ├── models/ # Pydantic 모델
│ └── tests/ # 테스트
├── Dockerfile
├── docker-compose.yml
└── pyproject.toml
MIT