πŸ“… TIL #30

날씨 API


πŸ‘‰ APIλŠ” 무엇인가


λ“œλ””μ–΄ 내일이면 μ½”λ“œμŠ€ν…Œμ΄μΈ  ν”„λ¦¬μ½”μŠ€ ν•œλ‹¬ 과정이 λλ‚œλ‹€. μ˜€λŠ˜μ€ λ§ˆμ§€λ§‰ 과제이고 내일 H.A μ‹œν—˜μ„ 보면 μ •λ§λ‘œ λμ΄λ‚œλ‹€!!

였늘 주어진 λ§ˆμ§€λ§‰ κ³Όμ œλŠ” 날씨 APIλ₯Ό λ°›μ•„μ™€μ„œ ν˜„μž¬ 날씨λ₯Ό μ•Œλ €μ£ΌλŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“œλŠ” κ³Όμ œκ°€ μ£Όμ–΄μ‘Œλ‹€. κ·Έλ™μ•ˆ λ°°μ› λ˜ μŠ€ν‚¬λ“€μ„ μ „λΆ€ ν™œμš©μ„ ν•΄μ„œ 과제λ₯Ό μ œμΆœν•΄μ•Όλ§Œ ν–ˆλ‹€.

κ·Έλž˜μ„œ κ·Έλ™μ•ˆ λ°°μ› λ˜ html, css, js, domκΉŒμ§€ λ°°μ› λ˜ λͺ¨λ“  지식듀을 λ‹€ ν™œμš©ν•΄μ„œ 과제λ₯Ό μ§„ν–‰ν–ˆλ‹€.


λ¨Όμ € API(Application Programming Interface)λž€ μ„œλ²„κ°€ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ λ¦¬μ†ŒμŠ€λ₯Ό 잘 ν™œμš©ν•  수 μžˆλ„λ‘ μΈν„°νŽ˜μ΄μŠ€(interface)λ₯Ό μ œκ³΅ν•΄μ£ΌλŠ” 역할을 ν•˜λŠ” 것이닀.

μ—¬κΈ°μ„œ μ„œλ²„λŠ” 날씨 μ œκ³΅μ„ ν•΄μ£Όκ³ , λ‚˜ μžμ‹  ν˜Ήμ€ ν”„λ‘œκ·Έλž¨μ€ ν΄λΌμ΄μ–ΈνŠΈ(client)라고 ν•œλ‹€. μ΄λ•Œ ν΄λΌμ΄μ–ΈνŠΈλŠ” μ›Ή λΈŒλΌμš°μ €κ°€ 될 μˆ˜λ„ 있고, λ§Œλ“€κ³ μž ν•˜λŠ” 날씨 앱이 될 μˆ˜λ„ μžˆλ‹€.

μ„œλ²„λŠ” λΈŒλΌμš°μ € λ°–μ˜ μ˜μ—­μ΄λ‹€.

그렇기에 ν΄λΌμ΄μ–ΈνŠΈ(λ‚˜ μžμ‹ )κ°€ μ„œλ²„μ— μš”μ²­μ„ ν•΄μ„œ 날씨앱을 μ œκ³΅λ°›λŠ” 것이 λ°”λ‘œ API이닀.

JcmOOVYRM-1605774104307



μ„œλ²„μ— μš”μ²­ν•˜κΈ°

  • 일반적으둜 μ„œλ²„μ—κ²Œ HTTP (URL) μš”μ²­ ν›„, 응닡을 처리
  • 응닡은 λ‹€μ–‘ν•œ ν˜•νƒœλ‘œ 받을 수 있음 (JSON, HTML, plain text λ“±λ“±)
  • HTTP μš”μ²­μ€ fetch API둜 ν•œλ‹€.


였늘 배운 μ½”λ“œλ₯Ό μ •λ¦¬ν•˜μžλ©΄

function getData() {

  // fetch λ₯Ό ν™œμš©ν•΄μ„œ μ„œλ²„λ‘œ μš”μ²­ν•˜κ³  응닡을 받을 수 있게 ν•œλ‹€.
  // fetchλŠ” Promise<Response>λ₯Ό λ°˜ν™˜ν•˜λŠ”λ° 이 μƒνƒœλ‘œλŠ” λ°”λ‘œ 데이터λ₯Ό μ‚¬μš©ν•  μˆ˜κ°€ μ—†λ‹€. 
  // 이 μ€‘μ—μ„œ Responseλ₯Ό κΊΌλ‚΄κ³ , μ„œλ²„μ—μ„œ μ œκ³΅ν•˜λŠ” JSON 데이터λ₯Ό μ“Έ 수 있게 ν•΄μ£ΌλŠ” 
  // json() λ©”μ„œλ“œλ₯Ό μ΄μš©ν•˜λ©΄ μ‚¬μš© κ°€λŠ₯ν•œ 데이터 ν˜•νƒœλ‘œ λ§Œλ“€μ–΄, 정보듀을 ν™œμš©ν•  수 μžˆκ²Œλœλ‹€!
  fetch(openweathermap url)


  // then()은 μ„œλ²„μ— μš”μ²­ν•˜κ³  응닡을 λ°›λŠ” κ³Όμ •μ—μ„œ 톡신에 μ„±κ³΅ν•˜λŠ” 경우, μ½œλ°±ν•¨μˆ˜λ₯Ό μ‹€ν–‰μ‹œμΌœμ£ΌλŠ” 역할을 ν•œλ‹€.
  .then(function (data) {   // μ—¬κΈ°μ„œ dataλŠ” μ£Όμ†Œμ΄λ‹€.
    return data.json        // μš°λ¦¬κ°€ μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ ν™œμš©ν•  수 μžˆλŠ” 객체 ν˜Ήμ€ λ°°μ—΄μ˜ ν˜•νƒœλ‘œ λ³€ν™˜
  })
  .then(function (json) {
    renderWeatherData(json);
  }
}



였늘 배운 λ‚΄μš©μ„ μ΅œλŒ€ν•œ κ°„λž΅ν•˜κ²Œ μ •λ¦¬ν•΄λ³΄μ•˜λ‹€!

내일이면 기닀리고 κΈ°λ‹€λ¦¬λ˜ H.A(심화과정 λ“€μ–΄κ°€κΈ° μ „ ν…ŒμŠ€νŠΈ μ‹œν—˜)λ₯Ό 보게 λœλ‹€. λ°°μš΄μžλ“€λ„ μ–΄λ ΅λ‹€λ˜ μ΄λ¨Έμ‹œλΈŒλŠ” μ–Όλ§ˆλ‚˜ μ–΄λ €μšΈκΉŒβ€¦

정말 μ„€λ ˜λ°˜ κ±±μ •λ°˜μœΌλ‘œ μ΄λ¨Έμ‹œλΈŒμ— κ°€κ²Œ 될 것 κ°™λ‹€.



πŸ‘Š λ‚΄μΌμ˜ TIW(today I Will)

H.A μ‹œν—˜, νšŒκ³ λ‘μž‘μ„±ν•˜κΈ°