오늘은 컴파일 언어와 인터프리터 언어에 대해서 알아보자.
🚗목차
- 컴파일 언어란?
- 인터프리터 언어란?
- 자바는?
- 스크립트 언어란?
🧐컴파일 언어란?
🔎컴파일 언어의 실행 과정
먼저 다음 그림을 보자!

컴파일 언어는 다음과 같은 순서로 동작한다.
- 소스파일 컴파일(-> 2진 코드)
- CPU에서 실행
🔎컴파일 언어의 특징
- 컴파일 프로그램을 이용하여 컴파일한다.
- 실행 파일이 만들어진다.
- 실행 파일을 실행시킨다.
- 속도가 빠르다.
- C++, Visual C++, Object C, Java, C 등이 있다.
- A 운영체제에서 만든 프로그램을 B 운영체제에서 돌릴 경우, 돌아가지 않을 가능성이 아주 크다. (ex. int값이 달라지는 경우)
- 모든 코드를 한번에 번역(컴파일)하고, 한번에 실행(CPU)한다. 그래서 번역과 실행이 따로 이루어진다.
🧐인터프리터 언어란?
컴퓨터 수행시 먼저 프로그램이 수행할 컴퓨터의 목적 코드로 번역되어야 하는 언어를 말한다.
🔎인터프리터 언어 실행 과정

인터프리터 언어는 다음과 같은 순서로 동작한다.
- 해석기 실행
- 해석기가 소스파일을 2진코드로 변환
- CPU에서 실행
🔎인터프리터 언어의 특징
- 컴파일 과정이 없다.
- 소스 파일을 해석 엔진프로그램을 이용하여 한 줄씩 실행한다.
- 실행 파일이 만들어지지 않는다.
- 속도가 느리다.
- Java, JavaScript가 있다.
- 한번에 1줄씩 읽어 번역(JVM), 실행(CPU)가 동시에 일어난다.
🧐자바는?
위에서 보면 컴파일 언어, 인터프리터 언어에 Java가 속한다는 것을 알 수 있다.
엥? 둘이 상반된 개념아냐? 혼용이 가능해?
가능하다.
🔎자바 언어의 실행과정
자바 언어의 실행과정을 보자.

-
".java" 파일을 컴파일한다. 컴파일된 파일은 ".class"이다. 바이트 코드(16진수)로 이루어져 있다.
-
"*.class"를 실행한다. JVM도 실행되고, 바이트 코드를 2진 코드로 변환한다.
-
변환된 2진 코드를 운영체제에 넘겨준다.
-
운영체제는 CPU를 이용하여 2진 코드를 실행한다.
🔎왜 혼용하는가?
컴파일 언어의 단점인, 타 운영체제에서 실행이 되지 않는 문제를 보완하기 위함이다.
ex) 사용환경이 편리한 윈도우에서 프로그램을 작성하고, Linux나 Unix 서버에 올려서 실행한다.
각각의 컴퓨터에는 그 운영체제에 맞는 JRE(JVM이 포함되어있음)가 설치되어 있어야 한다.
🧐스크립트 언어란?
Script 언어는 이미 존재하는 소프트웨어를 제어하기 위한 용도로 사용되는 언어이다.
- 스크립트 언어는 인터프리터 언어이다.
- 스크립트 언어는 사용처에 따라 정의되는 분류이기에 작동방식과 무관한다.
- 대표적인 JavaScript는 웹 브라우저의 스크립트 언어이다. 그 목적이 고정되어 있어서 스크립트 언어라고 한다.
살짝 논점에 벗어나는 개념이다!
한마디로 "승용차(인터프리터) vs 탱크(컴파일)" 경기인데, "소나타(스크립트)"가 등장한거다.
📋마치며
오늘은 뭔가 깔끔한 기분이다 ^^.
매일 이렇게 정리가 되었으면..
🧷Reference