π Kakao API + Vercel νκ²½λ³μ νΈλ¬λΈμν μ 리
1οΈβ£ λ¬Έμ μν©
μΉ΄μΉ΄μ€ API (곡μ / λ‘κ·ΈμΈ) μ¬μ© μ μλμ κ°μ μ€λ₯ λ°μ
β λν μλ¬
- 4011: μλͺ»λ μ± ν€
- 4019: νμ©λμ§ μμ λλ©μΈ
- SDK μ΄κΈ°ν μλ¨
2οΈβ£ ν΅μ¬ μμΈ
π₯ κ°μ₯ μ€μν μμΈ
π Vercelμ νκ²½λ³μλ₯Ό λ±λ‘νμ§ μμ
π μ€μ λμ νλ¦
.env.local (λ‘컬)
β μ μ μλ
Vercel (λ°°ν¬)
β env μμ
β import.meta.env = undefined
β Kakao.init(undefined)
β μΈμ¦ μ€ν¨ (4011)
3οΈβ£ νκ²½λ³μ ꡬ쑰 μ΄ν΄
π .env.local (λ‘컬 νκ²½)
- λ‘컬 κ°λ° μ μ©
- Gitμ ν¬ν¨λμ§ μμ
VITE_KAKAO_JAVASCRIPT_KEY=μΉ΄μΉ΄μ€JSν€
βοΈ Vercel Environment Variables (λ°°ν¬ νκ²½)
- λ°°ν¬ μλ²μμ μ¬μ©νλ λ³μ
- λ°λμ λ°λ‘ λ±λ‘ν΄μΌ ν¨
π μμΉ
Vercel β Settings β Environment Variables
4οΈβ£ ν΄κ²° λ°©λ²
β 1. Vercelμ νκ²½λ³μ λ±λ‘
Name
VITE_KAKAO_JAVASCRIPT_KEYValue
μΉ΄μΉ΄μ€ JavaScript ν€Environment
- β Production
β 2. μ¬λ°°ν¬ (νμ)
π Vercel β Deployments β Redeploy
β μ μ¬λ°°ν¬ν΄μΌ νλ?
π Viteλ λΉλ μμ μ envλ₯Ό μ½λμ μ½μ ν¨
env λ³κ²½ β μ¬λ°°ν¬ μ νλ©΄ λ°μ μ λ¨
β 3. μ½λ νμΈ
const kakaoJsKey = import.meta.env.VITE_KAKAO_JAVASCRIPT_KEY;
window.Kakao.init(kakaoJsKey);
5οΈβ£ μΉ΄μΉ΄μ€ API μ¬μ© μ νμ 체ν¬
π 1. ν€ μ’ λ₯
- μΉ β JavaScript ν€
- λ€μ΄ν°λΈ μ± β Native App Key
π 2. λλ©μΈ λ±λ‘
π Kakao Developers
JavaScript SDK λλ©μΈ
https://breadbti.vercel.appμ ν λ§ν¬ κ΄λ¦¬
https://breadbti.vercel.app
π 3. Redirect URI (λ‘κ·ΈμΈ μ)
https://breadbti.vercel.app/auth/kakao/callback
π μ½λμ μμ ν λμΌν΄μΌ ν¨
6οΈβ£ λλ²κΉ λ°©λ²
console.log(import.meta.env.VITE_KAKAO_JAVASCRIPT_KEY);
console.log(window.Kakao?.isInitialized?.());
console.log(window.location.origin);
β μ μ μν
- env κ° μ‘΄μ¬ β
- initialized β true β
- origin β λ±λ‘ λλ©μΈκ³Ό λμΌ β
7οΈβ£ μμ£Ό νλ μ€μ
- envλ₯Ό
.env.localμλ§ λ£κ³ Vercelμ λ±λ‘ μ ν¨ - env μ΄λ¦ mismatch (JS_KEY vs JAVASCRIPT_KEY)
- μ¬λ°°ν¬ μ ν¨
- Default ν€ μ¬μ©
- λ€μ΄ν°λΈ ν€ μ¬μ© (μΉμμ)
- λλ©μΈ / Redirect URI λΆμΌμΉ
π― μ΅μ’ μ 리
π μΉ΄μΉ΄μ€ API μ€λ₯μ λλΆλΆμ
βν€ λ¬Έμ βκ° μλλΌ βνκ²½λ³μ + λ°°ν¬ λ¬Έμ β
π₯ ν μ€ ν΅μ¬
π λ‘컬 env β Vercel env (μμ ν λ³κ°)
π env λ³κ²½ μ λ°λμ μ¬λ°°ν¬