2025-11-03 01:10

Tags: 소프트웨어 아키텍처

컴파일러

  • 우리가 작성한 코드를 컴퓨터가 이해하는 언어로 바꿔주는 핵심적인 번역기다.
  • 컴파일러는 어휘 분석, 구문 분석, 의미 분석, 중간 코드 생성, 최적화, 코드 생성의 6단계를 거친다.
구분컴파일러 (Compiler)인터프리터 (Interpreter)
번역 단위프로그램 전체를 한 번에 번역코드를 한 줄씩 읽고 실행
실행 시점번역 후 생성된 실행 파일 실행번역과 실행이 동시에 발생
실행 속도빠름 (이미 기계어로 변환됨)느림 (매번 번역 필요)
플랫폼종속적 (특정 OS/CPU용으로 컴파일)독립적 (인터프리터만 있으면 실행 가능)
대표 언어C, C++, GoPython, JavaScript, Ruby
비유책 전체를 번역하는 번역가대화를 실시간으로 통역하는 통역사

JIT (Just-In-Time) 컴파일러

  • JIT 컴파일러는 인터프리터의 유연성과 컴파일러의 실행 속도라는 두 마리 토끼를 잡기 위해 등장했다.
  • 프로그램 실행 시점에 인터프리터 방식으로 코드를 실행하다가, 자주 사용되는 코드를 발견하면 그 부분만 컴파일하여 기계어로 바꿔놓는다.
  • 이후에는 컴파일된 코드를 직접 실행하여 성능을 향상시킨다.
  • Java의 JVM(Java Virtual Machine)과 JavaScript의 V8 엔진이 대표적인 JIT 컴파일러 사용자다.