JSP, PHP, ASP 개념 / 장단점 / 비교

방충림·2023년 3월 22일
10

CS

목록 보기
18/26
post-thumbnail

JSP, PHP, ASP는 모두 웹 개발에 사용되는 서버 측 스크립트 언어이다. 이들 언어는 웹 서버에서 실행되어 동적인 웹 페이지를 생성(실제 웹이 동작하고 기능들이 구현되게 하는)하는 데 사용된다. 이들은 프로그래밍 언어는 아니지만, 스크립트 언어로 분류된다.

스크립트 언어는 일반적으로 프로그래밍 언어보다 쉽고 간단한 문법을 가지고 있으며, 서버에서 동적인 컨텐츠를 생성하는 데 사용된다. 이들 언어는 HTML과 같은 마크업 언어와 결합하여 웹 페이지를 만들기 위해 사용된다.

따라서 JSP, PHP, ASP는 프로그래밍 언어는 아니지만, 서버 측 스크립트 언어(서버사이드 언어, Server-Side Script)로 분류된다.

JSP (Java Server Pages)

  • Oracle 사에서 관리중인 Java 기반의 언어로 Java에서 제공하는 기능들을 그대로 사용 가능하다.
  • 금융권이나 대기업 웹사이트 및 내부시스템 개발에 많이 쓰이고 있음
  • 개발언어 : java

    JSP는 Java Server Pages의 약자이며, Java 언어를 기반으로 한 서버 측 웹 프로그래밍 언어입니다. JSP 코드는 Java 코드로 변환되어 서버에서 실행됩니다.

장점

  • 우수한 보안성과 다양한 기능으로 은행이나 중요회사의 경우 많이 사용하고 전자정부 표준으로 사용되는 언어이다
  • java의 이식성을 그대로 이어받아 리눅스, 윈도우 뿐 아니라 대부분의 다른 플랫폼에서도 운용이 가능(어떤 기종이 컴퓨터든지 사용할 수 있음)하다.

단점

  • ASP, PHP에 비해 프로그래밍하기 까다롭다.



PHP (Hypertext Preprocessor)

PHP는 "Personal Home Page Tools"의 약자였습니다. 이는 PHP가 처음 개발될 당시 Rasmus Lerdorf가 개인적으로 사용하기 위해 만든 일련의 CGI 스크립트 도구 모음이었습니다. 이후 PHP는 "PHP: Hypertext Preprocessor"로 재정의되어서 현재는 이 약어가 더 일반적으로 사용되고 있습니다.

  • 오픈소스로 제공되는 명령형, 객체지향형 언어로 1/3에 해당하는 오픈소스 소프트웨어가 php로 구성되어 있다. (워드프레스, 미디어위키, 그누보드)
  • 소규모 웹사이트 및 기업홍보용으로 널리 사용됨.
  • 개발언어 : C, C++

    PHP는 C 언어로 작성된 오픈 소스 서버 측 스크립트 언어입니다. PHP는 C와 C++에서 많은 아이디어를 얻어서 개발되었지만, C나 C++과는 직접적인 연관성은 없습니다.

장점

  • 라이센스 비용이 없다.
  • 유닉스 계열 운영체제 뿐만 아니라 윈도우에서도 사용가능하다.
  • Mysql, oracle, PostgreSQL, sysbase 등 다양한 데이터베이스가 지원되어 사용자 편의성 제공한다.
  • 설치가 쉽고 배우기 쉽다.
  • 개발기간이 JSP에 비해 짧게 걸리고 상대적으로 가볍기 때문에 구동 속도가 빠르다.

단점

  • 라이센스 비용이 없는 대신 기술지원이 없다.
  • JSP, ASP에 대해 안정적이지 못한 언어이기 때문에 트래픽이 다량 발생하면 서버 속도가 느려지며 소스가 공개되어 보안에 취약하다.



ASP (Active Server Pages)

  • MS사에서 서비스하는 프로그래밍 언어다. 데이터베이스는 MSsql, oracle, Access 를 사용한다.
  • 광범위하게 사용되나 주로 중-대규모의 인터넷서비스에 많이 사용된다.
  • 개발언어 : VBscript

    ASP는 Active Server Pages의 약자이며, Microsoft에서 개발한 서버 측 스크립트 언어입니다. ASP는 주로 Visual Basic 또는 C#과 함께 사용됩니다.

장점

  • 비주얼 베이직 스크립트와 함께 사용 가능하다.
  • MS에서 제공하는 다양한 컴포넌트를 활용가능하다.

단점

  • 윈도우에서만 사용 가능하다.



비교

환경 비교

JSPPHPASP
운영체제windows 계열
리눅스(유닉스)
windows 계열
리눅스(유닉스)
windows 계열
웹 서비스 데몬IIS
(internet Information Server)
Apache*
IIS
Apache*
IIS
PWS
(Personal Web Server)
스크립트 해석기
(파서 또는 엔진)
Tomcat
Resin
JRun
Weblogic
GNU JSP
WebSphere
OSDK
JServ
PHPIIS
데이터베이스Oracle, MySQL, MS SQL, Access 등MySQL, Oracle, Sybase, mSql PostgreSql, Info mix Dbase, Unix dbm 등MS SQL, Oracle, Access 등

성능 비교

  1. 예상 개발 기간 : JSP > PHP > ASP
  2. 예상 개발 비용 : JSP > ASP > PHP
  3. 개발자 인건비 : JSP > ASP > PHP
  4. 속도 : PHP > ASP > JSP
  5. 난이도 : JSP > PHP,ASP
  6. 이식성 : JSP > PHP > ASP
  7. 보안성 : JSP > ASP > PHP

