맨위로가기

젠드 엔진

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

젠드 엔진은 PHP의 컴파일러이자 런타임 엔진으로, PHP 스크립트를 opcode로 컴파일하여 실행하고 HTML을 생성한다. PHP 4에서 안디 거트먼스와 제브 수라스키에 의해 파서가 재작성되면서 젠드 엔진으로 명명되었으며, 젠드 테크놀로지스를 통해 PHP 기반 웹 애플리케이션 개발을 지원한다. 젠드 엔진은 인터프리터 역할을 담당하고, PHP는 기능 부분과 인터페이스 부분을 담당한다. 젠드 엔진은 PHP 3에 비해 속도 향상을 이루었으며, API를 통해 확장 모듈 개발을 지원한다. 젠드 엔진의 버전은 PHP 버전과 연동되어 있으며, PHP 4는 젠드 엔진 1, PHP 5는 젠드 엔진 2, PHP 7은 젠드 엔진 3, PHP 8은 젠드 엔진 4를 사용한다.

더 읽어볼만한 페이지

  • PHP - Behat
    Behat는 소프트웨어의 예상 동작을 테스트 가능한 예제로 문서화하여 개발자, 고객 간 소통을 돕는 테스트 도구이며, Gherkin 언어를 사용하여 비즈니스 사례를 설명하고 PHP 코드 테스트 및 브라우저 원격 제어에 활용되며, 테스트 결과를 다양한 형식으로 출력한다.
  • C 소프트웨어 - 윈도우 폰 8
    윈도우 폰 8은 2012년 말에 출시된 마이크로소프트의 모바일 운영 체제로, 윈도우 NT 커널을 기반으로 윈도우 8과 구성 요소를 공유하며, 다양한 기능을 제공하고 2016년 1월 12일까지 소프트웨어 지원이 제공되었다.
  • C 소프트웨어 - 윈도우 폰
    마이크로소프트가 개발한 윈도우 폰은 메트로 UI와 엑스박스 라이브, 빙 검색 등 다양한 서비스 통합을 특징으로 했으나, 낮은 시장 점유율과 앱 부족으로 윈도우 10 모바일로 통합되며 단종된 모바일 운영 체제이다.
  • PHP 소프트웨어 - 핵 (프로그래밍 언어)
    Hack은 페이스북에서 개발한 프로그래밍 언어이며, PHP와 상호 운용되도록 설계되었고, 정적 타이핑을 도입하여 타입 힌트를 확장하며 PHP 7에도 영향을 미쳤다.
  • PHP 소프트웨어 - HHVM
    HHVM은 페이스북에서 개발한 PHP 및 Hack 언어 실행 엔진으로, JIT 컴파일을 통해 높은 성능을 제공하며 웹 개발 분야에 새로운 가능성을 제시했다.
젠드 엔진 - [IT 관련 정보]에 관한 문서
기본 정보
이름젠드 엔진
종류스크립팅 엔진
개발젠드 테크놀로지스, PHP 개발 팀
최초 릴리스1999년
최신 안정화 버전3.4 (PHP 7.4)
최신 미리보기 버전4.0 (PHP 8.0)
프로그래밍 언어C 언어
라이선스젠드 엔진 라이선스 (일부는 PHP 라이선스)
웹사이트젠드 공식 웹사이트
저장소php/php-src
개발자
개발자안디 구트만스, 제브 수라스키
일본어 정보 (참고)
이름 (일본어)젠드 엔진
종류 (일본어)인터프리터
개발자 (일본어)젠드 테크놀로지스
최초 릴리스 (일본어)1999년 7월 19일
최신 안정화 버전 (일본어)4.2.0
최신 릴리스 날짜 (일본어)2022년 12월 8일
최신 미리보기 버전 (일본어)4.3.0-dev
프로그래밍 언어 (일본어)C 언어
라이선스 (일본어)젠드 엔진 라이선스
웹사이트 (일본어)젠드 엔진 웹사이트

2. 역사

PHP는 원래 라스무스 레르도프가 개발했으나, PHP 2(PHP/FI)까지는 거의 혼자 개발을 진행했다.[7] PHP 3을 만들면서 이스라엘 공과대학교 학생이었던 안디 거트먼스와 제브 수라스키가 구문 분석 부분 개발에 참여했다.[7] PHP 4에서는 이 두 사람에 의해 파서가 완전히 재작성되었으며, 두 사람의 이름을 따서 '''젠드 엔진'''이라고 명명되었다.[8] 이후 두 사람은 젠드 테크놀로지스를 창업하여 PHP를 기반으로 한 웹 애플리케이션 개발을 진행하고 있다. PHP 자체도 젠드 엔진이 릴리스된 1999년 이후 급속도로 활동 영역을 넓혀갔다.[8]

