RedHat Linux >> Server Administration for Redhat Linux
|
[목차] |
제5장 Apache Web 서버
10. PHP 4 Zend PHP 4는 PHP3에 비해 보다 효율적이고, 안정적이며 더 크고 복잡한 스크립트로, 속도는 2배 이상 빨라졌습니다. 이렇게 빨라진 이유는 바로 PHP4 내부에 자리잡고 있는 Zend 엔진에 의한 것입니다. 그렇기 때문에 최근 PHP의 인기는 더욱 치속고 있으며 많은 유적를 PHP의 세계로 끌어들이고 있습니다. 과연 이 Zend가 무엇이기에 각계의 새로운 프로그래밍 언어로 대두되고 있는 것일까요? 여기서 Zend에 대해 알아보겠습니다.
1. Zend EngineZend Technologies LTD가 개발한 PHP에서 돌아가는 기본 스크립트 엔지입니다. 이것 또한 자유롭게 사용할 수 있는 라이선스를 채택하고 있으며, PHP의 기능을 신뢰갑 있고 사용하기 편리하도록 만들었습니다. Zend 엔진은 VBA처럼 넓은 범위의 응용 프로그램 제작에 무한한 잠재력을 가지고 있으며, Open 소스이면서 어떤 프랫폼(유닉스, NT등)이든 상업용 제작 뿐만 아니라 넓은 범위의 개발까지 할 수 있습니다. Zend 엔진은 공개 소스이고 Q Public Lincense (QPL) version 1.0에 따라 사용, 배포됩니다.
2. Zend OptimizerPHP 응용 프로그램을 두배의 속도로 코드를 다중으로 최적화하는 역할을 합니다. PHP 사용자가 좀더 빠른 반응 시간을 확보하기 위하여 추가로 설치할 수 있으며, 로컬 서버의 부하를 반으로 줄여 코드를 실행하는 속도를 높여줍니다.
3. Zend Cache스크립트 캐시 모듈로써 웹서버의 메모리에 적재되는 PHP 반코드 형태의 응용 프로그램입니다. 다중 서버의 디스크 탐색시간과 실행 속도를 절약하며, 심한 트래픽이 예상되는 곳에 보다 빠른 반응시간을 확보하고자 할 때 유용합니다. 컴파일된 PHP 스크립트 버전이 서버의 안정된 캐시 레지스트리에 적재되어 과도한 실행을 막아주며, 빠른 다운로드 시간을 확보할 수 있을 뿐만 아니라 실행에 따른 부하와 오버헤드를 감소시켜 줍니다.
4. Zend Encoder(Compiler)PHP 스크립트를 배포하기 전에 컴파일된 개발 코드를 제공합니다. 코드 형태로 배포할 수 있기 때문에 개발자는 저작권 보호를 받을 수 있으며 상업적인 응용 프로그램으로 개발할 수 있습니다. 소스코드를 보지 않고서도 PHP의 이점을 살릴 수 있기 때문에 거의 모든 상업적 응용 프로그램 분야에서 저작권을 보호 할 수 있습니다.
5. PHP 4의 확장된 기능 들PHP4에서 추가되거나 달라진 기능은 다음과 같습니다. 그러나 이 부분을 완벽히 이해 하려는 것 보다 차차 읽어볼 것을 권장합니다. PHP프로그래밍을 실제로 하다보면 어느새 저절로 '아하, 그렇구나'라고 느낄 수 있을 테니까요.
5.1 PHP4의 새로운 기능- 확장된 API 모듈 - 유닉스에서 보편화된 처리 - 다중 스레드 방식의 서버를 지원 - 향상된 Syntax Highlighter - HTTP의 세션 지원 - 외부 버퍼의 지원 - 보다 나은 환경 설정 - Reference Counting
다음은 PHP4의 추가된 기능의 상세 내용입니다. 참고 삼아 먼저 읽어보는 것도 좋습니다.
5.2 PHP4의 추가된 기능
이전의 API모듈보다 빠른 API 확장 모듈을 추가하였습니다.
유닉스 시스템에서 보다 영리하고 일반적인 수행 능력을 보장합니다.
3.0과의 100% 호환성을 보장하며 구조가 바뀌는 것에 따른 미묘한 차이점은 존재합니다.
mycrypt 라이브러리 사용과 hash 암호화 사용이 가능합니다. TripleDES, MD5, SHA1과 같은 암호화 알고리즘 사용이 가능합니다.
값과 타입의 동시 비교가 가능합니다. 예를 들어 "3"===3은 False값을 가집니다. 타입의 차이 때문입니다. 반면 "3"==3은 True값을 가집니다.
모뎀환경에서도 큰용량의 파일을 다운 받을 수 있도록 FTP를 지원합니다.
다음 함수가 추가되거나 기능이 추가되었습니다. array_count_values() eval() foreach include() ob_end_clean() ob_end_flush() ob_get_contents() ob_start() strip_tags() unset()
HTML 코드처럼 많은 양의 텍스트를 큰따옴표(")의 구애를 받지 않고 출력할 수 있습니다.
기본값으로 세션의 식별자는 쿠키에 저장되어 있습니다. 쿠키가 지원되지 않거나 쿠키를 심는 데 실패하였다면 세션 시별자가 자동으로 생성되어 수행됩니다.
ISAPI 모듈로 IIS에서 실행될 수 있으며 CGI로 동작하는 PHP3보다 효율적입니다.
메모리 소비를 억제하고 효율을 향상시켰습니다.
Global Scope 내에서나 멤버함수내에서 다른 클래스의 맴버 함수를 호출할 수 있습니다.
GET, POST, Cookiess가 다중 차원의 배열을 지원합니다.
세션이 fallback 시스템 관리와 함께 지원됩니다. 3.0에서는 PHPLIB를 통하는 방법으로 만 되었으며 속도도 느렸습니다.
자바와 상호 작용을 지원합니다. 이것은 PHP로부터 자바 객체의 메소드를 간단하고 효율적으로 생성하거나 불러올 수 있다는 것을 의미합니다.
보다 강력한 객체의 실행을 보장합니다. PHP3에 존재하던 문법의 한계를 극복하고 배열등에서 원하는 만큼의 단계가 모아질 수 있습니다.
외부 버퍼함수를 지원합니다.
Perl Compatible Regulae Expressions(PCRE) 라이브러리를 포함하고 있습니다. regex 라이브러리도 덤으로 포함되어 있으므로 split와 replace PCRE함수를 지원합니다. 약간의 PCRE와 Perl의 일반 표현의 차이점은 있습니다.
php.ini파일이 새로이 디자인 되고 기능이 첨가되었습니다. 보다 쉽고 강력하게 PHP의 설정을 변경할 수 있습니다.
함수 이름의 런타임 바인딩은 함수를 선언하기 전에 함수를 호출할 수 있도록 합니다.
런타임 때 클래스에 따른 정보를 엑세스할 수 있습니다. 객체의 클래스 이름과 객체 클래스의 부모 클래스 이름, 그 외 가능 함수를 액세스합니다.
웹서버의 지원이 SAPI(Server API) 인터페이스로 확장되었습니다. 서버 추상 레이어인 일반 웹서버의 경우 다중 스레드를 지원하고 대부분의 주요 웹서버(Apache, IIS, AOL 등)를 지원합니다.
개발자가 소스 코드를 볼 때 보다 효율적이며 빠른 수행 능력을 보장하며 보다 나은 HTML 코드를 개발 할 수 있습니다.
quoted string(")내에서의 다양한 변수 사용이 가능해졌습니다. 이와 같은 형태는 PHP3에서는 불가능한 것이었습니다. 그러나 Zend는 가능합니다. 예) print "${a[0]->bingo}";
이 외에도 Aliasing, 자동 리소스 올로케이션, Boolean 타입지원, COM/DCOM지원, 객체지향 프로그래밍 지원, Reference counting, 리소스 재배치 등의 새로운 기능이 도입되었거나 보강되었습니다.
|
[목차] |