PHP란?

    PHP란?



    PHP역사


    PHP/FI


    PHP는 PHP/FI라는 이름의 오래된 소프트웨어를 계승했다. PHP/FI는 1995년 Rasmus Ledorf에 의해 만들어졌다.

    그의 온라인 이력서의 접속수를 추적하기 위해 단순한 펄 스크립트 구성물로 시작되었다. 그는 그 스크립트 구성물을 Personal Home Page Tools라고 명명했다.

    좀더 많은 기능이 요구됨에 따라, Rasmus는 좀 더 많은 C 구현물을 작성했다. 이 구현물은 데이터베이스와 의사소통을 하고, 유저가 단산한 동적 웹 어플리케이션을 작성할수 있게 하였다. Rasmus는 모든 사람이 볼수 있도록 PHP/FI의 소스코드를 Release하기로 결정했다 그래서 모든 사람이 그것을 사용하고 버그를 고칠수 있을뿐만 아니라 코드를 향상시킬수 있었다


    PHP/FI, Personal Home Page / Forms Interpreter의 약어, 는 오늘날 우리가 알고있는 것처럼 PHP의 기본적인 기능의 일부를 포함하고 있다. 그것은 펄과 비슷하게 생긴 변수, 폼 변수의 자동 해석과 HTML 내장 문법을 갖고 있었다. 그문법 자체는 좀더 제한적이고, 단순하고 약간은 일관성이 떨어지기는 하지만 펄과 비슷했다.


    1997년까지, PHP/FI 2.0 C로 쓰여진 두번째 구현물은 전세계에서 수천사용자의 숭배자를 갖게 된다(추정치), 그리고 대략 50,000의 도메인에서 설치되었던것으로 보고되었고, 이수치는 인터넷 모든 도메인의 약 1%에 해당된다. 이 프로젝트에 많은 코드를 공헌한 몇명의 사람이 있었지만, 아직 대체로 한사람의 프로젝트였다.


    PHP/FI 2.0은 그 삶의 대부분을 베타 릴리즈로 보낸 이후, 1997년 11월에만 공식저으로 리리즈되었다. 그후 얼마안되어 PHP 3.0의 첫번째 알파버전에 의해 계승되었다.



    PHP 3


    PHP 3.0은 오늘날 알려진 PHP와 매우 가깝게 닮아있는 첫번째 버전이었다 그것을 1997년 Andi Gutmans와 Zeev Suraski에 의해 완전히 재작성되어 만들어졌다 그들이 대학 프로젝트 수행시 이커머스(eCommerce) 응용프로그램을 개발하기 위해 기능이 떨어지는 PHP/FI 2.0을 발견한것이 계기가 되었다.

    PHP/FI의 기존 이용자 기반위에 협력하고 개발을 시작할 의도가 가지고, Andi, Rasmus, Zeev는 PHP/FI 2.0의 공식적인 계승자로서 PHP3.0을 발표하였고, PHP/FI 2.0의 개발을 대부분 중단하게 된다.


    PHP 3.0의 가장 큰 강점중의 하나는 강력한 확장 기능이었다. 엔드유저에게 다양한 데이터베이스접근을 위한 견고한 인프라구조, 여라가지 프로토콜과 API를 제공해주었고, 이런 PHP 3.0의 확장 기능은 수십명의 개발자가 개발에 참여하도록 유도했고, 그들은 새로운 확장 모듈을 개발해주었다. 확실해게, 이런 특징이 PHP3.0의 엄청난 성공의 열쇠였다 PHP 3.0으로 유도하는 다른 핵심 기능이 객체 지향 문법 지원과 좀더 파워풀하고 일관성있는 언어 문법이었다.


    모든 새로운 언어는 새로운 이름하에 릴리즈되었다. PHP/FI 2.0이라는 이름이 내포하는 제한된 개인 사용목적에 대한 연루성을 제고하고, 그 이름을 PHP로 명명하였다 이 단어는 PHP: Hypertext Preprocessor의 재귀적 약어이다.


    1998년 말까지 PHP는 수만명의 사용자가 설치하였고 수십만의 웹 사이트에 설치 되었다고 한다 이런 급성장에서 PHP 3.0은 인터넷상의 웹 서버중 거의 10%가 설치되었다고 한다.


    PHP 3.0 1998년 6월에 공식적으로 릴리즈되었다



    PHP 4


    1998년 겨울까지, PHP 3.0이 공식적으로 리리지된후 얼마안되서, Andi Gutmans와 Zeev Suraski는 PHP의 코어를 재작성하는 작업을 시작했다. 설계 목적은 복잡한 응용 프로그램의 퍼포먼스를 향상시키고, PHP의 코드 베이스의 모듈화를 향상시키는 것이었다. 그런 응용프로그램은 PHP 3.0의 새로운 기능과 다양하고 광범위한 서드파티 데이터베이스와 API의 지원으로 가능하게 되었다. 그러나, PHP 3.0은 그런 복잡한 응용 프로그램을 효율적으로 제어하도록 설계되지 않았었다.


    새로운 엔진, 'Zend Engine'로 명명된(그들 Zeev와 Andi의 이름으로 구성됨), 은 이런 설계목적에 성공적으로 부합하였다 그리구 1999년 중반 처음으로 소개되었다 이 엔진에 기반하였고, 광범위한 새 추가 기능과 같이 동작하는 PHP 3.0이 나온지 거의 2년만이다. 이 버전의 크게 향상된 퍼포먼스 뿐만 아니라, PHP 4.0은 다른 핵심 기능도 제공하고 있다. 여러가지 웹서버에 대한 지원, HTTP 세션, 출력 버퍼링, 보안이 강화된 유저입력 제어, 몇 가지 새로운 언어 구조이다.


    현재, PHP는 수십만명의 개발자들에 의해서 사용되고 있고(추정치), 수백만 사이트에 설치되어 있다고 보도 되었습니다. 이 수치는 인터넷상에서 20% 이상의 도메인 수가 된다고 합니다


    PHP 개발팀은 수십명의 개발자들을 포함하고, 그외에 PEAR, 문서 프로젝트와 같은 PHP 관련 프로젝트에서 수십명이 참여 중이라고 합니다


    PHP 5


    PHP 5는 긴 개발 기간과 많은 프리릴리즈를 거쳐 2004년 7월에 릴리즈 되었고 주변경은 핵심으로, 새로운 객체 모델과 수많은 새 기능을 가진 젠드 엔진 2.0으로 작동하게 됩니다



    PHP의 소개


    PHP 장점

    PHP 하면 빠른 생산성, 저렴한 유지비용입니다

    PHP는 프로그래밍 속도를 높여주기에 매우 좋습니다 사소한 부분은도 프로그래밍 속도가 상당히 차나게 빠르며 함수들도 직관적인 것들이 많습니다 객체를 지향하는 기능도 추가되어 복잡한 프로그래밍도 가능합니다


    PHP는 리눅스에 설치할 수 있기에 저렴하게 사용이 가능합니다 ASP같은 윈도우 계열의 운영체제를 설치하면은 가격이 많이 들고 또 데이터베이스 또한 가격이 매우높어 사용하기가 좀 껄끄럽습니다...


    PHP의 쓰임세

    PHP는 작업자 입장에서 굉장히 편합니다 PHP또만 유용한 기능이 포함되어 있습니다

    PHP는 ASP와는 다르게 특정 플랫폼에서만 동작하지 않습니다

    C언어를 기반으로 만들어진 서버에서 실행되는 스크립트 언어로 기존의 C언어에 익숙한 개발자들이 보다 쉽게 접근할 수 있습니다 그러나 컴포넌트를 사용할 수 없을 뿐만아니라 보안에 많이 취약한 점을 가지고 있어 PHP기반으로 만들어진 웹 사이트들이 해킹의 목표가 되고 있습니다



    PHP 특징


    PHP 언어는 웹 상에서 서버를 연동해서 실행하는 대표적인 언어이며, 인터프리터 방식을 채택하고있어 편리한 언이입니다


    1. 웹서버에서 해석되는 스크립트언어입니다


    2. 데이터베이스 연동을 편리하게 할수 있습니다

    MySQL, mSQL, Oracle, Sybase 및 윈도우 ODBC 등 여러 DB를 편리하게 연동할 수 있습니다


    3. 거의 모든 운영 체제에 구현이가능합니다


    4. 코드 작성이 쉽고 문법이 간단합니다

       PHP 문법은 C/C++ 언어의 문법과 비슷하여 클래스를 지원하여 효율적인 코딩이 가능하고, 스크립트 언어이기 때문에 HTML문서 내부에 입력하여 실행 할 수 있는 편리한 언어입니다


    5. 처리속도가 빠릅니다

    인터프리터 방식을 채택하여 일반적인 asp나 perl 언어보다 처리속도가 월등히 빠릅니다


    1. 거의 모든 OS에서 실행되며, 수십 가지의 DBMS 연결을 지원합니다


    2. 속도가 매우 빠릅니다 L(리눅스) + A(Apache)  + P(PHP) + M(Mysql)은 환상적인 속도를 제공합니다


    3. 파일업로드, 메일 전송등의 기능은 자체적으로 지원하며(ASP나 JSP 처럼 컴포넌트나 클래스 파일을 따로 설치하지 않아도 됩니다)


    4. 문법이 C언어를 따르므로 간결하고 ASP나 JSP에 비해 코드의 양을 많이 줄여 줄수 있다.


    5. DB 연결에 함수를 사용하게 때문에 직관적이고 간결합니다


    6. 클래스 생성 및 상속이 가능하여 코드를 모듈화 시키기에 용이합니다


    7. 이미지를 동적으로 생성할 수 있습니다


    8. XML, ZIP, PDF, 암호화 등에 관련된 다양한 함수를 지원합니다.


    9. JSP 처럼 한글 처리를 걱정하지 않아도 됩니다

    '용어' 카테고리의 다른 글

    웹 동작 방식  (0) 2017.02.25
    리눅스란?  (0) 2017.01.18
    mysql 프로세스 리스트 보기  (0) 2017.01.17
    아파치 컴파일 옵션  (0) 2017.01.16
    아파치 컴파일  (0) 2017.01.16
    Posted by 서버이야기