1. Ajaxλ?
Ajaxλ Asynchronous JavaScript and XMLμ μ½μλ‘, λΉλκΈ°μ μΌλ‘ μΉ νμ΄μ§μ μλ² κ°μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλ κΈ°μ μ λλ€. κΈ°μ‘΄μ μΉ νμ΄μ§λ λ°μ΄ν°λ₯Ό μμ²νλ©΄ νμ΄μ§ μ 체λ₯Ό λ€μ λΆλ¬μμΌ νμ§λ§, Ajaxλ₯Ό μ¬μ©νλ©΄ νμν λΆλΆλ§ μ λ°μ΄νΈν μ μμ΄ μ¬μ©μμκ² λ λμ κ²½νμ μ 곡ν μ μμ΅λλ€.
Ajaxλ JavaScript, HTML, CSS, XML λ± μ¬λ¬ κΈ°μ μ μ κΈ°μ μΌλ‘ κ²°ν©νμ¬ μλν©λλ€. νμ΄μ§ μ 체λ₯Ό κ°±μ ν νμ μμ΄ μλ²μ λΉλκΈ°μ μΌλ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μλλ°, μ΄λ¬ν νΉμ§ λλ¬Έμ μΉ μ ν리μΌμ΄μ μ λμ± λμ μΌλ‘ λ§λλ λ° ν° μν μ νκ³ μμ΅λλ€.
Ajaxλ μ΅κ·Όμλ XML λμ JSONμ μ¬μ©νλ κ²½ν₯μ΄ μμΌλ©°, μ΄λ λ°μ΄ν° κ΅νμ ν¨μ¨μ±κ³Ό κ°λ μ±μ λμ¬μ€λλ€. Ajaxλ₯Ό μ¬μ©νλ©΄ μΉ νμ΄μ§μ μλ΅μ΄ λΉ¨λΌμ§κ³ , μλ²μ λΆνλ₯Ό μ€μ΄λ λ± μ¬λ¬ μ΄μ μ μ 곡ν μ μμΌλ―λ‘, νλ μΉ κ°λ°μμ νμμ μΈ κΈ°μ λ‘ μ리μ‘μμ΅λλ€.
2. Ajaxλ₯Ό νμ©νμ¬ λ°μ΄ν°λ₯Ό λ°μμ€λ λ°©λ²
Ajaxλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό λ°μμ€κΈ° μν΄μλ λ€μκ³Ό κ°μ λ¨κ³λ₯Ό λ°λΌμΌ ν©λλ€:
XMLHttpRequest κ°μ²΄ μμ±νκΈ°: XMLHttpRequest κ°μ²΄λ Ajax μμ²μ 보λ΄κ³ μλ΅μ λ°λ μν μ μνν©λλ€. λ¨Όμ ,
new XMLHttpRequest()
λ₯Ό μ¬μ©νμ¬ XMLHttpRequest κ°μ²΄λ₯Ό μμ±ν©λλ€.μμ² μ€μ νκΈ°: XMLHttpRequest κ°μ²΄μ
open()
λ©μλλ₯Ό μ¬μ©νμ¬ μμ²μ μ€μ ν©λλ€. μ΄ λ©μλμλ λ°μ΄ν°λ₯Ό λ°μμ¬ HTTP λ©μλ(GET, POST λ±)μ λ°μ΄ν°λ₯Ό λ°μμ¬ URLμ μ λ¬ν©λλ€.μλ΅ μ²λ¦¬νκΈ°: XMLHttpRequest κ°μ²΄μμ λ°μ μλ΅μ μ²λ¦¬νλ λ°©λ²μ μ μν©λλ€. μ΄λ
onreadystatechange
μ΄λ²€νΈ νΈλ€λ¬λ₯Ό λ±λ‘νκ³ , ν΄λΉ νΈλ€λ¬ λ΄μμreadyState
μstatus
νλ‘νΌν°λ₯Ό νμΈνμ¬ μμ²μ΄ μ±κ³΅μ μΌλ‘ μ²λ¦¬λμλμ§ νμΈν μ μμ΅λλ€. μ±κ³΅μ μΈ μλ΅μΈ κ²½μ°,responseText
λλresponseXML
μ μ¬μ©νμ¬ λ°μ λ°μ΄ν°λ₯Ό νμ©ν μ μμ΅λλ€.μμ² μ μ‘νκΈ°: XMLHttpRequest κ°μ²΄μ
send()
λ©μλλ₯Ό μ¬μ©νμ¬ μμ²μ μλ²λ‘ μ μ‘ν©λλ€. μ΄λ, GET μμ²μΈ κ²½μ°λsend()
λ©μλμ 맀κ°λ³μλ₯Ό μ λ¬νμ§ μκ³ , POST μμ²μΈ κ²½μ°λsend()
λ©μλμ μ μ‘ν λ°μ΄ν°λ₯Ό 맀κ°λ³μλ‘ μ λ¬ν©λλ€.
μλλ Ajaxλ₯Ό νμ©νμ¬ λ°μ΄ν°λ₯Ό λ°μμ€λ κ°λ¨ν μμμ λλ€:
var xhr = new XMLHttpRequest(); // XMLHttpRequest κ°μ²΄ μμ±
xhr.open('GET', 'https://api.example.com/data', true); // μμ² μ€μ
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) { // μλ΅ νμΈ
var data = xhr.responseText; // λ°μ λ°μ΄ν° νμ©
console.log(data);
}
};
xhr.send(); // μμ² μ μ‘
μ μ½λμμλ GET μμ²μ 보λ΄κ³ , μλ΅μ΄ 200μΌ λ λ°μ λ°μ΄ν°λ₯Ό μ½μμ μΆλ ₯ν©λλ€. μμΈν μλ΅ μ²λ¦¬ λ°©λ²μ μꡬμ¬νμ λ°λΌ λ€λ₯Ό μ μμΌλ―λ‘ νμμ λ°λΌ μμ ν΄μΌ ν©λλ€.
3. Ajaxλ₯Ό μ΄μ©ν λ°μ΄ν° μμ² λ° μλ΅ μ²λ¦¬ κ³Όμ
Ajaxλ₯Ό μ΄μ©νμ¬ λ°μ΄ν°λ₯Ό μμ²νκ³ μλ΅μ μ²λ¦¬νλ κ³Όμ μ λ€μκ³Ό κ°μ΄ μ§νλ©λλ€:
XMLHttpRequest κ°μ²΄ μμ±νκΈ°: μ°μ ,
new XMLHttpRequest()
λ₯Ό μ¬μ©νμ¬ XMLHttpRequest κ°μ²΄λ₯Ό μμ±ν©λλ€. μ΄ κ°μ²΄λ Ajax μμ²μ 보λ΄κ³ μλ΅μ λ°λ λ° μ¬μ©λ©λλ€.μμ² μ€μ νκΈ°: XMLHttpRequest κ°μ²΄μ
open()
λ©μλλ₯Ό μ¬μ©νμ¬ μμ²μ μ€μ ν©λλ€. μ΄ λ©μλμλ λ°μ΄ν°λ₯Ό λ°μμ¬ HTTP λ©μλ(GET, POST λ±)μ λ°μ΄ν°λ₯Ό λ°μμ¬ URLμ μ λ¬ν©λλ€. νμνλ€λ©΄, μΆκ°μ μΈ μμ² ν€λλ₯Ό μ€μ ν μλ μμ΅λλ€.μλ΅ μ²λ¦¬λ₯Ό μν μ΄λ²€νΈ νΈλ€λ¬ λ±λ‘νκΈ°: XMLHttpRequest κ°μ²΄μ
onreadystatechange
μ΄λ²€νΈ νΈλ€λ¬λ₯Ό λ±λ‘ν©λλ€. μ΄ νΈλ€λ¬λ μμ²μ μνκ° λ³κ²½λ λλ§λ€ νΈμΆλ©λλ€. μλ΅μ μ²λ¦¬νκΈ° μν΄μ νΈλ€λ¬ λ΄μμreadyState
μstatus
νλ‘νΌν°λ₯Ό νμΈνμ¬ μμ²μ΄ μ±κ³΅μ μΌλ‘ μ²λ¦¬λμλμ§ νμΈν΄μΌ ν©λλ€.μμ² μ μ‘νκΈ°: μ΄μ XMLHttpRequest κ°μ²΄μ
send()
λ©μλλ₯Ό μ¬μ©νμ¬ μμ²μ μλ²λ‘ μ μ‘ν©λλ€. GET μμ²μ κ²½μ°send()
λ©μλμ 맀κ°λ³μλ₯Ό μ λ¬νμ§ μκ³ , POST μμ²μ κ²½μ°μλsend()
λ©μλμ μ μ‘ν λ°μ΄ν°λ₯Ό 맀κ°λ³μλ‘ μ λ¬ν΄μΌ ν©λλ€.μλ΅ μ²λ¦¬νκΈ°: μλ΅μ΄ λμ°©νλ©΄,
onreadystatechange
μ΄λ²€νΈ νΈλ€λ¬κ° νΈμΆλ©λλ€. μ΄λ,readyState
κ°μ΄ 4μ΄κ³status
κ°μ΄ 200μΈ κ²½μ°μλ μλ΅μ΄ μ±κ³΅μ μΌλ‘ μ²λ¦¬λμλ€λ κ²μ λνλ λλ€. μλ΅ λ°μ΄ν°λ XMLHttpRequest κ°μ²΄μresponseText
λλresponseXML
νλ‘νΌν°λ₯Ό ν΅ν΄ νμΈν μ μμ΅λλ€.
μλλ Ajaxλ₯Ό μ΄μ©ν λ°μ΄ν° μμ² λ° μλ΅ μ²λ¦¬ κ³Όμ μ μμ μ½λμ λλ€:
var xhr = new XMLHttpRequest(); // XMLHttpRequest κ°μ²΄ μμ±
xhr.open('GET', 'https://api.example.com/data', true); // μμ² μ€μ
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) { // μλ΅ νμΈ
var data = xhr.responseText; // λ°μ λ°μ΄ν° νμ©
console.log(data);
}
};
xhr.send(); // μμ² μ μ‘
μ μ½λμμλ GET μμ²μ 보λ΄κ³ , μλ²μμ μ€λ μλ΅μ΄ μ±κ³΅μ μΌλ‘ μ²λ¦¬λμμ λ λ°μ λ°μ΄ν°λ₯Ό μ½μμ μΆλ ₯ν©λλ€. μ΄ μμλ₯Ό κΈ°λ°μΌλ‘ μλ΅ μ²λ¦¬ λ°©μμ νμμ λ°λΌ μμ νμ¬ μ¬μ©ν μ μμ΅λλ€.
4. Ajaxλ₯Ό νμ©ν λ°μ΄ν° νμ λ° νμ© λ°©λ²
Ajaxλ₯Ό νμ©νμ¬ λ°μμ¨ λ°μ΄ν°λ₯Ό νμνκ³ νμ©νλ λ°©λ²μ λ€μν©λλ€. μ£Όλ‘ μ¬μ©λλ λ°©λ²μΌλ‘λ λ€μκ³Ό κ°μ΅λλ€:
λ°μ΄ν°λ₯Ό HTML μμμ νμνκΈ°: λ°μμ¨ λ°μ΄ν°λ₯Ό λμ μΌλ‘ HTML μμμ μ½μ νμ¬ μ¬μ©μμκ² νμν μ μμ΅λλ€. μ΄λ₯Ό μν΄ JavaScriptλ₯Ό μ¬μ©νμ¬ ν΄λΉ HTML μμλ₯Ό μ νν ν, λ°μ΄ν°λ₯Ό μ½μ νλ λ°©μμ νμ©ν©λλ€. μλ₯Ό λ€μ΄, λ°μμ¨ λ°μ΄ν°λ₯Ό
<div>
μμμ λ΄λΆμ μ½μ νμ¬ νμν μ μμ΅λλ€.λ°μ΄ν°λ₯Ό νμ©ν μΆκ°μ μΈ λμ μννκΈ°: λ°μμ¨ λ°μ΄ν°λ₯Ό κ°μ§κ³ μΆκ°μ μΈ λμμ μνν μλ μμ΅λλ€. μλ₯Ό λ€μ΄, μ¬μ©μκ° νΌμ μ μΆν λ Ajaxλ₯Ό μ¬μ©νμ¬ λ°±μλ μλ²μ λ°μ΄ν°λ₯Ό 보λ΄κ³ , μ΄μ λν μλ΅μ λ°μμ λμ μΌλ‘ νλ©΄μ κ°±μ ν μ μμ΅λλ€.
λ°μ΄ν°λ₯Ό JSONμΌλ‘ μ²λ¦¬νκΈ°: λ°μμ¨ λ°μ΄ν°κ° JSON νμμΈ κ²½μ°, JavaScriptμ
JSON.parse()
λ©μλλ₯Ό μ¬μ©νμ¬ JSON λ¬Έμμ΄μ JavaScript κ°μ²΄λ‘ λ³νν μ μμ΅λλ€. μ΄νμλ JavaScript κ°μ²΄λ‘λΆν° μλ―Έ μλ μ 보λ₯Ό μΆμΆνμ¬ νμ©ν μ μμ΅λλ€.λ°μ΄ν°λ₯Ό κ°κ³΅νμ¬ νμνκΈ°: λ°μμ¨ λ°μ΄ν°λ₯Ό κ°κ³΅νμ¬ λμ± μλ―Έ μλ ννλ‘ νμν μλ μμ΅λλ€. μλ₯Ό λ€μ΄, λ°μμ¨ λ°μ΄ν° μ€μμ νΉμ 쑰건μ λ§μ‘±νλ νλͺ©μ νν°λ§νκ±°λ, μ λ ¬νμ¬ μ¬μ©μμκ² λμ± μ μ©ν μ 보λ₯Ό μ 곡ν μ μμ΅λλ€.
μ΄λ¬ν λ°©λ²λ€μ Ajaxλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό λ°μμ¨ νμ λ°μ΄ν°λ₯Ό νμνκ³ νμ©νλ κ³Όμ μμ μμ£Ό νμ©λ©λλ€. νμμ λ°λΌ μμ λ°©λ²λ€μ μ‘°ν©νμ¬ λ°μ΄ν°λ₯Ό μ μ©νκ² νμ©ν μ μμ΅λλ€.
5. Ajaxλ₯Ό νμ©νμ¬ λ€λ₯Έ νμ΄μ§μ μλ λ°μ΄ν° λ°μμ€κΈ°μ μ₯μ κ³Ό νμ© μ¬λ‘
Ajaxλ₯Ό νμ©νμ¬ λ€λ₯Έ νμ΄μ§μ μλ λ°μ΄ν°λ₯Ό λ°μμ€λ κ²μ λ€μκ³Ό κ°μ μ₯μ μ κ°μ§κ³ μμ΅λλ€.
1. λΉλκΈ° ν΅μ :
Ajaxλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό λ°μμ€λ©΄, νμ΄μ§κ° μλ‘κ³ μΉ¨λμ§ μκ³ λ μΉ μλ²μ λΉλκΈ°μ μΌλ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ μ μμ΅λλ€. μ΄λ μ¬μ©μ κ²½νμ ν₯μμν€κ³ μΉ μ ν리μΌμ΄μ μ μ±λ₯μ ν₯μμν¬ μ μλ μ₯μ μ λλ€.
2. ν¨μ¨μ μΈ λ°μ΄ν° μ λ¬:
Ajaxλ₯Ό μ¬μ©νλ©΄ νμν λ°μ΄ν°λ§ μμ²νμ¬ λ°μμ¬ μ μμ΅λλ€. μ¦, μ 체 νμ΄μ§λ₯Ό λ€μ λ‘λν νμ μμ΄ νμν λΆλΆλ§ μ λ°μ΄νΈνλ λ± ν¨μ¨μ μΈ λ°μ΄ν° μ λ¬μ΄ κ°λ₯ν©λλ€. μ΄λ‘μ¨ λμνμ μ μ½νκ³ μλ² λΆνλ₯Ό κ°μμν¬ μ μμ΅λλ€.
3. λμ μ λ°μ΄νΈ:
Ajaxλ₯Ό μ¬μ©νλ©΄ λμ μΈ μ λ°μ΄νΈκ° κ°λ₯ν΄μ§λλ€. λ°μ΄ν°λ₯Ό λ°μμ€κ³ , νμμ λ°λΌ λ°μ΄ν°λ₯Ό κ°κ³΅νκ³ , λμ μΌλ‘ νλ©΄μ μ λ°μ΄νΈνλ λ± λ€μν λμμ μνν μ μμ΅λλ€. μ΄λ μ€μκ°μΌλ‘ μ 보λ₯Ό μ λ°μ΄νΈνλ μ±ν μ ν리μΌμ΄μ , μ€μκ° μ£Όμ μμΈ μ λ°μ΄νΈ λ±μ μ μ©νκ² μ¬μ©λ μ μμ΅λλ€.
4. λ€μν νμ© μ¬λ‘:
Ajaxλ₯Ό μ¬μ©νμ¬ λ€λ₯Έ νμ΄μ§μ μλ λ°μ΄ν°λ₯Ό λ°μμ€λ κ²μ λ§μ νμ© μ¬λ‘λ₯Ό κ°μ§κ³ μμ΅λλ€. μλ₯Ό λ€μ΄, μμ λ―Έλμ΄μμ λ€λ₯Έ μ¬μ©μμ νλ‘ν μ 보λ₯Ό λΉλκΈ°μ μΌλ‘ λ°μμ νμνλ κΈ°λ₯, μ€μκ°μΌλ‘ μ λ°μ΄νΈλλ ν΄μνκ·Έ κ²μ κ²°κ³Όλ₯Ό νμνλ κΈ°λ₯ λ±μ΄ ν¬ν¨λ©λλ€. λν, APIλ₯Ό νμ©νμ¬ μΈλΆ λ°μ΄ν°λ₯Ό λ°μμ νμ©νλ κ² λν κ°λ₯ν©λλ€.
Ajaxλ₯Ό νμ©νμ¬ λ€λ₯Έ νμ΄μ§μ μλ λ°μ΄ν°λ₯Ό λ°μμ€λ μ₯μ μ λΉλκΈ° ν΅μ , ν¨μ¨μ μΈ λ°μ΄ν° μ λ¬, λμ μ λ°μ΄νΈ λ±μ΄ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ λ€μν νμ© μ¬λ‘λ₯Ό ꡬνν μ μμ΅λλ€. μ΄λ¬ν μ₯μ μ μ μ ν νμ©νμ¬ μ¬μ©μμκ² λ μ’μ κ²½νμ μ 곡νλ μΉ μ ν리μΌμ΄μ μ κ°λ°ν μ μμ΅λλ€.
λκΈ