Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP는 컴파일 언어일까, 인터프리터 언어일까?

PHP의 실행 방식에 대해 궁금해하는 개발자가 많습니다. 결론부터 말하면 PHP는 기본적으로 인터프리터 방식으로 동작하지만, 내부적으로는 컴파일 과정을 거칩니다. PHP 코드는 먼저 중간 바이트코드(intermediate bytecode)로 컴파일된 후, 런타임 환경인 Zend 엔진이 이 바이트코드를 해석하며 실행합니다.

PHP 컴파일러가 담당하는 작업

  • PHP 소스 코드를 런타임 엔진에서 사용할 수 있는 바이트코드로 변환합니다.
  • 코드 내의 함수명, 변수명, 클래스명 등을 분석하고 해석합니다.
  • 실행에 필요한 심볼 테이블(symbol table)을 생성합니다.

PHP 인터프리터(Zend 엔진)가 담당하는 작업

  • 컴파일된 바이트코드를 한 줄씩 읽어가며 순차적으로 실행합니다.
  • 실행 중 발생하는 런타임 예외(runtime exception)를 처리합니다.

즉, PHP는 전통적인 의미의 순수 인터프리터 언어는 아니며, '컴파일 + 인터프리팅'이 결합된 하이브리드 방식으로 동작한다고 이해할 수 있습니다. 이러한 구조 덕분에 PHP는 매 요청마다 코드를 다시 파싱하는 부담을 줄이고, OPcache와 같은 캐싱 메커니즘을 통해 바이트코드를 재사용하여 성능을 크게 향상시킬 수 있습니다.