λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Develop Study πŸ’»

μ •μ νƒ€μž…, λ™μ νƒ€μž… / 컴파일 νƒ€μž„, λŸ°νƒ€μž„

728x90
λ°˜μ‘ν˜•

μ½”λ“œκ°€ μž‘λ™ 될 λ•Œ
-> 컴퓨터가 μ†ŒμŠ€μ½”λ“œλ₯Ό 이해할 수 μžˆλ„λ‘ κΈ°κ³„μ–΄λ‘œ λ³€ν™˜λ˜λŠ” μ‹œμ  : 컴파일 νƒ€μž„
-> λ³€ν™˜λœ ν›„ 컴퓨터 λ©”λͺ¨λ¦¬μ–΄ μ μž¬λ˜μ–΄ μ‹€ν–‰λ˜λŠ” νƒ€μž„ : λŸ°νƒ€μž„ 

 

컴파일 μ—λŸ¬ 

ν”„λ‘œκ·Έλž¨μ΄ λΉŒλ“œλ  λ•Œ μƒκΈ°λŠ” 였λ₯˜ 

  • Syntax Error
  • Type 체크 μ—λŸ¬
  • 파일 μ°Έμ‘° 였λ₯˜

 

λŸ°νƒ€μž„μ—λŸ¬

ν”„λ‘œκ·Έλž¨μ΄ μ„±κ³΅μ μœΌλ‘œ λŒμ•„λ„ κ·Έ λ‚΄λΆ€μ—μ„œ μƒκΈ°λŠ” 였λ₯˜λ“€ 

 

정적 νƒ€μž… μ–Έμ–΄

μ»΄νŒŒμΌνƒ€μž„μ— λ³€μˆ˜μ˜ νƒ€μž…μ΄ 결정됨
νƒ€μž…μŠ€ν¬λ¦½νŠΈλ„ 여기에 속함 
c, java: μ‹€ν–‰(λŸ°νƒ€μž„)이 되기 μœ„ν•΄μ„œ μ»΄νŒŒμΌν•˜λŠ” 과정을 거쳐야함 

 

 

동적 νƒ€μž… μ–Έμ–΄

λŸ°νƒ€μž„μ‹œ λ³€μˆ˜μ˜ νƒ€μž…μ΄ 결정됨
파이썬, μžλ°”μŠ€ν¬λ¦½νŠΈ : (컴파일이 ν•„μš” μ—†μŒ) ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  λ•Œ (runtime) νƒ€μž… μ—λŸ¬κ°€ 발견됨 

 

슀크립트 μ–Έμ–΄λŠ” 컴파일이 ν•„μš”μ—†λŠ” 이유 

interpreterλΌλŠ” 기계어 λ²ˆμ—­ ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰ μ‹œμ (runtime)에 μ½”λ“œλ₯Ό ν•œ 쀄씩 κΈ°κ³„μ–΄λ‘œ ν•΄μ„ν•˜κ³  μ¦‰μ‹œ μ‹€ν–‰ν•˜κΈ° λ•Œλ¬Έ 

1. 인터프리터 방식 (쀄 λ‹¨μœ„ μ‹€ν–‰)
컴파일 μ–Έμ–΄λŠ” 전체 μ†ŒμŠ€ μ½”λ“œλ₯Ό κΈ°κ³„μ–΄λ‘œ λ³€ν™˜ν•œ 파일(μ‹€ν–‰ 파일)을 λ¨Όμ € λ§Œλ“€μ§€λ§Œ, 슀크립트 μ–Έμ–΄λŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•œ ν›„ 인터프리터에 μž…λ ₯ν•˜λ©΄, μΈν„°ν”„리터가 ν•œ 쀄씩 μ½μ–΄μ„œ λ°”λ‘œ κΈ°κ³„μ–΄λ‘œ λ°”κΎΈμ–΄ μ‹€ν–‰ν•©λ‹ˆλ‹€. 이 λ•Œλ¬Έμ— λ³„λ„μ˜ 컴파일 과정이 ν•„μš” μ—†μŒ 

2. λŸ°νƒ€μž„ μ‹œμ μ˜ 해석
슀크립트 μ–Έμ–΄λŠ” μ‹€ν–‰ μ‹œμ (runtime)에 μ½”λ“œλ₯Ό ν•΄μ„ν•˜κΈ° λ•Œλ¬Έμ—, ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ „ 미리 κΈ°κ³„μ–΄λ‘œ λ³€ν™˜ν•΄λ‘˜ ν•„μš”κ°€ μ—†μŒ. μ΄λŠ” μ½”λ“œ μˆ˜μ • ν›„ μ¦‰μ‹œ λ‹€μ‹œ μ‹€ν–‰ν•΄μ„œ 확인할 수 μžˆλŠ” λΉ λ₯Έ 개발 μ£ΌκΈ°λ₯Ό κ°€λŠ₯ν•˜κ²Œν•¨. 

3. 호슀트 ν”„λ‘œκ·Έλž¨/λŸ°νƒ€μž„ ν™˜κ²½μ— 의쑴
λŒ€λΆ€λΆ„μ˜ 슀크립트 μ–Έμ–΄λŠ” λ‹¨λ…μœΌλ‘œ μ‹€ν–‰λ˜κΈ°λ³΄λ‹€, μ›Ή λΈŒλΌμš°μ €(JavaScript)λ‚˜ νŠΉμ • μ„œλ²„ ν™˜κ²½(PHP, Python) 같은 ν˜ΈμŠ€νŠΈ ν™˜κ²½(Runtime Environment) λ‚΄μ—μ„œ 싀행됨.  파이썬의 경우 venv κ°€μƒν™˜κ²½μ„ activeν•˜λŠ” 과정이 이에 ν•΄λ‹Ή. ν•΄λ‹Ή ν™˜κ²½μ΄ 인터프리터λ₯Ό ν¬ν•¨ν•˜κ³  μžˆμ–΄, 별도 컴파일 없이 μ½”λ“œλ₯Ό λ°”λ‘œ ν•΄μ„ν•˜μ—¬ λ™μž‘ν•¨

 

 

https://youtu.be/nrxtQcCLHo4?si=3nCahEWB-eRqvzNY

 

728x90
λ°˜μ‘ν˜•