Mo!
[Java] μžλ°”λŠ” 컴파일 언어인가 인터프리터 언어인가? λ³Έλ¬Έ
Java

[Java] μžλ°”λŠ” 컴파일 언어인가 인터프리터 언어인가?

5사 2024. 7. 5.
πŸ’‘  κ²°λ‘  : μžλ°”λŠ” 컴파일 언어와 인터프리터 μ–Έμ–΄μ˜ νŠΉμ„±μ„ λͺ¨λ‘ κ°€μ§€κ³  μžˆλŠ” 언어이닀.

1. μ»΄νŒŒμΌμ΄λž€?

  • μ»΄νŒŒμΌμ΄λž€ 인간이 이해할 수 μžˆλŠ” κ³ κΈ‰ μ–Έμ–΄λ‘œ μž‘μ„±ν•œ ν”„λ‘œκ·Έλž¨(μ†ŒμŠ€ μ½”λ“œ)을 μ»΄ν“¨ν„°κ°€ μ‹€ν–‰κ°€λŠ₯ν•œ ν˜•μ‹μΈ κΈ°κ³„μ–΄μ˜ ν”„λ‘œκ·Έλž¨μœΌλ‘œ λ³€ν™˜ν•˜λŠ” μž‘μ—…μ„ λ§ν•œλ‹€.

 

2. 컴파일 언어와 인터프리터 μ–Έμ–΄μ˜ 차이점은?

  • 컴파일 μ–Έμ–΄ : μ½”λ“œκ°€ μ‹€ν–‰λ˜κΈ° μ „ μ»΄νŒŒμΌλŸ¬λ₯Ό κ±°μ³μ„œ κΈ°κ³„μ–΄λ‘œ λͺ¨λ‘ λ³€ν™˜λ˜μ–΄ μ‹€ν–‰λ˜λŠ” ν”„λ‘œκ·Έλž˜λ° 언어이닀. μ»΄νŒŒμΌλŸ¬λŠ” μ†ŒμŠ€ μ½”λ“œ 전체λ₯Ό ν•œ λ²ˆμ— λΆ„μ„ν•˜κ³ , μ΅œμ ν™”λ₯Ό μˆ˜ν–‰ν•œ ν›„ μ‹€ν–‰ νŒŒμΌμ„ μƒμ„±ν•œλ‹€.

    • μ‹€ν–‰ νŒŒμΌμ€ μ»΄ν“¨ν„°μ—μ„œ 직접 싀행될 수 μžˆμœΌλ―€λ‘œ, 인터프리터 언어에 λΉ„ν•΄ μ‹€ν–‰ 속도가 λΉ λ₯΄λ‹€.
    • 컴파일 κ³Όμ •μ—μ„œ μ½”λ“œ μ΅œμ ν™”μ™€ 였λ₯˜ 검사가 μ΄λ£¨μ–΄μ§€λ―€λ‘œ, 더 μ•ˆμ •μ μΈ ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€ 수 μžˆλ‹€.
    • 개발 κ³Όμ •μ—μ„œ 컴파일 μ‹œκ°„μ΄ μ†Œμš”λ˜λ―€λ‘œ, 인터프리터 언어에 λΉ„ν•΄ 개발 속도가 느릴 수 μžˆλ‹€.
    • 컴파일된 μ‹€ν–‰ νŒŒμΌμ€ νŠΉμ • 운영 μ²΄μ œμ™€ μ•„ν‚€ν…μ²˜μ— μ’…μ†λ˜λ―€λ‘œ, λ‹€λ₯Έ ν™˜κ²½μ—μ„œ μ‹€ν–‰ν•˜λ €λ©΄ λ³„λ„μ˜ 컴파일 과정이 ν•„μš”ν•˜λ‹€.
    • λŒ€ν‘œμ μΈ 컴파일러 μ–Έμ–΄ : C, C++, Java, Go

  • 인터프리터 μ–Έμ–΄ : μ½”λ“œλ₯Ό ν•œ 쀄씩 읽어 λ“€μ΄λ©΄μ„œ μ¦‰μ‹œ μ‹€ν–‰ν•˜λŠ” 방식, μ†ŒμŠ€ μ½”λ“œλ₯Ό 직접 ν•΄μ„ν•˜κ³  μ‹€ν–‰ν•˜λ―€λ‘œ, 컴파일 과정이 ν•„μš”ν•˜μ§€ μ•Šλ‹€.

    • 개발과 ν…ŒμŠ€νŠΈ κ³Όμ •μ—μ„œ λΉ λ₯Έ ν”Όλ“œλ°±μ„ 받을 수 μžˆλ‹€.
    • 동적 타이핑을 μ§€μ›ν•˜μ—¬ λ³€μˆ˜μ˜ νƒ€μž…μ„ λͺ…μ‹œν•˜μ§€ μ•Šμ•„λ„ λ˜λ―€λ‘œ μ½”λ“œ μž‘μ„±μ΄ κ°„κ²°ν•΄μ§„λ‹€.
    • μ‹€ν–‰ 속도가 μƒλŒ€μ μœΌλ‘œ λŠλ¦¬λ‹€.
    • λ§€ μ‹€ν–‰ μ‹œλ§ˆλ‹€ μ†ŒμŠ€ μ½”λ“œλ₯Ό 해석해야 ν•˜λ―€λ‘œ, λŒ€κ·œλͺ¨ ν”„λ‘œκ·Έλž¨μ΄λ‚˜ λ³΅μž‘ν•œ 연산을 μˆ˜ν–‰ν•  λ•ŒλŠ” μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•  수 μžˆλ‹€.
    • μ‹€ν–‰ μ€‘μ—λ§Œ 였λ₯˜λ₯Ό λ°œκ²¬ν•  수 μžˆμ–΄ 디버깅이 μ–΄λ €μšΈ 수 μžˆλ‹€.
    • μ†ŒμŠ€ μ½”λ“œκ°€ κ·ΈλŒ€λ‘œ λ…ΈμΆœλ˜λ―€λ‘œ μ½”λ“œ λ³΄μ•ˆμ— μ·¨μ•½ν•  수 μžˆλ‹€.
    • λŒ€ν‘œμ μΈ 인터프리터 μ–Έμ–΄ : Python, JavaScript

