[Frontend] ν¨μμ κ°μ²΄, jQuery κ·Έλ¦¬κ³ Ajax
Chapter #5 λμμ μ²λ¦¬νλ Java Script & μ μ΄μΏΌλ¦¬ λΌμ΄λΈλ¬λ¦¬
Section 3. ν¨μμ κ°μ²΄
β΄οΈ ν¨μκ°μμ λ΄μ₯ν¨μ
• ν¨μ κ°μ
- ν¨μλ νΉμ μμ μ κΈ°μ νλ κ³³μΌλ‘ ν¨μλͺ {} μΌλ‘ ꡬμ±λλ©° μ€νκ²°κ³Όλ returnλ¬Έμ μ¬μ©ν΄μ 리ν΄
// λ°λμ μμμΌν 3κ°μ§ μ¬ν
1. ν¨μκ° νλ μΌ : ν¨μλͺ
2. ν¨μ μΈμμ κ°μμ νμ
: μΈμ리μ€νΈ
3. ν¨μμ μ€νκ²°κ³Ό νμ
(리ν΄νμ
) : return문
• λ΄μ₯ ν¨μ
- μμ€ν μ΄ μ 곡νλ ν¨μ → λ©μμ§ μμλ₯Ό νΈμΆνκ±°λ νλ©΄μ μΆλ ₯νλ λ±λ±μ μμ μ μ 곡
β΄οΈ μ¬μ©μ μ μν¨μ
• μΌλ°ν¨μ
- κΈ°λ³Έμ μΈ ννμ μ¬μ©μ μ μν¨μλ‘ functionλ¬Έμ μ¬μ©ν΄μ ν¨μλ₯Ό μ μ
- ν¨μ μ μΈλ¬ΈμΌλ‘ μ μνλ λ°©μκ³Ό ν¨μ ννμμΌλ‘ μ μνλ λ°©μ → ν¨μ ννμμΌλ‘ μ μνλ κ²μ κΆμ₯
• μ΅λͺ ν¨μ : μ΄λ¦μλ ν¨μ
- νμν κ³³μμ μ΄λ¦μ μ μνκ±°λ μ΄λ¦μ κ΅³μ΄ μ€ νμκ° μλ κ²½μ°μ μ¬μ©
- μ΄λ¦μ΄ μλ€λ κ² == νΉμ κ²½μ°μλ§ μ¬μ©νκ³ μ¬μ© ν μλμΌλ‘ μ κ±° → λ©λͺ¨λ¦¬ κ΄λ¦¬μ μ’μ
// μμ±λ°©λ²
function(){
}
μ΄λ¦μ΄ μκΈ° λλ¬Έμ λ³μμ λ£μ΄μ μ¬μ©νκ±°λ ν¨μμ μΈμλ‘ μ¬μ©
• μ½λ°±ν¨μ : μ΄λ²€νΈμ λ°μνλ ν¨μ
- μ΄λ²€νΈκ° λ°μνλ©΄ μλμΌλ‘ μ€ν
• μ¦μ μ€νν¨μ(Self-Invoking Functions) : ν¨μ μ μμ λμμ μ€ννλ ν¨μ
: ν¨μ νΈμΆ μμ΄ μλμΌλ‘ μ€ν
// νν
(function(){})();
ν¨μ μ μΈλΆμ λ°λλ₯Ό ()λ‘ μΈμ μ μΈ
β΄οΈ ν΄λ‘μ
: μ¦μμ€ν λ΄λΆν¨μλ‘ ν¨μμ μΊ‘μν, λ°νμ μ€νμ μΈμ κ°μ λ겨μ μλ λμλλ μμ μ μ¬μ©
: ν¨μ μμ 리ν΄κ°μΌλ‘ μ μλλ μ΅λͺ ν¨μλ‘ μΉ΄μ΄ν° λλ λ§μ μ¬μ©
• μΉ΄μ΄ν λλ λ§
- μΉ΄μ΄ν° λλ λ§λ νΉμ ν¨μκ° μ€νλ λ λ§λ€ 1μ© λμ λλ λ³μλ₯Ό μ μλ³μ λλ μ§μλ³μλ‘ μ§μ νμ λμ λ¨μ λλ¬Έμ λ°μ
- μΉ΄μ΄ν° λ³μκ° μ μλ³μμ΄λ©΄ λ³μ κ°μ΄ 1μ© μ¦κ°νλ μΉ΄μ΄ν μ λ°μνμ§λ§ 보μμ μ·¨μ½νλ€λ λ¬Έμ μ μ΄ λ°μ
- μΉ΄μ΄ν° λ³μκ° μ§μλ³μμ΄λ©΄ 보μμ μ’μ§λ§ μΉ΄μ΄ν μ΄ λμ§ μλ λ¬Έμ μ μ΄ λ°μ
- μ λ¬Έμ λ₯Ό ν΄κ²°ν λ ν΄λ‘μ λ₯Ό μ¬μ©
• μΉ΄μ΄ν°λ³μλ₯Ό μ μλ³μλ‘ μ μΈ
- μ²λ¦¬κ° μ¬μ°λ λꡬλ μ μλ³μμ μ κ·Ό κ°λ₯ → 보μλ¬Έμ λ°μ
• μΉ΄μ΄ν°λ³μλ₯Ό μ§μλ³μλ‘ μ μΈ
- ν¨μ λ°μμ μΉ΄μ΄ν°λ³μμ μ κ·Όμ λ§μμ 보μμ μ’μμ§μ§λ§ μΉ΄μ΄ν° λμ μν¨
- ν¨μλ₯Ό νΈμΆν λλ§λ€ μΉ΄μ΄ν°κ° 0μΌλ‘ μ΄κΈ°νλμ΄ μΉ΄μ΄ν μ΄ μλ¨
• ν΄λ‘μ λ₯Ό μ¬μ©ν μΉ΄μ΄ν λλ λ§ μ²λ¦¬
- μ¦μμ€νν¨μμ λ΄λΆν¨μλ₯Ό κ²°ν©ν ν΄λ‘μ λ₯Ό μ¬μ©ν΄μ λ³μμ 보μ κΈ°λ₯κ³Ό λμ κΈ°λ₯μ λͺ¨λ μΆ©μ‘±μν¬ μ μμ
- μ리 : λ± 1λ²λ§ μ€νλλ μ¦μμ€νν¨μλ₯Ό μ¬μ©ν΄μ μμμΈ μ΅λͺ λ΄λΆν¨μκ° λΆλͺ¨ν¨μμ μ€μ½νμ μ κ·Ό
β΄οΈ κ°μ²΄
: λ°μ΄ν°λ₯Ό κ°μ²΄λ‘ μ μ₯νλ©΄ ν λ°μ΄ν°λ₯Ό μνλ μμΉκΉμ§ μ λ¬ κ°λ₯
• JSμμ . λ°©λ²
- μ€λ¬΄μ²λ¦¬ μΉ νλ‘κ·Έλλ°μμ κ°μ²΄λ λ°μ΄ν° 1건μ νννλ©° κ°μ²΄κ° κ°μ§ κ°μ property, κ°μ²΄κ° νλ μΌμ methodλ‘ κΈ°μ
- JSμμ κ°μ²΄λ var κ°μ²΄λ³μλͺ = {property : κ°}; κ³Ό κ°μ΄ κ°μ²΄ 리ν°λ΄μ μ¬μ©ν΄μ μμ±
• κ°μ²΄ μ¬μ©(μ κ·Ό) : propertyλ methodλ₯Ό μ¬μ©ν΄μ μ κ·Ό
: propertyλ₯Ό μ¬μ©ν κ°μ²΄ κ°μ μ κ·Όν λ
// νμ
1. κ°μ²΄λͺ
.νλ‘νΌν°λͺ
2. κ°μ²΄λͺ
["νλ‘νΌν°λͺ
"]
• κ°μ²΄μ property λ°λ³΅ : for in
- for-inλ¬Έμ κ°μ²΄μμ μμ± 1κ°λ₯Ό λ½μμ μμ±μ μ₯λ³μμ λ£μ΄μ μμ±μ κ°μλ§νΌ λ°λ³΅ μ²λ¦¬
- var μμ±μ μ₯λ³μμ κ°μ΄ forλ¬Έ μμμ μμ±μ μ₯λ³μλ₯Ό μ μΈνλ©΄ λ³μμ μμμ μ’κ² μ€μ λ€ μ΄ ν λ©λͺ¨λ¦¬ ν΄μ κ° λΉ¨λ¦¬λ¨
// νμ
for(var μμ±μ μ₯λ³μ in κ°μ²΄λͺ
){}
• κ°μ²΄ property μμ : delete μ°μ°μ
// νμ
[delete κ°μ²΄.νλ‘νΌν°λͺ
]
• κ°μ²΄ λΉκ΅
- λ κ°μ²΄λ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ reference λ³μκ° κ°μΌλ©΄ κ°μ κ°μ²΄
• μμ±μ ν¨μ
- κ°μ²΄λ₯Ό μμ±ν λ μ¬μ©νλ ν → κ°μ²΄μ ννλ₯Ό κ²°μ
- ν΄λμ€λͺ μ μμ±νλ κ·μΉκ³Ό κ°μ
• λ΄μ₯κ°μ²΄
- JSλ μ«μ, λ¬Έμμ΄, λ°°μ΄, λ μ§ κ°μ²΄λ₯Ό μ 곡
Section 4. jQueryλ₯Ό μ¬μ©ν νκ·Έ μ μ΄μ Ajax
β΄οΈ jQuery κ°μ
- jQuery : λΉ λ₯΄κ³ κ°λ³κ³ λ€μν κΈ°λ₯μ κ°μ§ JS Library
- κ°μ₯ λ§μ΄ μ¬μ©λλ JS Libray
β΄οΈ jQuery κΈ°λ³Έ μ¬μ©λ²
• κΈ°λ³Έ λ¬Έλ²
- jQueryλ HTML νκ·Έλ₯Ό μ¬μ©ν΄μ μ΄λ€ λμμ μν
- μ리λ©νΈλ₯Ό μ¬μ©νλ€λ κ² = μ μ΄νλ κ²
- λμμ΄ λ°μλλ νκ·Έ == μ€λ ν°
// νΉμ λμ(action)μ΄ λ°μλλ©΄ μ²λ¦¬νλ λ¬Έλ²
$(selector).action()
• selector - HTML μ리먼νΈμ μ κ·Ό
- μ€λ ν°λ μ΄λ€ μμ μ μ²λ¦¬νκΈ° μν΄ νΉμ μ리먼νΈλ₯Ό μ ννλλ° μ¬μ©
- μ리먼νΈλͺ , μ리먼νΈμ id μμ± κ°, μ리먼νΈμ class μμ± κ° μ¬μ© κ°λ₯
→ μ½λ μμ± λ°©λ² : νμ¬ νμ΄μ§μ λ‘λ©μ΄ λλλ©΄ μλ μ€ν
$(document).ready(function(){//μ½λ}); μμ μμ±
β΄οΈHTML μλ¦¬λ¨ΌνΈ λ΄μ©μ μ κ·ΌνκΈ° - get/set
- HTML μλ¦¬λ¨ΌνΈ κ°μ²΄μ λ΄μ©μ μ κ·Όν΄μΌ μ리먼νΈμ λ΄μ©μ λ³κ²½ κ°λ₯
- μ리먼νΈμ λ΄μ©μ μ»μ΄λ΄κ±°λ λ³κ²½νλ λ©μλ
λ©μλ | μ€λͺ |
text() | μ νν μ리먼νΈμ λ΄μ©μ ν μ€νΈλ‘ ννλ‘ μ§μ νκ±°λ μ»μ΄λ |
html() | μ νν μ리먼νΈμ λ΄μ©μ HTML νκ·Έλ₯Ό ν¬ν¨νμ¬ μ§μ νκ±°λ μ»μ΄λ |
val() | νΌ νλμ κ°μ μ§μ νκ±°λ μ»μ΄λ |
β΄οΈ jQuery μ΄λ²€νΈ μ²λ¦¬
- μΉ νμ΄μ§μμμ μ΄λ²€νΈ == λ§μ°μ€λ₯Ό μ΄λνκ±°λ μ리먼νΈλ₯Ό ν΄λ¦ λλ λΌλμ€ λ²νΌ λ±μ ν΄λ¦νλ λμμ μν΄ λ°μ
• λ§μ°μ€ μ΄λ²€νΈ
- λ§μ°μ€ ν΄λ¦, λλΈν΄λ¦, λ§μ°μ€ ν¬μΈν°μ μμΉ λ±μ λ°μ
Mouse Events | μ€λͺ |
click | μ리먼νΈλ₯Ό ν΄λ¦μ λ°μ |
dbclick | μ리먼νΈλ₯Ό λλΈν΄λ¦μ λ°μ |
mouseenter | μ리먼νΈμ λ§μ°μ€ ν¬μΈν°κ° μμΉ |
mouseleave | μ리먼νΈμ μμΉλ λ§μ°μ€ ν¬μΈν°κ° λκ°λ©΄ λ°μ |
• ν€λ³΄λ μ΄λ²€νΈ
- ν€λ³΄λμ ν€λ₯Ό λλ₯΄κ±°λ, λλ₯Έ μνμμ λμ λ λ°μ
Keyboard Events | μ€λͺ |
keypress | ν€λ³΄λλ₯Ό λλ λ€ λμΌλ©΄ λ°μ |
keydown | ν€λ³΄λλ₯Ό λλ₯΄λ©΄ λ°μ |
keyup | λλ¦° ν€λ³΄λλ₯Ό λμΌλ©΄ λ°μ |
• νΌ μ΄λ²€νΈ
- νΌ μ리먼νΈκ° ν¬μ»€μ€λ₯Ό λ°κ±°λ μλ κ²½μ° or νΌμ μ μ‘νλ κ²½μ°μ λ°μ
Form Events | μ€λͺ |
submit | νΌμ μ μ‘ μ λ°μ |
change | νΌ μ리먼νΈκ° λ³κ²½λλ©΄ λ°μ |
focus | νΌ μ리먼νΈμ ν¬μ»€μ€κ° μμΉλλ©΄ λ°μ |
blur | νΌ μ리먼νΈκ° ν¬μ»€μ€λ₯Ό μμΌλ©΄ λ°μ |
• λνλ¨ΌνΈ/μλμ° μ΄λ²€νΈ
- μΉ νμ΄μ§μ λ‘λκ° λ°μλκ±°λ μλ£λλ κ²½μ° or μΉ λΈλΌμ°μ μ°½μ ν¬κΈ°κ° λ³κ²½λκ±°λ μ€ν¬λ‘€μ΄ μ΄λλ λ λ°μ
Document/Window Events | μ€λͺ |
ready | νμ΄μ§μ λ‘λκ° μλ£λλ©΄ λ°μ |
load | νμ΄μ§κ° λ‘λλλ©΄ λ°μ |
resize | μΉ λΈλΌμ°μ μ μ°½μ ν¬κΈ°λ₯Ό λ³κ²½νλ©΄ λ°μ |
scroll | μΉ λΈλΌμ°μ μ°½μ μ€ν¬λ‘€μ μ΄λνλ©΄ λ°μ |
unload | νμ΄μ§κ° μΈλ‘λλλ©΄ λ°μ |
β΄οΈ jQuery Ajax
- Ajax κΈ°λ₯μ ꡬνν λ©μλλλ€μ μ¬μ©
- μλ²λ‘λΆν° TEXT, HTML, XML or JSON ννμ νμΌμ μμ²νκ³ μλ΅λ°μ μ μλ κΈ°λ₯μ μ 곡
Method | μ€λͺ |
$.get() | μλ²λ‘ HTTP get λ°©μμ μμ² |
$.getJSON() | HTTP getλ°©μμ μ¬μ©ν΄μ JSON λ°μ΄ν°λ₯Ό μμ² |
$.post() | μλ²λ‘ HTTP post λ°©μμ μμ² |
.load() | μλ²λ‘ λ°μ΄ν°λ₯Ό μμ²νκ³ HTML μ리먼νΈμ μλ΅λ°μ κ²°κ³Όλ₯Ό λ‘λ |
$.ajax() | λΉλκΈ° Ajax μμ²μ μν. get, post λ°©μμ μ§μ ν΄μ μ¬μ© |
• .load() λ©μλ
- μλ²μ μμ²νκ³ μ§μ ν μ리먼νΈμ μλ΅ λ°μ κ²°κ³Όλ₯Ό λ£μ
- μλ΅ λ°μ κ²°κ³Όλ₯Ό νλ©΄μ νμν΄μΌνλ μμ μ μ€νν λ μ£Όλ‘ μ¬μ© → λ‘κ·ΈμΈ νΌ, νμκ°μ νΌ, κΈ λͺ©λ‘ λ±
⇒ url : μλ²μ μμ²ν urlλ‘ λ¬Έμμ΄λ‘ μ§μ . νμ μμ
⇒ data : μ μ‘ν νλΌλ―Έν°λ₯Ό ν€μ κ°μ μμ λ¬Έμμ΄ λλ κ°μ²΄λ‘ κΈ°μ . μ ν μμ
⇒ complete : μλ²κ° μ²λ¦¬ν μμ²μ λν μλ΅ κ²°κ³Όλ₯Ό μ»μ΄λ. μ ν μμ
- responseText → μλ΅ κ²°κ³Ό
- textStatus → μλ΅λ μν
- XMLHttpRequest → XMLHttpRequest κ°μ²΄ ν¬ν¨
• $.get()
- μλ²λ‘ HTTP get λ°©μμ μμ² → $.ajax() λ©μλλ κ°λ₯
⇒ url : μλ²μ μμ²ν urlλ‘ λ¬Έμμ΄λ‘ μ§μ . νμ μμ
⇒ data : μ μ‘ν νλΌλ―Έν°λ₯Ό ν€μ κ°μ μμ λ¬Έμμ΄ λλ κ°μ²΄λ‘ κΈ°μ . μ ν μμ
⇒ success : μλ²κ° μ²λ¦¬ν μμ²μ΄ μ±κ³΅νλ©΄ μ΄ μ½λ°±ν¨μλ μ€ν. μ ν μμ
- data → μμ²λ νμ΄μ§μ λ΄μ©
- textStatus → μ²λ¦¬ μν
- jqXHR → XMLHttpRequest κ°μ²΄
• $.post()
- μλ²λ‘ HTTP post λ°©μμ μμ² → $.ajax() λ©μλλ κ°λ₯
⇒ url : μλ²μ μμ²ν urlλ‘ λ¬Έμμ΄λ‘ μ§μ . νμ μμ
⇒ data : μ μ‘ν νλΌλ―Έν°λ₯Ό ν€μ κ°μ μμ λ¬Έμμ΄ λλ κ°μ²΄λ‘ κΈ°μ . μ ν μμ
⇒ success : μλ²κ° μ²λ¦¬ν μμ²μ΄ μ±κ³΅νλ©΄ μ΄ μ½λ°±ν¨μλ μ€ν. μ ν μμ
- data → μμ²λ νμ΄μ§μ λ΄μ©
- textStatus → μ²λ¦¬ μν
- jqXHR → XMLHttpRequest κ°μ²΄
• $.ajax()
- μλ²λ‘ λΉλκΈ° Ajax μμ²μ ν¨
- DBμ μ°λ ν μ²λ¦¬ κ²°κ³Όλ§μ λ°ννλ κ²½μ°μ μ¬μ©νλ©΄ μ’μ → Ex) λ‘κ·ΈμΈ μ²λ¦¬, νμ κ°μ μ²λ¦¬, κΈμ°κΈ° μ²λ¦¬ λ±
⇒ type : μλ²μ μμ²ν HTTP λ°©μ, get or post μ§μ
⇒ url : μλ²μ μμ²ν urlλ‘ λ¬Έμμ΄λ‘ μ§μ . νμ μμ
⇒ data : μ μ‘ν νλΌλ―Έν°λ₯Ό ν€μ κ°μ μμ λ¬Έμμ΄ λλ κ°μ²΄λ‘ κΈ°μ . μ ν μμ
⇒ success : μλ²κ° μ²λ¦¬ν μμ²μ΄ μ±κ³΅νλ©΄ function(data){} μ½λ°± ν¨μκ° μ€ν, λ§€κ°λ³μ dataλ μ²λ¦¬ κ²°κ³Όλ₯Ό λ°ν λ°μ.
successλ μ²λ¦¬ κ²°κ³Όμ λ°λ₯Έ μμ μνμ΄ νμν κ²½μ° μ¬μ©