[Language/JavaScript] JS νŠΉμ§•(인터프리터 μ–Έμ–΄)

2024. 2. 1. 17:58γ†πŸ”€ Language/JavaScript

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ νŠΉμ§• 쀑 ν•˜λ‚˜λŠ” 인터프리터 μ–Έμ–΄λΌλŠ” 것이닀.


인터프리터 μ–Έμ–΄ vs 컴파일러 μ–Έμ–΄

  • 싀행이전 μž‘μ—…
    μ½”λ“œκ°€ μ‹€ν–‰λ˜λŠ” 단계인 λŸ°νƒ€μž„μ— λ¬Έ λ‹¨μœ„λ‘œ ν•œ 쀄씩 μ€‘κ°„μ½”λ“œμΈ λ°”μ΄νŠΈμ½”λ“œλ‘œ λ³€ν™˜ ν›„ μ‹€ν–‰
    μ½”λ“œκ°€ μ‹€ν–‰λ˜κΈ° 이전 단계인 컴파일 νƒ€μž„μ— μ†ŒμŠ€μ½”λ“œ 전체λ₯Ό λ¨Έμ‹  μ½”λ“œλ‘œ λ³€ν™˜ ν›„ μ‹€ν–‰

  • μ‹€ν–‰νŒŒμΌ
    μΈν„°ν”„λ¦¬ν„°λŠ” μ‹€ν–‰νŒŒμΌμ„ μƒμ„±ν•˜μ§€ μ•Šκ³  μ»΄νŒŒμΌλŸ¬λŠ” μƒμ„±ν•œλ‹€.

  • λ‹¨κ³„μ˜ 뢄리
    μΈν„°ν”„λ¦¬νŠΈ 단계와 μ‹€ν–‰ 단계가 λΆ„λ¦¬λ˜μ–΄ μžˆμ§€ μ•Šμ•„μ„œ ν•œ 쀄씩 λ°”μ΄νŠΈμ½”λ“œλ‘œ λ³€ν™˜ν•˜κ³  μ¦‰μ‹œ μ‹€ν–‰ν•œλ‹€.
    컴파일 단계와 μ‹€ν–‰ 단계가 λΆ„λ¦¬λ˜μ–΄ μžˆμ–΄ 컴파일 단계λ₯Ό 거치고 μ‹€ν–‰ νŒŒμΌμ„ μ‹€ν–‰ν•œλ‹€.

  • κ³Όμ •μ˜ μˆ˜ν–‰
    μ½”λ“œκ°€ 싀행될 λ•Œλ§ˆλ‹€ μΈν„°ν”„λ¦¬νŠΈ 과정이 반볡적으둜 μˆ˜ν–‰λœλ‹€.
    싀행에 μ•žμ„œ μ»΄νŒŒμΌμ€ ν•œλ²ˆλ§Œ μˆ˜ν–‰λœλ‹€.

  • μ½”λ“œμ‹€ν–‰ 속도
    μΈν„°ν”„λ¦¬νŠΈ 단계와 μ‹€ν–‰ 단계가 λΆ„λ¦¬λ˜μ–΄ μžˆμ§€ μ•Šκ³  반볡 μˆ˜ν–‰λ˜λ―€λ‘œ μ½”λ“œ μ‹€ν–‰ 속도가 비ꡐ적 λŠλ¦¬λ‹€
    컴파일과 μ‹€ν–‰ 단계가 λΆ„λ¦¬λ˜μ–΄ μžˆμ–΄ μ½”λ“œ μ‹€ν–‰ 속도가 λΉ λ₯΄λ‹€.


μ΅œκ·ΌνŠΈλ Œλ“œ

μΈν„°ν”„λ¦¬νŠΈ μ–Έμ–΄μ˜ ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ λ³΅μž‘ν•œ 과정을 거쳐 일뢀 μ†ŒμŠ€μ½”λ“œλ₯Ό μ»΄νŒŒμΌν•˜κ³  μ‹€ν–‰ν•œλ‹€. 각 μ–Έμ–΄μ˜ ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κ³  μž₯점을 살리기 μœ„ν•΄ λ§Žμ€ 연ꡬ듀이 진행쀑에 있으며 두 μ–Έμ–΄μ˜ 기술적 ꡬ뢄이 λͺ¨ν˜Έν•΄μ Έ κ°€λŠ” μΆ”μ„Έλ‹€.

Ref
λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ Deep Dive