πŸŽ„ μ„±μž₯일지 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 νŒŒμ„œλ₯Ό κ΅¬ν˜„ν•΄λ³΄λŠ” 쀑이닀! 이제 무언가λ₯Ό 객체둜 바라보고 ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λŠ” 방법이 쑰금 μ΅μˆ™ν•΄μ§€λŠ” 것 κ°™λ‹€. λ¬Όλ‘  κ·Έ ꡬ체적인 κ΅¬ν˜„μ€ 더 μž‘μ„±ν•΄λ³΄κ³  μ½μ–΄μ•Όκ² μ§€λ§Œ 말이닀.
κ³΅λΆ€ν•˜λ₯Ό ν•˜λ©΄μ„œ 객체지ν–₯의 사싀과 μ˜€ν•΄λΌλŠ” 책을 μ½λŠ” 쀑이닀. 이전에 읽닀가 λ„ˆλ¬΄ μ€μœ μ μΈ λŠλ‚Œμ— ν¬κΈ°ν–ˆμ—ˆλ‹€. ν—Œλ°, μ§€κΈˆ μ–΄λŠμ •λ„ 객체지ν–₯을 κ³΅λΆ€ν•˜κ³  μ½μœΌλ‹ˆ λ„ˆλ¬΄λ„ˆλ¬΄ 재미있고 잘 μ½νžŒλ‹€. 또, 이 μ±…μ˜ μ €μžκ°€ μ–Όλ§ˆλ‚˜ 객체지ν–₯에 λŒ€ν•΄ λ§Žμ€ 생각을 ν•˜μ‹œλŠ”μ§€ λŠκ»΄μ§„λ‹€. 책을 μ½μœΌλ©΄μ„œ 정말 λ§˜μ— λ“œλŠ” 책듀은 κ·Έ λ‚΄μš©μ„ μ •λ¦¬ν•΄μ„œ λΈ”λ‘œκ·Έμ— 올리곀 ν•˜λŠ”λ°, 이 책은 μ—¬κΈ°μ„œ 더 정리할 μˆ˜κ°€ μžˆμ„κΉŒ 싢을 μ •λ„λ‘œ 좔상화가 μž˜λ˜μ–΄μžˆλ‹€.(γ…‹γ…‹) 이런 책을 써주신 μ €μžλ‹˜κ»˜ 정말정말 κ°μ‚¬λ“œλ¦°λ‹€.γ… γ… 

였늘의 μž˜ν•œ 점

  • λ‚˜λ§Œμ˜ 섀계λ₯Ό μž‘κ³  μž‘κ²Œ 잘 λ‚˜λˆˆ 점
  • νŒŒμ„œ κ΅¬ν˜„ μ‹œμž‘ν•œ 점
  • νƒ€μž…μŠ€ν¬λ¦½νŠΈ κ°•μ˜ μ‹œμž‘ν•œ 점
  • 객체지ν–₯에 λŒ€ν•œ ν₯λ―Έκ°€ 계속 μ»€μ§€λŠ” 점

였늘의 μ•„μ‰¬μš΄ 점

  • κΈ°λ‚˜κΈ΄ μ—°νœ΄κ°€ λλ‚˜κ³  첫 날이라, μ•„μ£Ό 쬐에끔 μ‘Έμ•˜λ‹€. 근데 사싀 μ’€ μ‘Έ μˆ˜λ„ μžˆλ‹€κ³  μƒκ°ν•΄μ„œ 크게 아쉽진 μ•Šλ‹€. γ…Žγ…Žγ…Žγ…Žγ…Žγ…Žγ…Žγ…Žγ…Žγ…Ž