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

λͺ©λ‘μ΄ μ—†μŠ΅λ‹ˆλ‹€.

[ITκΈ°μ΄ˆκ°œλ…]μ»΄νŒŒμΌλŸ¬μ™€ μΈν„°ν”„λ¦¬ν„°μ˜ 차이

πŸ”‘ Basic Concept

     

     

    컴파일러(Compiler)와 μΈν„°ν”„리터(Interpreter)의 μ°¨μ΄

    μ»΄νŒŒμΌλŸ¬λ‚˜ μΈν„°ν”„λ¦¬ν„°λ‚˜ ν•˜λŠ” 역할은 κ°™λ‹€

    μ‚¬λžŒμ΄ 이해할 수 μžˆλŠ” κ³ κΈ‰μ–Έμ–΄λ‘œ μž‘μ„±λœ μ†ŒμŠ€ μ½”λ“œλ₯Ό 

    기계가 이해할 수 μžˆλŠ” κΈ°κ³„μ–΄λ‘œ λ²ˆμ—­ν•œ 후에

    ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λŠ” 것인데 그럼 무슨 차이가 μžˆλƒ?

     

    μ‚΄νŽ΄λ³΄μž.

     

    컴파일러( Compiler )

    μ»΄νŒŒμΌλŸ¬λŠ” μ‚¬λžŒμ΄ μ†ŒμŠ€μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄ κ·Έ μ†ŒμŠ€μ½”λ“œλ₯Ό ν•œλ²ˆμ— λ²ˆμ—­μ„ ν•œλ‹€

    λ•Œλ¬Έμ— 쀄 λ‹¨μœ„λ‘œ λ²ˆμ—­μ„ μ§„ν–‰ν•˜λŠ” 인터프리터에 λΉ„ν•΄ 

    λ‹Ήμ—°νžˆ λ²ˆμ—­ μ‹œκ°„μ΄ 였래 걸리고 κ·Έ 과정이 λ³΅μž‘ν•˜λ‹€

    ν•˜μ§€λ§Œ ν•œ 번 λ²ˆμ—­μ„ ν•˜λ©΄ μ‹€ν–‰νŒŒμΌ(λͺ©μ νŒŒμΌ)이 생성 λ˜μ–΄ λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ 

    λ‹€μŒμ— μ‹€ν–‰ν•  λ•ŒλŠ” 이 파일만 μ‹€ν–‰ν•˜λ©΄ 되기 λ•Œλ¬Έμ— μ‹€ν–‰ μ‹œκ°„μ€ 인터프리터에 λΉ„ν•΄ λΉ λ₯΄λ‹€.

     

    인터프리터 ( Interpreter )

    μΈν„°ν”„λ¦¬ν„°λŠ” 컴파일러λ₯Ό μ„€λͺ…ν•  λ•Œ λ§ν–ˆμ§€λ§Œ

    ν•œ 쀄 ν•œ 쀄 μ€„λ‹¨μœ„λ‘œ λ²ˆμ—­κ³Ό 싀행을 μ§„ν–‰ν•˜κΈ° λ•Œλ¬Έμ—

    λ²ˆμ—­μ‹œκ°„μ€ λΉ λ₯΄μ§€λ§Œ μ‹€ν–‰μ‹œκ°„μ€ 느리고 직접 μ‹€ν–‰ν•˜κΈ° λ•Œλ¬Έμ— 

    μ‹€ν–‰νŒŒμΌμ„ μƒμ„±ν•˜μ§€ μ•Šμ•„ λ©”λͺ¨λ¦¬λŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

     

    쀄 λ‹¨μœ„λ‘œ λ²ˆμ—­κ³Ό 싀행을 μ§„ν–‰ν•˜κΈ° λ•Œλ¬Έμ— 쀑간에 문제 μžˆλŠ” μ½”λ“œλ₯Ό λ§Œλ‚œ 경우

    κ·Έ 쀄뢀터 μ•„λž˜λŠ” μ‹€ν–‰λ˜μ§€ μ•ŠλŠ”λ‹€. 

     

    그에 λΉ„ν•΄ μ»΄νŒŒμΌλŸ¬λŠ” ν•œλ²ˆμ— λ²ˆμ—­μ„ ν•˜κ³  싀행을 ν•˜κΈ° λ•Œλ¬Έμ— 

    ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 코딩을 ν•˜λ‹€κ°€ 였λ₯˜λ₯Ό μž‘μ„± ν–ˆμ„ λ•Œ μ „λΆ€ μž‘μ„±μ„ ν•˜κ³  μ‹€ν–‰νŒŒμΌμ„ λ§Œλ“€μ–΄μ„œ 싀행을 해봐야 μ•Œ 수 μžˆλ‹€.

    개발자 μž…μž₯μ—μ„œλŠ” 인터프리터가 쑰금 더 μœ λ¦¬ν•˜λ‹€κ³  ν•  수 μžˆλ‹€.

     

    그럼 κ°œλ°œμžλŠ” μΈν„°ν”„리터λ₯Ό μ“°λŠ”κ²Œ μ’‹μ€κ°€?

    λ‹Ήμ—°νžˆ μ•„λ‹ˆλ‹€.

     

    그러면 μ»΄νŒŒμΌλŸ¬λŠ” 진즉에 λ¬»ν˜€μ„œ μ‚¬λΌμ‘Œμ„ 것이닀.

    μΈν„°ν”„λ¦¬ν„°μ˜ 경우 μ›Ήμ—μ„œ 많이 μ‚¬μš©λ˜λŠ”λ° 

    κ·Έ μ΄μœ λŠ” λ‚΄ μƒκ°μ—λŠ” 컴파일러둜 웹을 μž‘μ„±ν•  경우 λ§Œμ•½ 쀑간에 였λ₯˜λ₯Ό μœ λ°œν•˜λŠ” μ½”λ“œλ₯Ό μž‘μ„± ν–ˆκ±°λ‚˜

    μœ μ§€λ³΄μˆ˜ ν•˜λŠ” 도쀑에 치λͺ…적인 였λ₯˜λ₯Ό λ°œμƒν•˜λŠ” μ½”λ“œλ₯Ό μ§‘μ–΄λ„£μ—ˆλ‹€λ©΄ 

    κ·Έ 웹은 μ•„μ˜ˆ μž‘λ™μ΄ λ˜μ§€ μ•Šκ³  μ‚¬μš©μžκ°€ λ³Ό 수 μ—†κ²Œ λœλ‹€. 

     

    ν•˜μ§€λ§Œ 인터프리터λ₯Ό μ‚¬μš©ν•˜λ©΄ 

    일정 뢀뢄이 였λ₯˜λ₯Ό 내도 κ·Έ μ „ κΉŒμ§€λŠ” μž‘λ™μ΄ 되기 λ•Œλ¬Έμ—

    μ»΄νŒŒμΌλŸ¬μ— λΉ„ν•΄μ„œ 손싀을 쀄일 수 μžˆλ‹€κ³  μƒκ°ν•œλ‹€. 

     

    그리고 였λ₯˜κ°€ μ–΄λ””μ„œ λ‚¬λŠ”μ§€ λ°”λ‘œ 확인할 수 있기 λ•Œλ¬Έμ— μœ μ§€λ³΄μˆ˜κ°€ μœ λ¦¬ν•˜λ‹€κ³  생각이 λœλ‹€.

    κ·Έλ ‡λ‹€κ³  인터프리터가 항상 쒋은것은 μ•„λ‹ˆκ³  μœ„μ—μ„œ μ–ΈκΈ‰ν–ˆλ‹€μ‹œν”Ό

    싀행속도가 느리기 λ•Œλ¬Έμ— 퍼포먼슀λ₯Ό μ€‘μš”μ‹œν•œλ‹€λ©΄

    컴파일러λ₯Ό μ μš©ν•˜λŠ”κ²ƒμ΄ μ’‹λ‹€.

     

     

     

     

    μ»΄νŒŒμΌλŸ¬μ™€ μΈν„°ν”„λ¦¬ν„°μ˜ 차이 μš”μ•½ 정리

     

     μ»΄νŒŒμΌλŸ¬

    인터프리터 

    λ²ˆμ—­λ‹¨μœ„ 

    전체 

    ν•œμ€„ 

    싀행속도 

    μƒλŒ€μ μœΌλ‘œ 빠름 

    μƒλŒ€μ μœΌλ‘œ 느림 

    λ²ˆμ—­μ†λ„

     μƒλŒ€μ μœΌλ‘œ 느림

    μƒλŒ€μ μœΌλ‘œ 빠름 

    λͺ©μ  파일(μ‹€ν–‰ 파일) 생성 유무 

    생성 

    생성 μ•ˆ 함 

     λ©”λͺ¨λ¦¬ ν• λ‹Ή

    ν• λ‹Ή λ°›μŒ 

    μ‚¬μš© μ•ˆ 함