πŸŽ„ μ„±μž₯일지 3.1

μ±… ν–‰λ³΅ν•œ 이기주의자(웨인 닀이어)의 λ‚΄μš©μ— μžκ·Ήλ°›μ•„ μ‹œμž‘ν•˜λŠ” μ†Œλ°•ν•œ μ„±μž₯기둝

μ‚΄μ•„μžˆλŠ” 꽃과 죽은 꽃은 μ–΄λ–»κ²Œ κ΅¬λ³„ν•˜λŠ”κ°€?
μ„±μž₯ν•˜κ³  μžˆλŠ” 것이 μ‚΄μ•„ μžˆλŠ” 것이닀.
생λͺ…μ˜ μœ μΌν•œ μ¦κ±°λŠ” μ„±μž₯이닀!

🌳 ν‚€μ›Œλ“œ (1.0)
μ΅œλŒ€ν•œ κ°„λ‹¨ν•˜κ²Œ 정리, 좔후에 λ³΄λ©΄μ„œ 슀슀둜 μ„€λͺ…
πŸ‰ κ²½ν—˜ μœ„μ£Όλ‘œ (2.0)
λ‹¨μˆœ 정보λ₯Ό μ „λ‹¬ν•˜κΈ°λ³΄λ‹€ 무엇을 λ°°μ› κ³  μ–΄λ–»κ²Œ ν•΄κ²°ν–ˆλŠ”μ§€ 짧고 κ°„λ‹¨ν•˜κ²Œ μž‘μ„±
❄️ 정해진 ν…œν”Œλ¦Ώμ— λ§žμΆ°μ„œ (3.0)
ν‚€μ›Œλ“œ, κ²½ν—˜ λͺ¨λ‘ μ’‹λ‹€. λ‹€λ§Œ 맀일 μž‘μ„±ν•˜κΈ°λ‘œ 마음 λ¨Ήμ€λ§ŒνΌ ν•΅μ‹¬λ§Œ κ°„κ²°ν•˜κ²Œ 정리할 수 있게 ν…œν”Œλ¦Ώμ„ μž‘μ„± (3.1) 230102λΆ€ν„° μ‹œμž‘λ˜λŠ” ν•™μŠ΅μ— κ΄€ν•œ λ‚΄μš© μΆ”κ°€

πŸ”‘ 였늘의 ν‚€μ›Œλ“œ

νƒ€νƒ€νƒ€νƒ€νƒ€νƒ€νƒ€μž…μŠ€ν¬ν¬ν¬ν¬ν¬ν¬ν¬λ¦½νŠΈ

처음 μžλ°”μŠ€ν¬λ¦½νŠΈ μ–Έμ–΄ 특유의 μžμœ λ‘œμ›€ λ•Œλ¬Έμ— λ„ˆλ¬΄ μ’‹μ•˜λ‹€. ν—Œλ° νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” λ­”κ°€ μ‹œνΌλŸ° 게, κ·Έ μžμœ λ‘œμ›€μ— 찬물을 λΆ“λŠ” λŠλ‚Œμ΄λΌ 막 호감이 가진 μ•Šμ•˜λ˜ κ±° κ°™λ‹€. 생각보닀 λ³΅μž‘ν•˜κΈ°λ„ ν•˜κ³  일일히 νƒ€μž…μ„ 지정해주어야 ν•˜λŠ” 게 μ•„μ£Ό 큰 μž₯점으둜 λŠκ»΄μ§€μ§„ μ•Šμ•˜λ‹€.(규λͺ¨κ°€ ꡉμž₯히 μž‘μ€ μ½”λ“œμ˜€μœΌλ‹ˆ) ν—Œλ°, μš”μ¦˜ νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ 맀λ ₯을 정말 정말 잘 λŠλΌλŠ” 쀑이닀. κΈ°μ‘΄ 동적 νƒ€μž… 언어인 μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ™„λ²½ν•˜μ§„ μ•Šλ”λΌλ„ μ–΄λŠμ •λ„ 정적 νƒ€μž…μœΌλ‘œ λ°”κΏ”μ£ΌλŠ” 점도 μ’‹μ§€λ§Œ, 무엇보닀 쒋은 건 μš”μ¦˜ 정말 재미있게 곡뢀쀑인 객체지ν–₯에 λ„ˆλ¬΄ 잘 μ–΄μšΈλ¦°λ‹€λŠ” 점이닀.(μ• μ΄ˆμ— 그런 λ‹ˆμ¦ˆμ— λ‚˜μ˜¨ 것도 μžˆκ² μ§€λ§Œ..!)

