본문 바로가기
-- 오늘 있었던 개발 일기

인터프리터 언어란?

by code study 2026. 4. 13.

들어가며

앞서 컴파일 언어는 소스 코드 전체를 한 번에 기계어로 번역한다고 정리했습니다.
이번에는 반대 방식인 인터프리터 언어에 대해 정리해보겠습니다.
코드를 한 줄씩 읽고 실행하는 방식이 어떤 의미인지, 장단점은 무엇인지 알아보겠습니다.


인터프리터 언어란?

인터프리터 언어는 소스 코드를 미리 번역하지 않고, 한 줄씩 읽으면서 바로 실행하는 방식입니다.
인터프리터(Interpreter) 가 코드를 위에서 아래로 한 줄씩 해석하고 즉시 실행합니다.

[인터프리터 언어 실행 과정]

소스 코드
  1번째 줄 ──▶ 인터프리터 해석 ──▶ 실행
  2번째 줄 ──▶ 인터프리터 해석 ──▶ 실행
  3번째 줄 ──▶ 인터프리터 해석 ──▶ 실행
     ...

 

대표적인 인터프리터 언어로는 Python, JavaScript, Ruby 가 있습니다.


인터프리터 언어의 특징

장점 - 여러 OS에서 별도 설치 없이 사용 가능

컴파일 언어는 OS마다 별도로 컴파일해서 실행 파일을 만들어야 했습니다.
인터프리터 언어는 해당 OS에 인터프리터만 설치되어 있으면 같은 소스 코드를 그대로 실행할 수 있습니다.

같은 소스 코드 하나로:

소스 코드(.py)
├── Windows Python 인터프리터 ──▶ 실행
├── Linux Python 인터프리터   ──▶ 실행
└── Mac Python 인터프리터     ──▶ 실행

 

OS마다 재컴파일이 필요 없어 이식성이 높습니다.

장점 - 코드 수정 후 즉시 실행 가능

컴파일 과정이 없기 때문에 코드를 수정하면 바로 실행해서 결과를 확인할 수 있습니다.
개발 중 빠른 테스트와 수정이 필요할 때 편리합니다.

단점 - 실행 속도가 느리다

코드를 실행할 때마다 한 줄씩 해석하는 과정이 필요하기 때문에, 미리 번역이 완료된 컴파일 언어보다 실행 속도가 느립니다.

단점 - 실행 중에 오류를 확인한다

코드 전체를 미리 검사하지 않고 실행하면서 해당 줄에 도달했을 때 오류를 발견합니다.
오류가 있는 줄 이전까지는 정상적으로 실행되다가, 오류 줄에서 멈춥니다.

# Python 예시
print("1번째 줄 실행")   # 정상 실행
print("2번째 줄 실행")   # 정상 실행
print(없는변수)          # 여기서 오류 발생 - 실행 중에 확인
print("4번째 줄 실행")   # 실행되지 않음

컴파일 언어 vs 인터프리터 언어

항목 컴파일 언어 인터프리터 언어
번역 방식 전체를 한 번에 기계어로 번역 한 줄씩 해석하며 실행
실행 속도 빠름 상대적으로 느림
오류 확인 시점 실행 전 컴파일 시 실행 중 해당 줄 도달 시
플랫폼 이식성 낮음 (OS마다 재컴파일 필요) 높음 (인터프리터만 있으면 실행)
대표 언어 C, C++ Python, JavaScript, Ruby

오류 확인 방식의 차이

컴파일 언어와 인터프리터 언어의 가장 큰 차이 중 하나가 오류를 언제 발견하느냐입니다.

[컴파일 언어 - 실행 전 오류 확인]

소스 코드 작성
      ↓
   컴파일 시도
      ↓
오류 발견 → 실행 불가, 즉시 수정 가능
      ↓
  오류 없으면 실행


[인터프리터 언어 - 실행 중 오류 확인]

소스 코드 작성
      ↓
      실행
      ↓
1번 줄 실행 → 성공
2번 줄 실행 → 성공
3번 줄 실행 → 오류 발생! 여기서 멈춤

 

인터프리터 언어는 오류가 있는 줄 이전 코드가 이미 실행된 후에 오류를 발견하기 때문에, 예상치 못한 부작용이 생길 수 있습니다.


Java와의 비교

Java는 앞서 정리한 것처럼 컴파일과 인터프리터를 혼합한 방식입니다.
세 가지 방식을 나란히 비교하면 아래와 같습니다.

항목 컴파일 언어 (C) 인터프리터 언어 (Python) Java
번역 방식 기계어로 컴파일 한 줄씩 인터프리터 바이트코드로 컴파일 후 JVM 실행
실행 속도 가장 빠름 느림 중간 (JIT로 빠른 편)
오류 확인 컴파일 시 실행 중 컴파일 시
이식성 낮음 높음 높음 (JVM만 있으면 실행)

 

Java는 컴파일 언어처럼 실행 전에 오류를 확인하면서, 인터프리터 언어처럼 플랫폼 이식성도 갖추고 있습니다.


정리

  • 인터프리터 언어는 소스 코드를 한 줄씩 읽고 바로 실행하는 방식이다.
  • 실행 중에 오류를 확인하기 때문에 오류가 있는 줄 이전 코드는 먼저 실행된다.
  • 실행 속도는 컴파일 언어보다 느리지만, OS에 인터프리터만 설치되면 같은 코드를 바로 실행할 수 있어 이식성이 높다.
  • 코드 수정 후 즉시 실행이 가능해 개발 중 빠른 테스트가 필요할 때 편리하다.
  • Java는 컴파일 언어의 오류 사전 확인과 인터프리터 언어의 높은 이식성을 모두 갖춘 혼합 방식이다.