230125(μ)
π μ±μ₯μΌμ§ 3.1
μ±
ν볡ν μ΄κΈ°μ£Όμμ(μ¨μΈ λ€μ΄μ΄)
μ λ΄μ©μ μκ·Ήλ°μ μμνλ μλ°ν μ±μ₯κΈ°λ‘
μ΄μμλ κ½κ³Ό μ£½μ κ½μ μ΄λ»κ² ꡬλ³νλκ°?
μ±μ₯νκ³ μλ κ²μ΄ μ΄μ μλ κ²μ΄λ€.
μλͺ μ μ μΌν μ¦κ±°λ μ±μ₯μ΄λ€!
π³ ν€μλ (1.0)
μ΅λν κ°λ¨νκ² μ 리, μΆνμ 보면μ μ€μ€λ‘ μ€λͺ
π κ²½ν μμ£Όλ‘ (2.0)
λ¨μ μ 보λ₯Ό μ λ¬νκΈ°λ³΄λ€ λ¬΄μμ λ°°μ κ³ μ΄λ»κ² ν΄κ²°νλμ§ μ§§κ³ κ°λ¨νκ² μμ±
βοΈ μ ν΄μ§ ν νλ¦Ώμ λ§μΆ°μ (3.0)
ν€μλ, κ²½ν λͺ¨λ μ’λ€. λ€λ§ λ§€μΌ μμ±νκΈ°λ‘ λ§μ λ¨Ήμλ§νΌ ν΅μ¬λ§ κ°κ²°νκ² μ 리ν μ μκ² ν νλ¦Ώμ μμ± (3.1) 230102λΆν° μμλλ νμ΅μ κ΄ν λ΄μ© μΆκ°
π μ€λμ ν€μλ
XML
- Extensible Markup Languageλ‘ λ°μ΄ν°λ₯Ό μ μνλ κ·μΉμ μ 곡νλ λ€λͺ©μ λ§ν¬μ μΈμ΄
- μ£Όλ‘ λ€λ₯Έ μ’ λ₯μ μμ€ν , νΉν μΈν°λ·μ μ°κ²°λ κ²λ€λΌλ¦¬ λ°μ΄ν°λ₯Ό μ½κ² μ£Όκ³ λ°μ μ μκ² ν λͺ©μ μΌλ‘ λ§λ€μ΄μ‘λ€.
ν ν°
- νλ‘κ·Έλλ° μΈμ΄μμ λ μ΄μ λλ μ μλ κΈ°λ³Έμ μΈ μΈμ΄μμ(κ°μ₯ μμ μμλ€)
- νλμ ν€μλ, μ°μ°μ λλ ꡬλμ λ±
μ κ·ννμ(μ κ·μ)
- λ¬Έμμ΄μμ νΉμ λ¬Έμ μ‘°ν©μ μ°ΎκΈ° μν ν¨ν΄.
- μλ°μ€ν¬λ¦½νΈμλ RegExpλ‘ μ κ·μμ κ°μ²΄λ‘μ μ¬μ©ν μ μλ€.
- μ΄μΈμλ Stringμ match(), matchAll(), replace(), replaceAll(), search(), split() λ©μλμ ν¨κ» μ¬μ©ν μ μλ€.
Stack
- λ°μ΄ν°λ₯Ό μ μ₯νκΈ° μν μλ£κ΅¬μ‘° μ€ νλ
- λμ€μ λ€μ΄μ¨ λ°μ΄ν°κ° λ¨Όμ λκ°λ
Last In Frist Out(LIFO)
- μ£Όλ‘ push, pop μΌλ‘ λ°μ΄ν°λ₯Ό λ£κ³ κΊΌλΈλ€.
DOM
- λ¬Έμ κ°μ²΄ λͺ¨λΈ(Document Object Model)λ‘, HTMLκ³Ό XML λ¬Έμμ νλ‘κ·Έλλ° μΈν°νμ΄μ€μ΄λ€.
- HTML, XMLμ νΈλ¦¬κ΅¬μ‘°μ ννλ‘ μ μ₯ν κ²μ΄λ€.
Tokenizer
- textλ₯Ό μλ―Έλ‘ μ κ°μ₯ μμ λ¨μμΈ tokenμΌλ‘ λλλ λꡬ
Lexer
- Lexical Analyserμ μ½μλ‘, μ΄ν λΆμκΈ°λ₯Ό μλ―Ένλ€.
- ν ν°μ μλ―Έλ₯Ό λΆμνλ μν μ νλ€.(ν ν°λ€μκ² μλ―Έλ₯Ό λΆμ¬νλ μν )
Parser
- μ λ ₯ λ°μ΄ν°λ₯Ό κ°μ§κ³ ꡬ쑰μ μΌλ‘ λνλΌ μ μκ² λμμ£Όλ λꡬ
- ν κ·Όνλ μμ€μ½λλ₯Ό ν΅ν΄ AST(μΆμ ꡬ문 νΈλ¦¬)λ₯Ό λ§λ λ€.
tokenizer -> lexer -> parser μμ
input: [1, [2, [3]], 'jayden is the best']
# tokenizer
['1', '[2,[3]]', '['jayden', 'is', 'the', 'best']']
# lexer
[
{type: 'number', value: '1'},
{type: 'array', value: '[2,[3]]'},
{type: 'array', value: '['jayden', 'is', 'the', 'best']'}
]
# parser
{
type: 'array',
child: [
{type: 'number', value: '1', child: []},
{type: 'array',
child: [
{ type: 'number', value: '2', child: []},
{ type: 'array',
child:[ {type:'number', value:'3', child: []} ]
}
]
},
{type: 'array',
child:[
{ type: 'string', value: 'jayden', child: [] },
{ type: 'string', value: 'is', child: [] },
{ type: 'string', value: 'the', child: [] },
{ type: 'string', value: 'best', child: [] },
]
}
]
}
π μμ½ λ° ν루 κ°λ¨ νκ³
XML, HTML λ±μ DOM(Document Object Model)μΌλ‘ νμ±νλ κ³Όμ μ 곡λΆνλ€. κ·Έλ¦¬κ³ μ΄ κ³Όμ μμ ν ν¬λμ΄μ , λ μ, νμλ₯Ό λλ μ μ 체μ μΈ XML νμλ₯Ό ꡬνν΄λ³΄λ μ€μ΄λ€!
μ΄μ 무μΈκ°λ₯Ό κ°μ²΄λ‘ λ°λΌλ³΄κ³ νλ‘κ·Έλλ°μ νλ λ°©λ²μ΄ μ‘°κΈ μ΅μν΄μ§λ κ² κ°λ€. λ¬Όλ‘ κ·Έ ꡬ체μ μΈ κ΅¬νμ λ μμ±ν΄λ³΄κ³ μ½μ΄μΌκ² μ§λ§ λ§μ΄λ€.
곡λΆνλ₯Ό νλ©΄μ κ°μ²΄μ§ν₯μ μ¬μ€κ³Ό μ€ν΄
λΌλ μ±
μ μ½λ μ€μ΄λ€. μ΄μ μ μ½λ€κ° λ무 μμ μ μΈ λλμ ν¬κΈ°νμλ€. νλ°, μ§κΈ μ΄λμ λ κ°μ²΄μ§ν₯μ 곡λΆνκ³ μ½μΌλ λ무λ무 μ¬λ―Έμκ³ μ μ½νλ€. λ, μ΄ μ±
μ μ μκ°
μΌλ§λ κ°μ²΄μ§ν₯μ λν΄ λ§μ μκ°μ νμλμ§ λκ»΄μ§λ€. μ±
μ μ½μΌλ©΄μ μ λ§ λ§μ λλ μ±
λ€μ κ·Έ λ΄μ©μ μ 리ν΄μ λΈλ‘κ·Έμ μ¬λ¦¬κ³€ νλλ°, μ΄ μ±
μ μ¬κΈ°μ λ μ 리ν μκ° μμκΉ μΆμ μ λλ‘ μΆμνκ° μλμ΄μλ€.(γ
γ
)
μ΄λ° μ±
μ μ¨μ£Όμ μ μλκ» μ λ§μ λ§ κ°μ¬λλ¦°λ€.γ
γ
μ€λμ μν μ
- λλ§μ μ€κ³λ₯Ό μκ³ μκ² μ λλ μ
- νμ ꡬν μμν μ
- νμ μ€ν¬λ¦½νΈ κ°μ μμν μ
- κ°μ²΄μ§ν₯μ λν ν₯λ―Έκ° κ³μ 컀μ§λ μ
μ€λμ μμ¬μ΄ μ
- κΈ°λκΈ΄ μ°ν΄κ° λλκ³ μ²« λ μ΄λΌ, μμ£Ό μ¬μλ μ‘Έμλ€. κ·Όλ° μ¬μ€ μ’ μ‘Έ μλ μλ€κ³ μκ°ν΄μ ν¬κ² μμ½μ§ μλ€. γ γ γ γ γ γ γ γ γ γ