π‘ μ΄λ² μ£Όμλ λΌμ΄λΈλ¬λ¦¬μ APIμ λν΄ λ°°μ μΌλ©° μ΄μ κ΄λ ¨λ μ€μ΅λ ν΄λ³΄μλ€.
β λΌμ΄λΈλ¬λ¦¬
: μ¬μ¬μ©ν μ μλ μ½λ kit
: μΉ/μ±μμ λ§μ΄ μ¬μ©λλ κΈ°λ₯λ€μ μ¬μ¬μ©ν μ μλ μ½λλ‘ κ΅¬νν΄ λμ κ²
πλΌμ΄λΈλ¬λ¦¬λ₯Ό λ§μ΄ μ¬μ©νλ©΄ λλ© νμ΄μ§μ λ‘λ© μλ λ± μΉνμ΄μ§ μ±λ₯μ λ¬Έμ κ° λ°μν μ μλ€λ μ μ μν΄μΌ ν¨
πμν©λ³ JS λΌμ΄λΈλ¬λ¦¬
βͺ λ°μ΄ν° μκ°ν (μ§λ, λ€νΈμν¬, μ°¨νΈ κ·Έλ¦¬κΈ°)
D3.js
Chart.js
leaflet.js
βͺ DOM μ‘°μ
jQuery
βͺ μ λλ©μ΄μ
ν¨κ³Ό
GSAP
Anime.js
βͺ μμ, λ μ§ μ²λ¦¬
Date.js
βͺ UI μ»΄ν¬λνΈ
React.js
π λΌμ΄λΈλ¬λ¦¬ μ¬μ©λ°©λ²
: κ°λ° μ€μΈ μ±μμ μ¬μ©νκ³ μΆμ λΌμ΄λΈλ¬λ¦¬κ° μλ€λ©΄, νλ‘μ νΈ ν΄λμ μ§μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€μΉνκ±°λ, CDNμΌλ‘λΆν° importν΄μ¬ μ μμ
$npm install swiper
<script src="λΌμ΄λΈλ¬λ¦¬ κ²½λ‘"></script>
λ₯Ό 볡μ¬+λΆμ¬λ£κΈ°νκ² λ¨β Ajax
: λΈλΌμ°μ μμ μλ²λ‘ λ°μ΄ν°μ λν μμ²μ 보λ΄κ³ , μλ²κ° μλ΅ν λ°μ΄ν°λ₯Ό μ΄μ©νμ¬ μΉνμ΄μ§λ₯Ό λμ μΌλ‘ μ
λ°μ΄νΈνλ λΉλκΈ° νλ‘κ·Έλλ° λ°©μ
πλΉλκΈ°λ‘ μ²λ¦¬ : μ¬λ¬ μμ
μ΄ λμμ μ΄λ£¨μ΄μ§ μ μμμ μλ―Έν¨
βͺ Ajax
κ° λ±μ₯νλ©΄μ μΉνμ΄μ§μ λ³κ²½μ νμν λ°μ΄ν°λ§ λΉλκΈ° λ°©μμΌλ‘ μ μ‘λ°μ μΉνμ΄μ§λ₯Ό λ³κ²½ν νμκ° μλ λΆλΆμ λ€μ λ λλ§νμ§ μκ³ , λ³κ²½ν νμκ° μλ λΆλΆλ§ νμ μ μΌλ‘ λ λλ§νλ λ°©μμ΄ κ°λ₯ν΄μ§! μ±λ₯λ κ°μ λκ³ λΆλλ¬μ΄ νλ©΄μ νλ κ°λ₯ν΄μ§κ² λ¨
β XMLHttpRequest
: λΈλΌμ°μ μμ μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ HTTP μμ²μ μ μ‘ν λ XMLHttpRequest
κ°μ²΄λ₯Ό μ¬μ©ν¨. Ajax
λ XMLHttpRequest
λ₯Ό κΈ°λ°μΌλ‘ λμν¨. XMLHttpRequest
κ°μ²΄μλ HTTP μμ² μ μ‘ λ° HTTP μλ΅ μμ μ μν λ€μν λ©μλμ νλ‘νΌν°κ° μμ.
// XMLHttpRequest κ°μ²΄μ μμ±
const xhr = new XMLHttpRequest();
β Json
: JavaScript Object Notationμ μ€λ§λ‘, ν΄λΌμ΄μΈνΈμ μλ² κ°μ HTTP ν΅μ μ μν ν
μ€νΈ λ°μ΄ν° ν¬λ§·
βͺ ν΄λΌμ΄μΈνΈμμ μλ²λ‘ κ°μ²΄λ₯Ό μ μ‘νλ €λ©΄ κ°μ²΄λ₯Ό λ¬Έμμ΄ν(μ§λ ¬ν serializing
)ν΄μΌ ν¨.
π JSON.stringify
λ©μλλ κ°μ²΄λ₯Ό JSON
ν¬λ§·μ λ¬Έμμ΄λ‘ λ³νν¨.
const dog = {
name: 'λλμ΄'
age: 5,
sound: 'λ©λ©'
}
// κ°μ²΄λ₯Ό JSON ν¬λ§·μ λ¬Έμμ΄λ‘ λ³ν
const json = JSON.stringify(obj);
console.log(typeof json, json)
// string {"name": "λλμ΄", "age": 5, "sound": "λ©λ©"}
βͺ μλ²λ‘λΆν° ν΄λΌμ΄μΈνΈμ μ μ‘λ JSON
λ°μ΄ν°λ λ¬Έμμ΄μ. λ¬Έμμ΄μ κ°μ²΄λ‘ μ¬μ©νλ €λ©΄ JSON
ν¬λ§·μ λ¬Έμμ΄μ κ°μ²΄ν(μμ§λ ¬ν deserializing
)ν΄μΌ ν¨.
πJSON.parse
λ©μλλ JSON
ν¬λ§·μ λ¬Έμμ΄μ κ°μ²΄λ‘ λ³νν¨.
const dog = {
name: 'λλμ΄'
age: 5,
sound: 'λ©λ©'
}
// κ°μ²΄λ₯Ό JSON ν¬λ§·μ λ¬Έμμ΄λ‘ λ³ν
const json = JSON.stringify(obj);
// JSON ν¬λ§·μ λ¬Έμμ΄μ κ°μ²΄λ‘ λ³ν
const parsed = JSON.parse(json);
console.log(typeof parsed, parsed);
/* object {
name: 'λλμ΄'
age: 5,
sound: 'λ©λ©'
} */
: μ€κ°κ³ μ¬ νλ‘μ νΈμμ CSSλ‘ κ΅¬νν μ¬λΌμ΄λ λΆλΆλ€μ JSλ₯Ό μ΄μ©νμ¬ νμ΄ν λ²νΌμ λλ μ λ ν λΈλλ§νΌλ§ μ¬λΌμ΄λκ° λμ΄κ°λλ‘ ν΄λ³΄μλ€. κΈ°μ‘΄ μ¬μ΄νΈμμλ λ§μ°μ€λ₯Ό κ°λ€λμλ νμ΄ν λ²νΌμ΄ 보μ΄λ ννλΌμ κ·Έ λΆλΆμ λν΄μ μμ μ΄ λ νμν κ±° κ°λ€. μ λ²λΆν° κ³νμ ν΄λ¨λλ° λ―Έλ€μμλ μ€λ§νΈν°, νλΈλ¦Ώpc, pcμ ν΄λΉνλ κ°κ°μ λ―Έλμ΄μΏΌλ¦¬λ₯Ό μμ±νλ κ²λ λ¨μκΈ°κ°λμ ν΄λΌ μ μμμΌλ©΄ μ’κ² λ€.
μ΄λ² μ£Όμ μλ‘ λ°°μ΄ λ΄μ© μ€ 'λΌμ΄λΈλ¬λ¦¬'μ λν λ΄μ©μ λ°°μ λλ° λκ΅°κ°κ° 미리 λ§λ€μ΄λμ μ½λλ₯Ό κ°μ Έλ€κ° 맀λ΄μΌμ λ°λΌ μ¬μ©νκ±°λ 컀μ€ν°λ§μ΄μ¦νμ¬ μΉ νμ΄μ§λ₯Ό ꡬνν΄λΌ μ μλ€λ μ μ΄ ν₯λ―Έλ‘μ λ€. μν©λ³λ‘ λ€μν JS λΌμ΄λΈλ¬λ¦¬λ€μ΄ μλ€λ κ²μ μ κΈ°νκΈ°λ νλ€. μ½λ‘λ λ΄μ€ APIλ‘ μμ§ μ¬λΌμ΄λ λ§λ€κΈ° μ€μ΅μμλ 곡곡λ°μ΄ν° API νμ© μ μ²μ μ΄λ»κ² νλκ²μΈμ§, κ·Έλ¦¬κ³ API κΈ°μ λ¬Έμμμ API μλΉμ€λ₯Ό νμ©ν λ νμν λΆλΆλ€μ λμ§ μμκ° μ μμλ€. μ¬μ€ API κ΄λ ¨ λ΄μ©μ λ€μ λ μ΄ν΄νμ§ λͺ»ν λΆλΆλ€μ΄ μμ΄μ λ Έμ μ κ°μμλ£λ₯Ό 보며 볡μ΅μ νκ³ μ€μ΅λ ν΄λ΄μΌ κ² λ€λ μκ°μ νλ€. κΈ°λ§κ³ μ¬κ° μΌλ§λ¨μ§ μμ κ·ΈλκΉμ§λ νλ‘μ νΈμ μ§μ€μ ν΄μΌκ² μ§λ§ λ°©ν λλΌλ λ°λ‘ 곡λΆλ₯Ό ν΄μΌν κ² κ°λ€.
μΉ νλ‘κ·Έλλ° κΈ°μ΄ μμ μ ν΅ν΄ HTML, CSS, JS κ΄λ ¨ μ΄λ‘ μ μΈ λ΄μ©λ€μ λ°°μ°κ³ μ§μ μ€μ΅λ ν΄λ³΄λ©° μΉ νμ΄μ§μ λ€μν μμμ κΈ°λ₯λ€μ μμκ° μ μμλ€. νλ‘μ νΈλ‘ ν΄λ‘ μ½λ©μ ν΄λ³΄λ©΄μ μΉ νμ΄μ§λ₯Ό ꡬνν΄λ΄κΈ° μν΄ κ³ λ €λμ΄μΌ ν κ²λ€μ΄ λ§μΌλ©° κ·Έκ²λ€ νλνλλ₯Ό λνλ΄κΈ° μν΄ HTML, CSS, JS μ½λλ₯Ό μμ±νλ€λ κ²μ΄ μ½μ§ μλ€λ κ²μ κ²½νν μ μμλ€. μ΄ μμ μ ν΅ν΄ μ§κΈκΉμ§ λ°°μλ³΄μ§ λͺ»ν μλ‘μ΄ λ΄μ©λ€μ μμκ° μ μμ΄μ μ’μκ³ μΉ νλ‘κ·Έλλ° λΆμΌμ κ΄μ¬μ κ°κ² λλ κ³κΈ°κ° λμλ€. μμΌλ‘ λ¨μ 2μ£Όλμ λμ± νμ λ΄μ νλ‘μ νΈλ₯Ό μ λ§λ¬΄λ¦¬ν μ μμμΌλ©΄ μ’κ² λ€. ν νκΈ°λμ 맀주 μ€μκ° μμ μΌλ‘ νλλΌλ λ μ°λ¦¬μκ² λμμ΄ λ λ§ν λ΄μ©λ€μ κ°λ₯΄μ³μ£Όλ €κ³ νμ ¨λ κ΅μλκ» κ°μ¬νλ€κ³ μ νκ³ μΆλ€π볡μ΅ν λ μ΄ν΄κ° μ λλλ‘ λ Έμ μ μμ μμ λ€λ£¬ λ΄μ©λ€κ³Ό κ·Έμ λν μμλ€μ ν¬ν¨νμ¬ μμ±ν΄μ£Όμ κ°μμλ£λ€λ κ°λμ΄μλ€β¨