본문 바로가기

[100일의 IT 초보 탈출] #35 컴파일러 vs 인터프리터 _ 코드를 실행하는 두 가지 방식

@Prof.SSong2025. 5. 5. 10:00
728x90

오늘은 무엇을 배우게 될까요?

 

프로그래밍을 시작하면 꼭 듣게 되는 단어들이 있습니다.

바로 “컴파일” “실행”, 그리고 “컴파일러”“인터프리터”라는 개념이죠.

 

“코드를 작성했는데 왜 바로 실행되지 않지?”

“왜 어떤 언어는 실행이 빠르고, 어떤 언어는 느릴까?”

“코드를 이해한다는 건 무슨 뜻이지?”

 

오늘은 이런 질문에 답을 주는 중요한 기초 CS 개념,

컴파일러와 인터프리터의 차이점과 원리, 그리고 실생활과의 연결점까지 자세히 알아보겠습니다.

 


 

컴퓨터는 우리가 쓴 코드를 바로 이해하지 못해요

 

우리는 다음과 같이 사람이 읽기 쉬운 코드(고급 언어)를 작성합니다:

print("안녕하세요!")

하지만 컴퓨터는 이 코드를 이해하지 못해요.

컴퓨터가 이해할 수 있는 언어는 단 하나, 바로 기계어(0과 1)입니다.

즉, 우리가 작성한 코드를 컴퓨터가 실행하려면 반드시 번역(Translation) 과정이 필요해요.

 

이 번역을 담당하는 것이 바로 컴파일러(Compiler)인터프리터(Interpreter)입니다.


 

컴파일러란?

 

컴파일러는 전체 코드를 한꺼번에 읽고, 미리 기계어로 번역한 뒤 실행 파일을 만들어주는 프로그램입니다.

 

 

예를 들어,

#include <stdio.h>

int main() {
    printf("Hello World!\n");
    return 0;
}

이 코드는 C 언어로 작성된 코드입니다.

gcc라는 컴파일러로 코드를 컴파일하면, .exe처럼 실행 가능한 파일이 만들어지고, 이걸 더블 클릭하면 프로그램이 실행돼요.

 

 

컴파일러의 특징 정리

 

  • 코드를 한 번에 전부 읽고 번역
  • 번역된 결과를 파일로 저장
  • 실행은 매우 빠름 (이미 번역돼 있으니까)
  • 코드 전체를 분석하므로 오류도 미리 발견 가능
  • 실행하려면 컴파일 과정이 꼭 필요

 


 

 

인터프리터란?

 

인터프리터는 코드를 한 줄씩 읽어가며, 그때그때 바로 실행하는 프로그램입니다.

번역과 실행이 동시에 이뤄지는 셈이죠.

 

 

예를 들어,

print("안녕하세요!")

이 코드는 Python 언어로 작성된 코드입니다.

python hello.py라고 실행하면, 파이썬 인터프리터가 코드를 읽고 바로 실행해 줍니다. 실행 파일은 따로 만들어지지 않아요.

 

 

인터프리터의 특징 정리

 

  • 코드를 한 줄씩 읽고 바로 실행
  • 실행 파일을 만들지 않음
  • 실행 속도는 상대적으로 느릴 수 있음
  • 오류는 실행 중간에 발생할 수 있음
  • 디버깅(문제 찾기)이 빠르고 편함

 


 

 

컴파일러 vs 인터프리터 비교표

항목컴파일러인터프리터

번역 방식 전체 코드 → 한 번에 번역 한 줄씩 → 실행하며 번역
실행 속도 빠름 (이미 번역된 상태) 느릴 수 있음 (실시간 번역)
오류 발견 시점 컴파일 시점에서 한꺼번에 확인 실행 중 발견됨
실행 파일 생성 여부 예 (예: .exe, .out) 아니오 (실행만 함)
코드 수정 후 실행 매번 컴파일 필요 바로 수정 후 실행 가능
사용 예시 언어 C, C++, Go, Rust 등 Python, JavaScript, Ruby, PHP 등

 

 


 

 

실생활 비유로 쉽게 이해하자

 

 

컴파일러는 “한 번에 번역하는 통역사”

 

  • 외국 소설책을 번역가가 처음부터 끝까지 읽고, 한국어 책으로 번역한 뒤 출판합니다.
  • 한 번 완성된 책은 아무나 빨리 읽을 수 있어요.
  • 단, 번역하는 데 시간이 걸려요.

 

 

인터프리터는 “실시간 통역사”

 

  • 영어로 말하면 바로바로 옆에서 한국어로 통역해주는 느낌이에요.
  • 빠르게 말해도 실시간으로 대응 가능하지만, 통역사가 없으면 듣지 못하죠.

 


 

 

어떤 상황에 어떤 걸 쓰면 좋을까?

 

 

컴파일러가 유리한 경우

 

  • 최종 사용자에게 배포할 실행 프로그램이 필요할 때
  • 속도가 중요한 경우 (게임, 고성능 프로그램 등)
  • 보안상 소스를 공개하지 않아야 할 때

 

 

인터프리터가 유리한 경우

 

  • 개발 중 실험과 디버깅이 자주 필요한 경우
  • 초보자가 코드 실행을 빠르게 확인해가며 공부할 때
  • 웹 개발처럼 코드 수정이 잦은 환경

 


 

 

요즘은 둘 다 사용하는 언어도 있어요

 

  • Java는 소스를 먼저 바이트코드로 컴파일한 뒤, JVM이라는 인터프리터가 그 코드를 실행합니다.
  • Python .pyc라는 바이트코드 파일을 생성해서 실행 속도를 높이는 방식을 씁니다.

 

이처럼 컴파일과 인터프리팅을 혼합해서 사용하는 하이브리드 언어도 많아요.

 


 

 

혼동하기 쉬운 개념 정리

개념설명

컴파일 코드를 기계어로 번역하는 과정
인터프리트 코드를 즉시 실행하는 과정
실행 파일 컴파일된 결과물, 더블 클릭으로 실행 가능
IDE 통합 개발 환경. 컴파일러 또는 인터프리터를 포함하기도 함

 

 


 

 

한 줄 요약

 

👉 컴파일러는 코드를 미리 번역해 빠르게 실행하고, 인터프리터는 코드를 한 줄씩 바로 읽으며 실행하는 방식이에요.

 

728x90
목차