김완기

김완기

BE Developer

© 2021

Dark Mode

[JSP/Servlet] 웹 프로그래밍과 JSP

웹 프로그래밍의 기본

  • 웹 프로그래밍의 여러 가지 구성 요소
    • 웹 서버: 각 클라이언트에게 서비스를 제공하는 컴퓨터
    • 클라이언트: 네트워크로 서버에 접속한 후 서버로부터 서비스를 제공받는 컴퓨터를 의미
    • HTTP 프로토콜: Hyper Text Transfer Protocol의 약자로, www 서비스를 제공하는 통신 규약을 의미한다. 웹 서버와 클라이언트는 이 프로토콜을 이용해 정보를 주고받는다.
    • HTML: Hyper Text Markup Language의 약자로, www 서비스를 제공하기 위한 표준 언어
    • Javascript: HTML 웹 페이지의 여러 가지 동적인 기능을 제공하는 스크립트 언어
    • CSS(Style Sheet): HTML 문서에서 서체나 색상, 정렬 등 세부적인 HTML 페이지의 디자인에 관련된 여러 가지 기능을 제공한다.

정적 웹 프로그래밍(static web programming)

static_web

  • 아파치(Apache) 같은 웹 서버를 이용해서 웹 페이지들을 브라우저에 표시하는 방식.
  • 정적 웹 프로그래밍은 웹 서버에 미리 보여줄 HTML 페이지, CSS, 이미지, javascript 파일을 저장해 놓고 브라우저에서 요청할 경우 그대로 전달하는 방식이다.
  • 즉, 사용자는 페이지가 변경되지 않는 한 고정된 웹 페이지를 보게 된다.(실시간으로 변하는 정보 표시 못한다.)
  • 특징
    • 사용자에게 화면 디자인 같은 고정된 정보만 제공한다.
    • 정보 수정시 관리자가 직접 HTML 소스를 수정하여 사용자에게 정보를 제공해야한다.

동적 웹 프로그래밍(dynamic web programming)

dynamic_web

  • 정적 웹 프로그래밍에서 관리자가 HTML 소스를 직접 수정했어야 했는데, 이것을 웹 애플리케이션 서버가 수행하도록 한 것이다.
  • 따라서 데이터베이스에 정보를 저장해놓고, 클라이언트의 요청이 있을 때마다 데이터베이스에 접근하여 실시간 정보를 클라이언트에게 제공할 수 있다.
  • 처음에 동적인 방식으로 프로그램을 제공하는 기능은 CGI(Common Gate Interface) 였다.
    • CGI의 특징
      • CGI 언어로는 대표적으로 perl이 있다.
      • 초기 웹 프로그램에서 사용하는 방식이다.
      • 프로세스 방식으로 실행된다.
      • 서버의 부하가 심하다.
    • CGI 방식은 웹 애플리케이션 서버에서 실행되는 기능들이 모두 프로세스(process) 방식으로 실행된다.
    • 그래서, 어떤 기능을 수행하더라도 처음부터 메모리에 해당 기능을 로드(load)하고 수행한다. 그래서 과부하가 크다.
  • 이러한 CGI의 문제점을 개선하여 나온 것이 JSP, ASP, PHP와 같은 동적 웹 프로그래밍 기술들이다.

JSP 프로그램의 특징

  • JSP는 기본적으로 스레드(Thread) 방식으로 실행한다. 그래서 CGI 방식보다는 효율적으로 기능을 수행할 수 있다.
  • 어떤 기능을 수행할 때, 해당 기능에 대한 내용이 이미 메모리에 있다면 로드 과정이 생략되기 때문에 CGI 프로그램보다 훨씬 빠르게 동작한다.
  • JSP의 특징
    • 프로세스 방식이 아닌 스레드 방식으로 실행한다.
    • 클라이언트의 요구를 처리하는 기능은 최초 한 번만 메모리에 로드된다.
    • 클라이언트가 동일한 기능을 요구하면 기존에 사용한 기능을 재사용한다.


참고: 자바 웹을 다루는 기술