BackEnd/Web Application

2장. 웹 프로그래밍과 JSP

제이드Jade 2022. 2. 11. 18:15

JSP가 나오기 이전의 웹 페이지를 보여주는 웹 서버는 정적 웹 프로그래밍의 방식을 씀 (ex. 아파치)

 

정적 웹 프로그래밍

  • 웹 서버에 미리 보여줄 HTML 페이지, CSS, 이미지, 자바스크립트 파일을 저장해 놓고 브라우저에서 요청할 경우 그대로 전달하는 방식
  • 페이지가 변경되지 않는 한 고정된 웹 페이지를 보게 됨
  • 새로운 정보를 제공하려면 관리자가 서버의 HTML 페이지에서 해당 정보가 표시되는 곳을 찾아 정보를 수정한 후 해당 정보를 클라이언트에 제공해야 함
  • 요즘은 실시간으로 변하는 정보를 웹 페이지에 표시해야 할 일이 많으므로 거의 사용되지 않음
  • 하지만 정적 웹 프로그래밍의 구성 요소는 JSP에서도 여전히 화면 디자인과 기능 처리를 담당함
  • <구성 요소들>
    • 웹 서버: 각 클라이언트에게 서비스를 제공하는 컴퓨터
    • 클라이언트 : 네트워크로 서버에 접속한 후 서버로부터 서비스를 제공받는 컴퓨터
    • HTTP 프로토콜(Hyper Text Transfer Protocol) : www 서비스를 제공하는 통신 규약, 웹 서버와 클라이언트가 정보를 주고 받는데 이용하는 프로토콜
    • HTML(Hyper Text Markup Language) : www 서비스를 제공하기 위한 표준 언어
    • 자바스크립트 : HTML 웹 페이지의 여러가지 동적인 기능을 제공하는 스크립트 언어
    • CSS(Style Sheet) : HTML 문서에서 서체나 색상, 정렬 등 세부적인 HTML 페이지의 디자인에 관련된 여러가지 기능을 제공

 

동적 웹 프로그래밍

  • 관리자가 서버의 실시간 정보를 위해 수정하는 작업을 웹 애플리케이션 서버(WAS)에서 실행되는 애플리케이션이 수행
  • 따라서 실시간 정보가 저장되어 있는 데이터베이스에 클라이언트의 요청이 있을 때마다 데이터베이스에 접근하여 실시간 정보를 클라이언트에게 제공 가능
  • 일반적으로 실시간 환율 정보를 데이터베이스에 저장하는 기능은 다른 프로그램이 미리 수행

 

  • CGI(Common Gate Interface, 공용 게이트웨이 인터페이스) : 최초로 동적인 방식으로 프로그램을 제공함

 

<CGI 동작 방식의 특징>

  • 프로세스 방식으로 실행
    ㄴ 클라이언트 1이 환율 정보를 요청 -> WAS는 환율 조회 기능을 수행하는 프로세스를 메모리에 생성 -> 데이터베이스와 연동 -> 클라이언트 1에게 환율 정보를 반환
    ㄴ 클라이언트들이 같은 요청을 하더라도 요청이 있을 때마다 매번 이 기능을 수행
  • 서버의 부하가 심함
  • 이러한 CGI의 문제점을 개선하여 나온 것이 JSP, ASP, PHP와 같은 동적 웹 프로그래밍 기술

 

2.4 JSP 프로그램의 특징

  • 기본적으로 스레드 방식으로 실행하므로 효율적
  • 클라이언트의 요구를 처리하는 기능들은 최초 한번만 메모리에 로드
  • 클라이언트에서 이전에 받았던 것과 동일한 요청이 들어오면 기존에 존재한 기능을 재사용해서 정보를 제공