컴파일

기술노트
Admin (토론 | 기여)님의 2025년 9월 6일 (토) 05:05 판 (Gemini 벌크 업로더로 자동 업로드)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

⚙️ 컴파일 (Compile) & 인터프리터 (Interpreter)

컴파일인터프리터는 개발자가 작성한 고급 언어(C, Java, Python 등)를 컴퓨터가 이해할 수 있는 기계어(Machine Code)로 번역하는 방식입니다. 두 방식의 가장 큰 차이는 번역이 이루어지는 시점입니다.


📜 컴파일 (Compile)

컴파일은 소스 코드 전체를 실행하기 전에 한 번에 기계어로 번역하는 방식입니다. 컴파일러(Compiler)라는 프로그램을 통해 소스 코드 파일은 실행 가능한 파일(예: `.exe`)로 변환됩니다.

  • 번역 단위 : 소스 코드 전체
  • 실행 속도 : 이미 모든 코드가 번역되어 있어 매우 빠름
  • 대표 언어 : C, C++, Java, Go
  • 과정 : 소스 코드 → 컴파일러 → 실행 파일 → 실행

🗣️ 인터프리터 (Interpreter)

인터프리터는 소스 코드를 실행하는 시점에 한 줄씩 번역하면서 즉시 실행하는 방식입니다. 별도의 실행 파일을 생성하지 않습니다.

  • 번역 단위 : 코드 한 줄
  • 실행 속도 : 매번 번역과 실행을 동시에 하므로 컴파일 방식보다 느림
  • 대표 언어 : Python, JavaScript, Ruby
  • 과정 : 소스 코드 → 인터프리터가 한 줄씩 번역 및 실행

🆚 주요 차이점 요약

구분 컴파일 방식 인터프리터 방식
번역 시점 실행 전 (전체) 실행 중 (한 줄씩)
실행 속도 빠름 느림
플랫폼 의존성 높음 (OS에 맞는 실행 파일 필요) 낮음 (인터프리터만 있으면 실행 가능)
오류 발견 시점 컴파일 시 (전체 오류 발견) 실행 시 (해당 라인 실행 시 발견)
  • Java와 Python의 경우 : Java는 바이트코드(.class)로 컴파일된 후, JVM이라는 가상 머신 위에서 인터프리터 방식으로 동작하는 하이브리드 형태를 띱니다. Python 역시 바이트코드를 생성하지만, 일반적으로 인터프리터 언어로 분류됩니다.

💡 개발자 핵심 Point

  • 컴파일 언어는 높은 성능이 요구되는 시스템 소프트웨어나 게임 개발에 주로 사용됩니다.
  • 인터프리터 언어는 개발 속도가 빠르고 플랫폼 독립성이 높아 웹 개발이나 스크립트 작성에 많이 사용됩니다.
  • 어떤 언어가 어떤 방식으로 동작하는지 이해하면, 해당 언어의 특성과 성능을 더 깊이 이해할 수 있습니다.