# πŸ”Œ API 연동 κ°€μ΄λ“œ ## πŸ“Š ν˜„μž¬ μƒνƒœ ### βœ… μž‘λ™ 쀑인 API 1. **기상청 특보 API** (μ™„λ²½ μž‘λ™!) - API ν‚€: `ogdXr2e9T4iHV69nvV-IwA` - μƒνƒœ: βœ… 14건 μ‹€μ‹œκ°„ 특보 μˆ˜μ‹  쀑 - 제곡 데이터: λŒ€μ„€/강풍/ν•œνŒŒ/νƒœν’/폭염 특보 2. **ν•œκ΅­μ€ν–‰ ν™˜μœ¨ API** (μ™„λ²½ μž‘λ™!) - API ν‚€: `OXIGPQXH68NUKVKL5KT9` - μƒνƒœ: βœ… ν™˜μœ¨ μœ„μ ― μž‘λ™ 쀑 ### ⚠️ 더미 데이터 μ‚¬μš© 쀑 3. **ꡐ톡사고 정보** - ν•œκ΅­λ„λ‘œκ³΅μ‚¬ API: ❌ μ„œλ²„ 호좜 차단 - ν˜„μž¬ μƒνƒœ: 더미 데이터 (2건) 4. **λ„λ‘œκ³΅μ‚¬ 정보** - ν•œκ΅­λ„λ‘œκ³΅μ‚¬ API: ❌ μ„œλ²„ 호좜 차단 - ν˜„μž¬ μƒνƒœ: 더미 데이터 (2건) --- ## πŸš€ μ‹€μ‹œκ°„ ꡐ톡정보 μ—°λ™ν•˜κΈ° ### πŸ“Œ ꡭ토ꡐ톡뢀 ITS API (μΆ”μ²œ!) #### 1단계: API μ‹ μ²­ 1. https://www.data.go.kr/ 접속 2. 검색: **"ITS λŒλ°œμ •λ³΄"** λ˜λŠ” **"μ‹€μ‹œκ°„ ꡐ톡정보"** 3. **ν™œμš©μ‹ μ²­** 클릭 4. **승인 λŒ€κΈ° (1~2일)** #### 2단계: API ν‚€ μΆ”κ°€ 승인 μ™„λ£Œλ˜λ©΄ `.env` νŒŒμΌμ— μΆ”κ°€: ```env # ꡭ토ꡐ톡뢀 ITS API ν‚€ ITS_API_KEY=λ°œκΈ‰λ°›μ€_API_ν‚€ ``` #### 3단계: μ„œλ²„ μž¬μ‹œμž‘ ```bash docker restart pms-backend-mac ``` #### 4단계: 확인 - λ‘œκ·Έμ—μ„œ `βœ… ꡭ토ꡐ톡뢀 ITS ꡐ톡사고 API 응닡 μˆ˜μ‹  μ™„λ£Œ` 확인 - 더미 데이터 λŒ€μ‹  μ‹€μ œ 데이터가 ν‘œμ‹œλ¨! --- ## πŸ” ν•œκ΅­λ„λ‘œκ³΅μ‚¬ API 문제 ### λ°œκΈ‰λœ ν‚€ ``` EXWAY_API_KEY=7820214492 ``` ### 문제 상황 - ❌ μ„œλ²„/λ°±μ—”λ“œμ—μ„œ 호좜 μ‹œ: `Request Blocked` (400) - ❌ curl λͺ…λ Ήμ–΄: `Request Blocked` - ❌ λͺ¨λ“  μ—”λ“œν¬μΈνŠΈ 차단됨 ### κ°€λŠ₯ν•œ 원인 1. **λΈŒλΌμš°μ €μ—μ„œλ§Œ μ ‘κ·Ό ν—ˆμš©** - Referer 헀더 검증 - User-Agent 검증 2. **IP ν™”μ΄νŠΈλ¦¬μŠ€νŠΈ** - νŠΉμ • IPμ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯ - μ„œλ²„ IP 등둝 ν•„μš” 3. **API ν‚€ ν™œμ„±ν™” λŒ€κΈ°** - λ°œκΈ‰ ν›„ 승인 λŒ€κΈ° 쀑 - λͺ‡ μ‹œκ°„~1일 μ†Œμš” ### ν•΄κ²° 방법 1. ν•œκ΅­λ„λ‘œκ³΅μ‚¬ λ‹΄λ‹Ήμž 문의 (054-811-4533) 2. ꡭ토ꡐ톡뢀 ITS API μ‚¬μš© (더 μ•ˆμ •μ ) --- ## πŸ“ μ½”λ“œ ꡬ쑰 ### 닀쀑 API 폴백 μ‹œμŠ€ν…œ ```typescript // 1μˆœμœ„: ꡭ토ꡐ톡뢀 ITS API if (process.env.ITS_API_KEY) { try { // ITS API 호좜 return itsData; } catch { console.log('2μˆœμœ„ API둜 μ „ν™˜'); } } // 2μˆœμœ„: ν•œκ΅­λ„λ‘œκ³΅μ‚¬ API try { // ν•œκ΅­λ„λ‘œκ³΅μ‚¬ API 호좜 return exwayData; } catch { console.log('더미 데이터 μ‚¬μš©'); } // 3μˆœμœ„: 더미 데이터 return dummyData; ``` ### 파일 μœ„μΉ˜ - μ„œλΉ„μŠ€: `backend-node/src/services/riskAlertService.ts` - 컨트둀러: `backend-node/src/controllers/riskAlertController.ts` - 라우트: `backend-node/src/routes/riskAlertRoutes.ts` --- ## πŸ’‘ ν˜„μž¬ λŒ€μ‹œλ³΄λ“œ μœ„μ ― 데이터 ### 리슀크/μ•Œλ¦Ό μœ„μ ― ``` βœ… λ‚ μ”¨νŠΉλ³΄: 14건 (μ‹€μ œ 기상청 데이터) ⚠️ ꡐ톡사고: 2건 (더미 데이터) ⚠️ λ„λ‘œκ³΅μ‚¬: 2건 (더미 데이터) ───────────────────────── 총 18건의 μ•Œλ¦Ό ``` ### κ°œμ„  ν›„ (ITS API 연동 μ‹œ) ``` βœ… λ‚ μ”¨νŠΉλ³΄: 14건 (μ‹€μ œ 기상청 데이터) βœ… ꡐ톡사고: N건 (μ‹€μ œ ITS 데이터) βœ… λ„λ‘œκ³΅μ‚¬: N건 (μ‹€μ œ ITS 데이터) ───────────────────────── 총 N건의 μ•Œλ¦Ό (λͺ¨λ‘ μ‹€μ‹œκ°„!) ``` --- ## 🎯 λ‹€μŒ 단계 ### 단기 (μ§€κΈˆ) - [x] 기상청 특보 API 연동 μ™„λ£Œ - [x] ν•œκ΅­μ€ν–‰ ν™˜μœ¨ API 연동 μ™„λ£Œ - [x] 닀쀑 API 폴백 μ‹œμŠ€ν…œ ꡬ좕 - [ ] ꡭ토ꡐ톡뢀 ITS API μ‹ μ²­ ### μž₯κΈ° (ν–₯ν›„) - [ ] μ„œμšΈμ‹œ TOPIS API μΆ”κ°€ (μ„œμšΈμ‹œ ꡐ톡정보) - [ ] κ²½μ°°μ²­ ꡐ톡사고 정보 API (승인 ν•„μš”) - [ ] 기상청 λ‹¨κΈ°μ˜ˆλ³΄ API μΆ”κ°€ --- ## πŸ“ž 문의 ### ν•œκ΅­λ„λ‘œκ³΅μ‚¬ - μ „ν™”: 054-811-4533 (컨텐츠 문의) - μ „ν™”: 070-8656-8771 (μ‹œμŠ€ν…œ μž₯μ• ) ### 곡곡데이터포털 - μ›Ήμ‚¬μ΄νŠΈ: https://www.data.go.kr/ - 고객센터: 1661-0423 --- **μž‘μ„±μΌ**: 2025-10-14 **μž‘μ„±μž**: AI Assistant **μƒνƒœ**: βœ… 기상청 특보 μž‘λ™ 쀑, ITS API 연동 μ€€λΉ„ μ™„λ£Œ