본문 바로가기
Java

[자바 웹을 다루는 기술] 2. 웹 프로그래밍과 JSP

by liony 2022. 1. 30.
출처 <자바 웹을 다루는 기술> 이병승

 

 

1. 정적 웹 프로그래밍

  • 아파치와 같은 웹 서버를 이용해서 웹 페이지를 브라우저에 표시하는 방식
  • 사용자에게 고정된 정보만을 제공한다.
    → 웹 서버에 미리 보여줄 HTML, CSS, 이미지, JavaScript 파일을 저장해 놓고 브라우저에서 요청할 경우 그대로 전달하기 때문에, 사용자는 페이지가 변경되지 않는 한 고정된 웹 페이지를 보게된다.
  • 정보 수정 시 관리자가 직접 HTML 소스를 수정하여 사용자에게 정보를 제공한다.

 

정적 웹 프로그래밍 구성 요소

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

 

 

 

2. 동적 웹 프로그래밍

  • 관리자가 하던 역할을 웹 애플리케이션 서버(웹 애플리케이션 서버(WAS)에서 실행되는 애플리케이션)가 수행한다.
  • 정보가 저장되어 있는 데이터베이스에 클라이언트의 요청이 있을 때마다 접근하여 실시간 정보를 클라이언트에게 제공할 수 있다.

 

CGI(Common Gate Interface, 공용 게이트웨이 인터페이스)
  • 초기 웹 프로그램에서 사용하는 동적 방식의 프로그램 제공 기능
  • 웹 애플리케이션 서버에서 실행되는 기능들이 모두 프로세스 방식으로 실행된다.
    • 특정 기능을 하는 프로세스를 메모리에 생성 후 기능 수행하는데, 같은 기능을 수행하더라도 각 경우에 대해 처음부터 메모리에 기능을 로드하여 수행해야 한다.
  • 서버의 부하가 심하다.
  • 대표적인 CGI 프로그래밍 언어 : perl

 

문제점

  • 인터넷 환경 발전 및 급격히 늘어난 사용자 수, 처리해야 할 일의 양으로 인해 메모리에 과부하가 걸려 기능 수행에 어려움이 있을 수 있다.
  • 이를 보완하여 나온 것이 JSP, ASP, PHP 와 같은 동적 웹 프로그래밍 기술이다.

 

 

3. JSP 프로그램의 특징

  • 프로세스 방식이 아닌 스레드 방식으로 실행
  • 클라이언트의 요구를 처리하는 기능은 최초 한 번만 메모리에 로드된다.
  • 클라이언트가 동일한 기능을 요구하면 기존에 사용한 기능을 재사용한다.
    • 같은 기능이어도 매번 각 요청에 대한 기능을 처음부터 따로 로드했던 CGI 와 달리, 수행할 기능이 이미 메모리에 존재한다면 이를 이용해 정보를 가져온다.

 

프로그램의 수행 속도를 떨어뜨리는 요인 중 하나가 프로그램을 외부 장치에서 메모리로 로드하는 것.
스레드로 수행하면 이 과정을 거치지 않아도 되기 때문에 CGI 방식보다 효율적으로 기능을 수행할 수 있다.