티스토리 뷰

 

PHP

 

동적으로 HTML 데이터를 생성하여 동적 웹페이지를 제공하는 것을 주된 목적으로 하는 서버측 스크립트 언어이자 범용 프로그래밍 언어이다.
1994년 라스무스 러도프(Rasmus Lerdof)에 의해 개발되었으며, 원래 개인 홈페이지를 뜻하는 “Personal Home Page”에서 그 이름이 유래되었다. PHP 1.0은 1995년 발표되었으며, 2000년에 PHP 4가 발표되면서 새로운 스크립트 엔진인 젠드 엔진(Zend Engine)이 도입되는 등 대대적으로 개편되었다. 2015년 12월에는 PHP 7이 출시되었는데 엔진 및 데이터 구조가 개선되면서 성능이 크게 향상되었다.

PHP는 서버측 스크립트 언어로 이용되며, 웹서버에서 실행된다. 즉 PHP스크립트 문서가 요구될 때마다 서버측에서 PHP 스크립트가 실행되어 결과가 웹 브라우저로 전송된다. 문법이 평이하여 초보자가 쉽게 배울 수 있을 뿐만 아니라 대규모 개발에도 많이 이용되고 있다. 많은 프레임워크와 라이브러리가 존재하기 때문에 손쉬운 개발이 가능하다. 다수의 오픈소스 웹 어플리케이션 개발에 이용되고 있는 반면 심각한 보안 취약점이 여러 번 보고된 바 있다.

 

PHP는 다음과 같은 특징을 가지고 있다.

 

- 서버측 스크립트로 동작한다.
- C언어 혹은 자바 언어와 유사한 평이한 문법을 따른다.
- 데이터베이스에 쉽게 연동할 수 있다.
- 클래스 기반 객체지향프로그래밍을 지원한다.
- 예외처리 문(try, catch 등)을 지원한다.
- 많은 오픈소스 프레임워크와 라이브러리를 사용 가능하다.
- 다양한 부가기능이 PEAR(PHP Extension and Application Repository)라는 온라인 라이브러리 리파지토리에서 모듈로 제공된다.
- 위키 구축에 사용되는 미디어위키(MediaWiki) 등의 수많은 오픈소스 웹 어플리케이션에 이용된다.

 

PHP는 “와 “?>”로 둘러싸인 내부를 PHP 코드로 인식하고 실행한다. 그 외의 부분은 모두 HTML 코드로 그대로 출력된다. HTML에 “Hello World!”를 출력하기 위한 기본적인 PHP 코드는 다음과 같다.

 

<!DOCTYPE html> <html> <head> <title> PHP Test </title> </head>
<body> <?php echo '<p>Hello World</p>'; ?> </body> </html>

 

 

 

 

 

ASP

 

하나 이상의 작은 내장 프로그램(스크립트)를 갖고 있는 HTML페이지가 사용자에게 보여지기 위해 서버에서 수행되는 것이다. 서버의 웹 스크립트는 사용자의 요구에 따라 데이터베이스에서 찾은 결과로 순간적으로 웹페이지를 만든다.


1995년 말에 등장한 IIS(Internet Information Server)의 세 번째 버전으로
마이크로소프트사의 NT머신 IIS 3.0 이상에서만 작동하는 특별한 페이지이다. 클라이언트가 요청하면 서버에서 응답해 주는 방식의 서버측 프로그램이다. 이 프로그램을 사용하면 서버에서 웹을 프로그래밍할 수 있으며, 기존의 HTML페이지와는 다른 동적인 구성을 할 수 있다. 서버에서 작동하므로 속도는 서버의 사양에 따라 다르고 클라이언트측은 인터넷을 사용하는 사용자의 사양에 따라 다르다. 지금까지 많이 사용하던 CGI 프로그램보다 작성하기가 쉬워 빠르게 확산되고 있으나 윈도 운영체제에서만 사용할 수 있다는 단점도 있다.

 

가장 큰 특징은 기존 HTML이 코드작업을 거쳐야 하는데 비해 텍스트 파일을 업데이트하는 것만으로도 웹페이지나 데이터베이스의 목차를 편집할 수 있고, 사용자의 구미에 맞는 것만 골라 페이지를 만들 수 있다는 데 있다. 또한 웹페이지 상에서 데이터베이스를 보여 주고 그 안에 실제로 존재하는 데이터를 조작할 수 있으며, 사용자에 대한 정보를 피드백하여 해당 사용자에게 맞는 정보를 보내줄 수도 있다.

 

 

 

 

 

 

JSP

 

Java를 사용한 서버측 코드가 들어가 있는 웹페이지. JavaServer Page의 약자다. 같은 부류에 속하는 것으로 PHP, ASP가 있다. 확장자는 당연히 .jsp를 사용. ASP와 마찬가지로 <% ... %>로 둘러싸인 스크립트 영역이 있으며, 실행시에 javax.servlet.http.HttpServlet 클래스를 상속받은 자바 소스코드로 변환된 다음[1] 컴파일되어 실행된다. 이 JSP 파일을 Servlet 클래스로 변환하고 실행시켜 주는 역할을 하는 프로그램이 Servlet Container. 대표적으로 오픈소스 서블릿 컨테이너인 톰캣이 있다. 하나의 JSP페이지가 하나의 자바 클래스이기 때문에 모든 자바 라이브러리를 끌어다 쓸 수 있다.

서블릿 컨테이너도 Java 프로그램이며, 자바 가상 머신 위에서 실행된다. 따라서 대부분의 운영체제에서 소스코드 변경이나 재 컴파일 없이 실행시킬 수 있고, 특히 유닉스계열과 궁합이 잘 맞는다.

 

중-소규모 사이트에서 주로 쓰이는 PHP와 달리, 주로 대규모 기업용 시스템 구축에 사용된다.

대규모 기업 환경에서는 보통 톰캣과 같은 단순한 서블릿 컨테이너가 아닌, Java Platform, Enterprise Edition(J2EE) 사양을 만족하는 Application Server 위에서 프로그램을 운용하게 된다. J2EE는 JSP의 실행 뿐만 아니라 DB 커넥션 풀, 메시징 시스템, 로드밸런싱 등등 화려한 기능들로 무장하고 있고 덕분에 매우 비싸며.[2], 규모가 방대하고 무거우며, 메모리 등의 자원도 많이 사용하게 되고 상대적으로 초기 로딩도 느리다. 이쪽 업계의 최고봉은 BEA의 WebLogic 이었지만 지금은 오라클에 인수된 상태(...) 국내 한정으로 기관 등에 자주 쓰이는 티맥스소프트의 JEUS 도 J2EE 어플리케이션 서버다.

 

PHP를 지원하는 호스팅 업체는 많이 널려있지만 JSP를 호스팅 해주는 업체는 찾기가 예전에는 쉽지 않았으나, 데이터 센터와 호스팅 업체들이 클라우드 컴퓨팅으로 갈아탄 다음부터 비교적 싼 값에 자바를 운용할 수 있는 클라우드 호스팅 서비스도 꽤 생겼다. 대인배 구글의 App Engine이 공짜로 Java를 지원하니 이쪽을 이용해 보도록 하자.

 

 

 

 

 

 

 

 

 

 

 

댓글