κΈ°μ–΅ν•΄λ‘˜ ν‚€μ›Œλ“œ

  • Union type (|)
  • Intersection type (&)
  • assertion (as)으둜 νƒ€μž… κ°•μ œν•˜κΈ° 그리고 사싀 κ°€λŠ₯ν•˜λ©΄ μ‚¬μš©ν•˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€λŠ” 점
  • type alias
  • discriminated Union type으둜 Union type λΆ„κΈ°μ²˜λ¦¬ν•˜λŠ” 방법
  • enum이 무엇인지, 그리고 가급적이면 enumλ³΄λ‹€λŠ” κ·Έλƒ₯ Union type μ“°κΈ°
  • any, unknown, void, never κΈ°μ–΅ν•˜κΈ°. μ΄μƒν•˜κ²Œ μ‘°κΈˆμ”© ν—·κ°ˆλ¦Όβ€¦ voidλ₯Ό μ œμ™Έν•œ 3κ°œλŠ” 사싀상 직접 μ‚¬μš©ν•˜λŠ” 건 μ§€μ–‘ν•œλ‹€!

πŸ“ μš”μ•½ 및 ν•˜λ£¨ 간단 회고

μ˜€λŠ˜μ€ ν—ˆμ μ΄ λ§Žμ§€λ§Œ λ‚˜λ¦„ 객체지ν–₯적으둜 HTML parser κ΅¬ν˜„μ„ μ™„μ„±ν–ˆλ‹€. 같은 νŒ€μ›μΈ snoop이 μ€€ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λŠ” ν•΄κ²° λͺ»ν–ˆμ§€λ§Œβ€¦γ…  νŒŒμ„œμ—μ„œ μŠ€νƒ ꡬ쑰둜만 데이터 쀑첩 처리λ₯Ό ν•΄μ£Όμ—ˆλ‹€. 이 λ•Œ, μžμ‹ νƒœκ·Έκ°€ 같은 μΈ΅μœ„(계급?)둜 μ—¬λŸ¬κ°œ μ£Όμ–΄μ‘Œμ„ λ•Œ children node둜 μ²˜λ¦¬ν•˜λŠ” 방법도 생각해봐야겠닀. μ•„, 그리고 이번 parser κ΅¬ν˜„μ€ TDD(ν…ŒμŠ€νŠΈ 주도 개발)λ₯Ό μ‘°κΈˆμ΄λΌλ„ ν‰λ‚΄λ‚΄λ©΄μ„œ μ§„ν–‰ν•΄λ³΄μ•˜λ‹€. μ•„μ£Ό κ°„λ‹¨ν•œ μ½”λ“œμ§€λ§Œ, jestλ₯Ό 톡해 객체(tokenizer, lexer, parser)듀을 ν•˜λ‚˜μ”© ν…ŒμŠ€νŠΈν•˜λ©΄μ„œ μ§„ν–‰ν–ˆλ‹€. 또, λ³Έ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° 전에 ν…ŒμŠ€νŠΈμ½”λ“œλΆ€ν„° μž‘μ„±ν•˜λ©΄μ„œ μ§„ν–‰ν•΄λ³΄μ•˜λ‹€. μ†”μ§νžˆ 아직은 μ½”λ“œμ˜ 규λͺ¨κ°€ μ•„μ£Ό 크진 μ•Šμ•„μ„œ κ·Έ μ†Œμ€‘ν•¨μ„ μ˜¨μ „νžˆ λŠλΌμ§„ λͺ»ν–ˆμ§€λ§Œ, μ•žμœΌλ‘œ 더더더 자주 ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄μ„œ 진행할 μ˜ˆμ •μ΄λ‹€. 무엇보닀 이전에 잠깐 λ°°μ› λ˜ λ¨Έμ‹ λŸ¬λ‹, λ”₯λŸ¬λ‹μ˜ 방식과 ꡉμž₯히 μœ μ‚¬ν•œ λŠλ‚Œμ΄λΌ μ‹ κΈ°ν–ˆλ‹€. inputκ³Ό output을 λ¨Όμ € μ€€λ‹€λŠ” 점이 λΉ„μŠ·ν–ˆκ³  쑰금의 차이(사싀 μ•„μ£Ό 큰 차이)라면 이후에 κ·Έ 값에 λŒ€ν•œ λ‘œμ§μ„ 직접 μ§œμ•Όν•œλ‹€λŠ” 것..! 이게 개발의 μž¬λ―Έμ΄μ§€ μ•Šμ„κΉŒ μ‹Άλ‹€.

이번 μ£Ό ν‚€ ν¬μΈνŠΈλŠ” 객체지ν–₯, νƒ€μž…μŠ€ν¬λ¦½νŠΈ , ν…ŒμŠ€νŠΈμ½”λ“œλ‘œ μš”μ•½ν•  수 μžˆμ„ 것 κ°™λ‹€. :)

였늘의 μž˜ν•œ 점

  • νŒŒμ„œ κ΅¬ν˜„ μ™„λ£Œν•œ 점
  • νƒ€μž…μŠ€ν¬λ¦½νŠΈ κΏ€μžΌ
  • ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„±ν•˜λ©΄μ„œ μ½”λ“œ μ§  점
  • 슀슀둜 곡뢀, ν•™μŠ΅μ˜ λ°©ν–₯이 μž‘ν˜€κ°€λŠ” 점

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

  • 미라클λͺ¨λ‹μ€ 잘 지킀고 μžˆλŠ”λ°, μžλŠ” μ‹œκ°„μ„ 쒀더 ν™•λ³΄ν•˜μ§€ μ•Šμ€ 점!(잠이 보약이닀!!!!!!)