본문 바로가기
ETC/IT 지식

[IT] 인터프리터 언어 vs 컴파일 언어 : 아주 쉽게 그림으로 정리

by 알기 쉬운 코딩 사전 2024. 11. 20.
반응형

✅ 참고

컴퓨터는 기계어 밖에 읽지 못합니다.
즉, 프로그래밍 언어(Java, Python)로 작성된 프로그램 코드를 직접 읽지 못합니다.
그렇기 때문에 프로그래밍 언어를 기계어로 변환해 주는 작업이 필요합니다.
참고: 바이너리 코드, 기계어, 어셈블리어, 저급 언어 모두 같은 말입니다.

 

📄 컴파일 언어란?

  • 컴파일 언어란 이름 그대로 컴파일(번역) 작업을 하는 프로그래밍 언어입니다.
  • Java 프로그램은 컴퓨터가 프로그램을 실행하기 전에 미리 기계어로 번역해둡니다.
    -> 번역하는 작업을 컴파일이라고 하며, 번역된 작업물을 빌드(build)된 프로그램 이라고 합니다.

  • 해리포터 책을 생각해 봅시다.
  • 독자가 책을 읽기 전에 출판사에서는 해리포터 영문판 책을 해리포터 한글판 책으로 번역해서 판매해야 합니다.
  • 즉, 책을 읽기 전(구매하기 전)에 해리포터 책은 영문판에서 한글판으로 미리 번역이 되어 있어야 합니다.

참고: 컴파일 언어의 대표적인 언어는 C, Java 등이 있습니다.

 

컴파일 언어의 장단점

장점

  • 미리 번역(컴파일)된 코드를 컴퓨터가 읽어 프로그램 실행 속도가 빠릅니다.
  • 프로그램 코드를 미리 번역(컴파일) 하기 때문에 프로그램 실행 중에 오류 위험이 적습니다.

단점

  • 컴파일 오류가 발생할 가능성이 있으며, 상대적으로 인터프리터 언어보다 개발이 오래걸립니다.
참고: 프로그램 오류 중 가장 좋은 오류는 컴파일 오류이며,
프로그램 오류 중 가장 위험한 오류는 프로그램 실행 중에 발생하는 오류입니다.

 

📄 인터프리터 언어란?

  • 인터프리터 언어란 이름 그대로 인터프리터(통역) 작업을 하는 프로그래밍 언어입니다.
  • Python 프로그램은 컴퓨터가 프로그램을 실행하는 도중에 실시간으로 기계어로 통역해줍니다.

  • 해리포터 영화를 생각해 봅시다.
  • 관객이 영화를 보면 영어 대사(음성)는 한글 자막으로 번역되어 제공됩니다.
  • 즉, 영화를 보면서 영어 대사를 듣고 한글 자막을 보면서 실시간으로 영화를 이해합니다.

참고: 인터프리터 언어의 대표적인 언어는 JavaScript, Python 등이 있습니다.

 

인터프리터 언어의 장단점

장점

  • 컴파일 오류가 없어 개발이 간편합니다.

단점

  • 실시간으로 통역(인터프리터) 작업을 하기 때문에 실행 속도가 컴파일 언어 프로그램보다 느립니다.
  • 실시간으로 통역(인터프리터) 작업을 하기 때문에 예상하지 못한 오류가 발생합니다.

 

✔️ 정리

  • 컴퓨터는 프로그래밍 언어를 직접 해석하지 못하기 때문에 프로그래밍 언어를 기계어로 변환해 주어야 합니다.
  • 프로그래밍 언어를 기계어로 변환하는 작업은 컴파일 작업과 인터프리터 작업이 있습니다.
  • 컴파일 언어는 번역 언어, 인터프리터 언어는 통역 언어입니다.
반응형

댓글