⇒ 각 μ–Έμ–΄μ˜ νŠΉμ„±μ„ μ΄ν•΄ν•˜κ³  ν”„λ‘œμ νŠΈμ˜ μš”κ΅¬ 사항에 맞게 μ„ νƒν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

 

3. μžλ°”λŠ” μ™œ 컴파일 언어와 인터프리터 μ–Έμ–΄μ˜ νŠΉμ„±μ„ λͺ¨λ‘ κ°€μ§€κ³  μžˆλŠ”κ°€?

  • μžλ°” μ†ŒμŠ€ μ½”λ“œλŠ” λ¨Όμ € μžλ°” μ»΄νŒŒμΌλŸ¬μ— μ˜ν•΄ λ°”μ΄νŠΈμ½”λ“œλ‘œ λ³€ν™˜λ˜κ³ , 이 λ°”μ΄νŠΈμ½”λ“œλŠ” μžλ°” 가상 λ¨Έμ‹ (JVM)μ—μ„œ μΈν„°ν”„λ¦¬νŠΈ λ˜μ–΄ μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

  • μ΄λŸ¬ν•œ νŠΉμ„± λ•Œλ¬Έμ— μžλ°”λŠ” WORA(Write Once, Run Anywhere), ν•œλ²ˆ μž‘μ„±ν•˜λ©΄ μ–΄λŠ ν”Œλž«νΌμ—μ„œλ“  μ‹€ν–‰ν•  수 μžˆλ‹€λŠ” μž₯점을 κ°€μ§„λ‹€.

[μ°Έκ³  μ‚¬μ΄νŠΈ]

 

Comments