출처 <자바 웹을 다루는 기술> 이병승
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 방식보다 효율적으로 기능을 수행할 수 있다.
'Java' 카테고리의 다른 글
final 예약어 (0) | 2024.06.21 |
---|---|
[Java] 환경변수 변경하기 (0) | 2023.06.21 |
[Java] String sample = “” VS String sample = new String(””) (0) | 2022.06.15 |
[Java] List 와 hashmap 의 Null (0) | 2022.06.07 |
[자바 웹을 다루는 기술] 1. 웹 프로그램 진화 과정 (0) | 2022.01.30 |