인터프리터 언어와 컴파일 언어는 프로그래밍 언어가 실행되는 방식에 따라 구분되는 두 가지 주요 유형
인터프리터 언어 (Interpreted Language)
인터프리터 언어는 코드를 한 줄씩 읽고 실행하는 방식으로 동작합니다. 코드가 실행될 때마다 인터프리터가 코드를 해석하고 즉시 실행합니다.
특징:
- 실시간 실행: 소스 코드를 즉시 실행하므로 수정 후 바로 결과를 확인할 수 있습니다.
- 디버깅 용이: 실행 중인 코드의 각 줄을 확인할 수 있어 디버깅이 상대적으로 쉽습니다.
- 플랫폼 독립성: 인터프리터만 있다면 어떤 플랫폼에서도 동일한 코드를 실행할 수 있습니다.
예시:
- Python
- JavaScript
- Ruby
- PHP
컴파일 언어 (Compiled Language)
컴파일 언어는 전체 소스 코드를 먼저 기계어(또는 중간 코드)로 번역하는 컴파일 과정을 거친 후 실행합니다. 번역된 기계어 코드는 실행 파일로 생성되어 이후에 실행됩니다.
특징:
- 성능: 사전에 컴파일된 코드가 기계어로 변환되므로 실행 속도가 빠릅니다.
- 에러 검사: 컴파일 시점에 많은 오류를 잡아낼 수 있어 실행 전에 코드를 검증할 수 있습니다.
- 플랫폼 종속성: 특정 플랫폼에 맞는 실행 파일을 생성하기 때문에 플랫폼마다 컴파일이 필요할 수 있습니다.
예시:
- C
- C++
- Java (Java는 바이트코드로 컴파일되고, JVM이 이를 인터프리트하여 실행)
- Go
혼합 접근법
자바는 인터프리터와 컴파일의 혼합 방식을 사용합니다. Java 프로그램은 소스 코드를 먼저 바이트코드로 컴파일한 후, 이 바이트코드를 JVM(Java Virtual Machine)이 실행하는 방식입니다. JVM은 바이트코드를 인터프리트하거나 JIT(Just-In-Time) 컴파일을 통해 기계어로 변환하여 실행합니다.
Java의 실행 과정
- 컴파일 단계:
- 자바 컴파일러(javac)가 Java 소스 코드(.java 파일)를 바이트코드(.class 파일)로 컴파일합니다.
- 이 바이트코드는 플랫폼 독립적입니다.
javac HelloWorld.java
2. 실행 단계:
- JVM이 컴파일된 바이트코드를 실행합니다. JVM은 바이트코드를 해석(인터프리트)하거나 JIT 컴파일을 통해 기계어로 변환하여 실행합니다.
java HelloWorld
'개발공부(java, springboot)' 카테고리의 다른 글
MySQL - LIMIT Rows, 조회결과 제한 해제하기. (0) | 2024.06.25 |
---|---|
CORS(Cross-Origin Resource Sharing) 정책? (0) | 2024.06.22 |
자바(LTS) 버전이란? 버전별 특징 (0) | 2024.06.09 |