ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Web] CGI, Servlet, JSP
    Programming/Web 2020. 3. 6. 23:58

    CGI > Servlet > JSP 는 다음 개념이 등장한 순서이다.

    웹의 역사와 함께 각 개념들이 등장한 흐름과 정의를 알아보자.

     

    처음 웹이 등장하고 활성화 되지 않았을 때는 정적인 데이터(HTML, XML, 이미지 파일 등)를 전달하는 것 만으로도 충분했다. 그러나 웹이 발달하면서 사용자와 상호작용하는 결과를 보여주는 동적인 페이지가 필요하게 되었다. 예를들어 이용자의 ID에 정보에 따라 그에 맞는 결과를 보여주는 페이지.

     

    그러나 기존의 웹 서버는 정적인 페이지를 보여주는 용도로 만들었기 때문에 사용자의 요청을 받아 정보를 동적으로 생성하고 이를 다시 클라이언트로 보여주는 것이 불가능했다. 따라서 서버에서 다른 프로그램을 불러내고 그 프로그램의 동적인 처리결과를 클라이언트로 보내줄 수 있는 인터페이스가 필요했고 이것이 CGI이다. 

     

    CGI(Common Gateway Interface)

     

    CGI는 환경변수나 표준입출력을 다룰 수 있는 프로그램 언어라면 언어의 구별을 묻지 않고 확장 하여 이용하는 것이 가능하다. 대표적으로 C, Java, Python, PHP, Ruby 등이 있다.

     

    CGI 프로그램은 서버에서 프로세스 단위로 실행이 된다. 그러다보니 사용자의 동적인 페이지 요청이 많을 때 서버에 부하가 크게 가게 되었고, 프로세스보다 더 작은 단위로 실행하는 것이 필요했다. 그리고 웹 서버의 프로세스로서 인터프리터를 상주시키고, CGI로부터 프로그램을 호출해(즉, 스레드 단위로 실행) 부하를 줄임으로써 성능을 개선한 Java Servlet이 등장했다. ==> 웹 서버와 동적인 프로그램의 교환 방식

     

    Servlet

     

    Servlet은 Tomcat이 이해할 수 있는 순수 Java 코드로만 이루어진 웹 서버용 클래시이다. Java에서는 Servlet을 이용하여 CGI 프로그래밍을 쉽게 만들었다.

     

    하지만 Java를 사용하여 웹 페이지를 동적으로 생성하기 위해 코드안에 HTML을 포함하는데 HTML 형태로 출력하기 위해서는 print() 메서드를 사용하여 일일이 String으로 태그들을 양식에 맞춰 써야하므로 다른 서버사이드 언어에 비해 불편하다. 또한 Java 클래스이기 때문에 테스트를 위해서는 항상 빌드를 다시하여 확인해야했고, 이런 단점을 보완하기 위해 등장한 것이 JSP이다. ==> 웹에서 동작하는 동적인 Java 프로그램

     

    JSP(Java Servlet Page)

     

    JSP는 html안에 자바 코드가 포함된 것으로 서버사이드 스크립트를 말한다. jsp는 실행시에는 Java Servlet으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있다. 하지만 서블릿과는 달리 HTML 표준에 따라 작성되므로 웹 페이지 작성이 편리해졌다. 클라이언트에서 서비스가 요청되면 JSP의 실행을 요구하고, 그후에 서블릿 원시코드는 바로 컴파일된 후 실행되어 HTML 형태로 클라이언트에 돌려준다.

     

    서블릿과는 달리 JSP는 코드를 변경할 떄 마다 WAS에서 자동으로 빌드하고 클라이언트에 화면을 동적으로 보여주기 때문에 개발이 많이 편리해졌다. ==> 일일이 빌드하지 않아도 됨

     

    'Programming > Web' 카테고리의 다른 글

    [Web] Ajax 시작하기  (0) 2020.03.23
    [Web] Accept와 Content-type  (0) 2020.03.18
    [Web]왜 spring을 사용해야 하는가?  (0) 2020.01.23
    [Web] Browser의 동작  (0) 2020.01.15
    [Web] Template Literals with JSON in JavaScript  (0) 2020.01.15

    댓글

Designed by Tistory.