코드 형태 비교

각각의 예시 코드는 사용자로부터 이름을 입력받아 HTML 페이지에 동적으로 출력하는 기능을 수행한다.

  1. JSP
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
  <body>
    <% String name = request.getParameter("name"); %>
    <% if (name != null) { %>
      <h2>Hello <%= name %>!</h2>
    <% } else { %>
      <h2>Please enter your name!</h2>
    <% } %>
    <form method="GET">
      <input type="text" name="name">
      <input type="submit" value="Say Hello">
    </form>
  </body>
</html>
  1. PHP
<!DOCTYPE html>
<html>
  <body>
    <?php
      $name = $_GET['name'];
      if ($name != null) {
        echo "<h2>Hello $name!</h2>";
      } else {
        echo "<h2>Please enter your name!</h2>";
      }
    ?>
    <form method="GET">
      <input type="text" name="name">
      <input type="submit" value="Say Hello">
    </form>
  </body>
</html>
  1. ASP
<!DOCTYPE html>
<html>
  <body>
    <% Dim name
       name = Request.QueryString("name")
       If name <> "" Then %>
      <h2>Hello <%= name %>!</h2>
    <% Else %>
      <h2>Please enter your name!</h2>
    <% End If %>
    <form method="GET">
      <input type="text" name="name">
      <input type="submit" value="Say Hello">
    </form>
  </body>
</html>

대표적인 서버 사이드 스크립트 언어

  • ASP/ASP.NET (.asp / aspx)
  • 콜드퓨전 마크업 언어 (*.cfm)
  • C서버 스크립트 (*.c)
  • 자바 서버 페이지를 통한 자바 (*.jsp)
  • 서버 사이드 자바스크립트를 사용한 자바스크립트 (*.ssjs)
  • PHP (*.php)
  • 펄 (*.pl)



꼬꼬무 질문

Q1. 스크립트 언어가 뭐길래 언어로 언어를 만들어?

스크립트 언어는 일반적으로 인터프리터를 통해 실행되며, 실행 속도는 컴파일러를 통해 생성된 프로그램보다 느립니다. 스크립트 언어는 자주 사용되는 작업을 쉽게 자동화하고, 웹 페이지와 같은 동적 콘텐츠를 생성하기 위해 사용됩니다. 스크립트 언어로 새로운 언어를 만드는 것은 가능하지만, 일반적으로는 범용 언어를 사용하여 새로운 언어를 개발합니다.

Q2. 스크립트 언어를 왜 쓰는 거야? 그냥 프로그래밍 언어로 만들면 되는 거 아니야?

스크립트 언어는 프로그래밍 언어와는 다른 목적을 가지고 개발되었습니다. 스크립트 언어는 일반적으로 인터프리터를 사용하여 실행되며, 프로그래밍 언어보다는 더 빠르게 개발할 수 있고, 문법이 간단하며, 유연성이 높습니다. 이러한 특징으로 인해 스크립트 언어는 작은 규모의 작업이나 특정 작업을 자동화하는 데 많이 사용됩니다.
특히, 웹 프로그래밍 분야에서는 스크립트 언어가 많이 사용됩니다. 웹 페이지의 동적 콘텐츠를 생성하는 데 사용되며, 웹 브라우저에서 실행되는 클라이언트 측 스크립트 언어와 서버 측 스크립트 언어가 모두 있습니다. 대표적인 서버 측 스크립트 언어로는 PHP, JSP, ASP 등이 있습니다.
그러나, 스크립트 언어는 프로그래밍 언어보다는 실행 속도가 느리기 때문에 대규모의 작업이나 높은 수준의 성능을 요구하는 작업에서는 프로그래밍 언어가 더 적합합니다. 따라서, 스크립트 언어와 프로그래밍 언어는 각각의 특징과 용도에 따라 적절히 선택하여 사용하는 것이 중요합니다.

Q3. 그러면 자바스크립트는 뭐야. 스크립트 언어야?

네, 자바스크립트(JavaScript)는 스크립트 언어입니다. 자바스크립트는 웹 브라우저에서 동적인 웹 페이지를 만드는 데 사용되며, 브라우저에서 실행됩니다. 또한, Node.js와 같은 서버 사이드 플랫폼에서도 사용되어 서버 측 프로그래밍에도 이용됩니다. 자바스크립트는 문법이 간단하고, 브라우저에서 실행되므로 웹 애플리케이션을 구현하기 위한 스크립트 언어로 매우 인기가 있습니다.

Q4. 자바스크립트는 무슨 언어로 만들어졌다고 말해야해?

자바스크립트는 C, C++, Java와 같은 프로그래밍 언어로 개발되었습니다. 초기 자바스크립트 엔진은 C++로 개발되었고, 이후 Google이 개발한 V8 엔진은 C++로 작성되었습니다. 또한, 자바스크립트를 사용하여 웹 페이지를 개발할 때, HTML과 CSS와 같은 웹 기술과 함께 사용되며, 이들 기술을 브라우저에서 해석하고 실행하기 위해 브라우저 자체적으로 구현되어 있습니다. 따라서 자바스크립트는 여러 가지 기술과 언어들을 조합하여 웹 개발에 사용되는 언어로 볼 수 있습니다.



참고문헌 : 올착이 TV
profile
최선이 반복되면 최고가 된다.

0개의 댓글