3. 구조

젠드 엔진은 PHP에서 컴파일러이자 런타임 엔진으로 내부적으로 사용된다. PHP 스크립트는 메모리에 로드되어 젠드 opcode로 컴파일된다. 이 opcode가 실행되고 생성된 HTML이 클라이언트로 전송된다.[14][6]

웹 스크립트 인터프리터를 구현하려면 다음 세 부분이 필요하다.


  • 인터프리터 부분은 입력 코드를 분석하고, 번역하고, 실행한다.
  • 기능 부분은 언어의 기능(함수 등)을 구현한다.
  • 인터페이스 부분은 웹 서버 등과 통신한다.


젠드는 인터프리터 부분을 완전히 담당하고, 기능 부분의 일부를 담당한다. 반면 PHP는 기능 부분과 인터페이스 부분을 담당한다. 젠드 자체는 언어 핵심 부분만을 형성하며, 몇 가지 미리 정의된 함수를 사용하여 PHP를 기본적으로 구현한다.

젠드 엔진 내부 구조

4. 기능

젠드 엔진은 PHP 스크립트를 메모리에 로드한 후 젠드 opcode로 컴파일한다. 이 opcode들은 실행된 후 생성된 HTML을 클라이언트로 전송한다.[6]

웹 스크립트 인터프리터를 구현하는 데는 다음 세 가지 부분이 필요하다.

# 인터프리터 부분은 입력 코드를 분석, 번역, 실행한다.

# 기능 부분은 언어의 기능(함수 등)을 구현한다.

# 인터페이스 부분은 웹 서버 등과 통신한다.

젠드는 인터프리터 부분을 완전히 담당하고 기능 부분의 일부를 담당하는 반면, PHP는 기능 부분과 인터페이스 부분을 담당한다. 젠드는 언어 핵심만을 형성하며, 몇 가지 미리 정의된 함수와 함께 PHP를 기본적으로 구현한다.

PHP 3 이전에는 실행할 때마다 소스 코드를 번역하여 실행했다.[9] 젠드 엔진은 파일 단위로 중간 표현으로 번역하여 실행함으로써 PHP 4에서 PHP 3에 비해 10배 이상이라는 획기적인 속도 향상을 실현했다.[10] 또한 젠드 엔진은 모듈화가 이루어졌으며,[9] API가 공개되어[11] 제3자가 PHP용 확장 모듈을 개발하는 것도 가능하다.

5. 버전

젠드 엔진의 버전 번호는 PHP와 연동되어 있으며, 처음 젠드 엔진이 탑재된 PHP 4.x 계열은 Version 1.x, 이후 PHP 5.x 계열은 Version 2.x, PHP 7.x 계열은 Version 3.x, PHP 8.x 계열은 Version 4.x와 같이 번호가 매겨져 있다.[6] PHP 5가 탑재한 '''젠드 엔진 2'''에서는 캡슐화나 추상 클래스와 같은 객체 지향 프로그래밍 관련 기능 및 예외 처리 등의 기능 강화가 이루어졌다.

참조

[1] 웹사이트 php.internals: Changes to Git commit workflow https://news-web.php[...] 2021-04-22
[2] 웹사이트 Zend engine http://www.phpintern[...] 2021-10-04
[3] 웹사이트 Zend's History with PHP http://www.zend.com/[...] Zend Technologies
[4] 웹사이트 PHP: General Information - Manual https://www.php.net/[...] 2019-11-22
[5] 웹사이트 "- License update · php/php-src@fec59d3" https://github.com/p[...] 1999-07-14
[6] 웹사이트 PHP - What is zend engine? http://www.careerrid[...] careerride
[7] 서적 プログラミング PHP
[8] 뉴스 意外と知らないZend Engine(1/3) http://thinkit.co.jp[...] インプレス 2007-05-18
[9] 뉴스 意外と知らないZend Engine(3/3) http://thinkit.co.jp[...] インプレス 2007-05-18
[10] 뉴스 生まれ変わるPHP - Zend Engine 2、SQLiteの実力は? 5 Zend Engineの仕組みとパフォーマンスの向上 https://web.archive.[...] マイナビニュース 2004-03-29
[11] 문서 Zend API: PHP のコアをハックする http://www.php.net/m[...]
[12] 뉴스 生まれ変わるPHP - Zend Engine 2、SQLiteの実力は? 2 Zend Engine 2とPHP5の新機能 https://web.archive.[...] マイナビニュース 2004-03-29
[13] 웹인용 Zend's History with PHP https://web.archive.[...] Zend Technologies 2019-01-25
[14] 웹인용 PHP - What is zend engine? http://www.careerrid[...] careerride



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com