자바 웹을 다루는 기술 2장 -웹 프로그래밍과 JSP (요약)

자바 웹을 다루는 기술 2장 -웹 프로그래밍과 JSP (요약)

2.1 웹 프로그래밍의 기본

JSP가 나오기 이전에도 웹 브라우저를 통해 웹 페이지를 보여주는 기능은 있었다. Apache 같은 웹 서버를 이용하여 웹 페이지를 브라우저에 표시하는 방식이 있었다. 이러한 방식은 HTML, CSS, 이미지, JS 파일 저장해 놓고 브라우저에서 요청할 경우 그대로 전달하는 방식이다. 이를 정적 웹 프로그래밍이라고 한다.

요즘에는 정적 웹 프로그래밍은 거의 사용되지 않는다. 실시간으로 변하는 정보를 웹 페이지에 표시해야 할 일이 많기 때문이다. 따라서

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

웹 서버: 각 클라이언트에게 서비스를 제공하는 컴퓨터

클라이언트: 네트워크로 서버에 접속한 후 서버로부터 서비스를 제공받는 컴퓨터

HTTP 프로토콜: Hyper Text Transfer Protocol의 약자, www 서비스를 제공하는 통신 규약

HTML: Hyper Text Markup Language의 약자, www 서비스를 제공하기 위한 표준 언어

자바스크립트: HTML 웹 페이지에 여러 가지 동적 기능을 제공하는 스크립트 언어

CSS(Style Sheet): HTML 페이지의 디자인에 관련된 기능 제공

2.2 정적 웹 프로그래밍

인터넷의 발전으로 사람들은 웹 브라우저로 실시간 정보를 제공받기 원한다. 정적 웹 프로그래밍으로는 사실상 실현 불가능하다. 정적 웹 프로그래밍으로 구현한다면 실시간으로 서버에서 정보를 수정하고 클라이언트에게 제공하는 일을 반복해야 하기 때문이다. 따라서 JSP 같은 동적인 웹 프로그래밍이 나타나게 되었다.

2.3 동적 웹 프로그래밍

동적인 방식에서는 정적인 방식에서 관리자가 하던 역할을 웹 애플리케이션 서버가 수행한다. 클라이언트의 요청이 있을 때마다 데이터베이스에 접근하여 실시간 정보를 클라이언트에게 제공할 수 있다.

처음 동적인 방식으로 프로그램을 제공하는 기능은 CGI( Common Gate Interface) 였다. 동작 방식은 다음과 같다.

프로세스 방식으로 실행

서버의 부하가 심하다.

- 클라이언트가 데이터를 요청하면 웹 애플리케이션 서버는 프로세스를 메모리에 생성한다.

- 데이터베이스와 연동하여 클라이언트에게 데이터를 반환한다.

이 CGI 방식은 프로세스 방식이므로 요즘처럼 사용자 수가 많은 상황에서 메모리에 과부하가 결리낟.

따라서 이 방식을 개선하여 나온 것이 JSP, ASP, PHP와 같은 동적 웹 프로그래밍 기술이다.

2.4 JSP 프로그램의 특징

JSP는 기본적으로 스레드 방식으로 실행한다. 따라서 CGI 방식보다는 효율적으로 기능을 수행한다.

- 클라이언트에서 정보를 요청하면 서버는 정보를 메모리에 로드한 후 정보를 얻어 클라이언트에게 얻은 정보를 전송한다.

- 다른 클라이언트에서 동일한 정보를 요청하면 서버의 기존에 메모리에 존재하는 정보를 바로 클라이언트에게 전송한다.

메모리로 로드하는 작업을 줄여 빠르게 동작을 실행한다.

요즘처럼 다수의 사용자가 이용하는 환경에서는 스레드 방식으로 동작하는 프로그램이 유리하다.

정리 :

프로세스 방식이 아닌 스레드 방식으로 실행된다

클라이언트의 요구를 처리하는 기능은 최초 한 번만 메모리에 로드된다.

클라이언트가 동일한 기능을 요구하면 기존에 사용한기능을 재사용한다.

from http://park-algorithm.tistory.com/9 by ccl(A) rewrite - 2021-09-07 21:00:34