νμ¬ λ²μΈ μΉ΄λλ‘ μ± μ μ€λ³΅ ꡬ맀νμ§ μλλ‘ λμμ£Όλ κ°μΈ λμ κ΄λ¦¬ μμ€ν μ λλ€.
- νκ΅μ΄ μ λͺ© β λ€μ΄λ² Books API μ¬μ©
- μμ΄ μ λͺ© β Google Books API μ¬μ©
- μλ μΈμ΄ κ°μ§: κ²μμ΄μ νκΈ/μλ¬Έμ μλ νλ³
- Fallback μμ€ν : μ£Ό API μ€ν¨μ μλμΌλ‘ 보쑰 API μλ
- μΈμ΄λ³ μ΅μ νλ API μ¬μ©: νκ΅μ΄ μ λͺ©μ λ€μ΄λ² Books API, μμ΄ μ λͺ©μ Google Books API
- μλ μΈμ΄ κ°μ§: κ²μμ΄μ μΈμ΄λ₯Ό μλμΌλ‘ νλ³νμ¬ μ΅μ μ API μ ν
- Fallback μμ€ν : μ£Ό APIμμ κ²°κ³Όκ° μμΌλ©΄ μλμΌλ‘ 보쑰 API μλ
- μ λͺ©, μ μ, μΆνμ¬, μΆκ°μΌ, ISBN, μ± νμ§, μκ°κΈ λ± μλ μμ§
- μ΄λ―Έ 보μ ν μ± μΈμ§ μλμΌλ‘ κ²μ¬
- ISBN λ° μ λͺ© κΈ°λ° μ€λ³΅ κ²μ¬
- μ€λ³΅ κ°λ₯μ±μ΄ μμ λ κ²½κ³ λ©μμ§ νμ
- ꡬ맀 λ μ§, κ°κ²© μ 보 μ μ₯
- μ΄ κ΅¬λ§€ κΈμ‘ ν΅κ³ μ 곡
- κ°μΈ λ©λͺ¨ λ° νκΈ° μ μ₯ κ°λ₯
- μ λͺ©, μ μλͺ μΌλ‘ λΉ λ₯Έ κ²μ
- κ°κ²© μ 보 μ 무, λ©λͺ¨ μ 무, ꡬ맀 μκΈ°λ³ νν°λ§
- λ€μν μ λ ¬ μ΅μ (μ΅μ μ, μ λͺ©μ, μ μμ)
cd book-tracker
pip install -r requirements.txtνκ΅μ΄ λμ κ²μ νμ§ ν₯μμ μν΄ λ€μ΄λ² API ν€λ₯Ό μ€μ ν μ μμ΅λλ€.
# νκ²½ μ€μ νμΌ λ³΅μ¬
cp .env.example .env
# .env νμΌμ μ΄κ³ λ€μ΄λ² API ν€ μ
λ ₯
# NAVER_CLIENT_ID=your_client_id
# NAVER_CLIENT_SECRET=your_client_secretπ λ€μ΄λ² API ν€ λ°κΈ λ°©λ²: NAVER_API_SETUP.md μ°Έκ³
python app.pyhttp://localhost:8080
- ννμ΄μ§μμ μ± μ λͺ© μ λ ₯ (νκ΅μ΄/μμ΄ μλ κ°μ§)
- μ¬μ©λ API μ 보 νμΈ (νλμ μ 보 λ°μ€)
- κ²μ κ²°κ³Όμμ ν΄λΉ μ± μ ν
- ꡬ맀 κ°κ²©κ³Ό λ©λͺ¨ μ λ ₯ (μ νμ¬ν)
- "μ± μΆκ°" λ²νΌ ν΄λ¦
- μλ¨ λ©λ΄μμ "μ± λͺ©λ‘" ν΄λ¦
- κ²μ, νν°, μ λ ¬ κΈ°λ₯ νμ©
- "μμΈλ³΄κΈ°"λ‘ μ± μ 보 νμΈ
- νκ΅μ΄: "νμ΄μ¬", "ν΄λ¦° μ½λ", "μ΄νν°λΈ μλ°" β λ€μ΄λ² API μ¬μ©
- μμ΄: "Clean Code", "Python", "Effective Java" β Google Books API μ¬μ©
- Backend: Python Flask
- Database: SQLite
- Frontend: Bootstrap 5, jQuery
- APIs:
- λ€μ΄λ² Books API (νκ΅μ΄ μ΅μ ν)
- Google Books API (μμ΄ μ΅μ ν)
- Icons: Font Awesome
- 1μμ: λ€μ΄λ² Books API (νκ΅ λμμ μ΅μ ν)
- 2μμ: Google Books API (Fallback)
- 1μμ: Google Books API (κ΅μ λμμ μ΅μ ν)
- 2μμ: λ€μ΄λ² Books API (Fallback)
- λ€μ΄λ² API ν€κ° μμΌλ©΄ λͺ¨λ κ²μμμ Google Books API μ¬μ©
- μ ν리μΌμ΄μ μ μ μμ μΌλ‘ λμνλ©° κΈ°λ₯ μ ν μμ
CREATE TABLE books (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
authors TEXT,
publisher TEXT,
published_date TEXT,
isbn TEXT,
description TEXT,
thumbnail_url TEXT,
purchase_date DATETIME DEFAULT CURRENT_TIMESTAMP,
price REAL,
notes TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);- λ°κΈλ°μ API ν€κ° μμΌλ©΄ λ μ νν νκ΅μ΄ λμ κ²μ κ°λ₯
- API ν€ μμ΄λ μ μ λμ (Google Books API μ¬μ©)
- μΌμΌ μ¬μ©λ μ ν: 25,000ν
- λ³λ μΈμ¦ μμ΄ μ¬μ© κ°λ₯
- μμ΄ λμ λ° κ΅μ λμμ μ΅μ ν
- λ¬΄λ£ μ¬μ©λ μ ν μμ
- κ°μΈ μ¬μ© λͺ©μ μΌλ‘ μ€κ³λμμ΅λλ€
- API ν€λ νκ²½λ³μλ‘ κ΄λ¦¬νμΈμ
- λ°μ΄ν°λ² μ΄μ€ νμΌ(
books.db) λ°±μ μ κΆμ₯ν©λλ€
μ΄ μ ν리μΌμ΄μ μ Railwayλ₯Ό ν΅ν΄ 무λ£λ‘ μ¨λΌμΈ λ°°ν¬ν μ μμ΅λλ€.
π λ°°ν¬ κ°μ΄λ: RAILWAY_DEPLOY.md μ°Έκ³
μ£Όμ μ₯μ :
- λ¬΄λ£ νΈμ€ν (μ $5 ν¬λ λ§)
- μλ HTTPS
- κΈλ‘λ² CDN
- μ΄λμλ μ κ·Ό κ°λ₯
- μ± μ 보 μμ /μμ κΈ°λ₯
- μΉ΄ν κ³ λ¦¬/νκ·Έ μμ€ν
- μ½μ μν κ΄λ¦¬
- λ°μ΄ν° λ΄λ³΄λ΄κΈ°/κ°μ Έμ€κΈ°
- λͺ¨λ°μΌ μ± μ§μ
- μλΌλ API μΆκ° μ°λ
- Railway λ°°ν¬ μ§μ β¨
κ°μΈ μ¬μ© λͺ©μ μΌλ‘ μμ λ‘κ² μ¬μ©νμΈμ.