본문 바로가기

JSP

1. 웹 프로그래밍의 이해

1. 웹 프로그래밍의 이해

1-1. 웹 프로그래밍의 개요

 프로그래밍 하면 CGI, ASP, PHP, JSP 등을 일컫는다. 웹 프로그래밍은 기본적으로 클라이언트(Client) / 서버(Server)방식으로 다음과 같은 형태를 갖게 된다. 클라이언트(웹 브라우저)가 특정 페이지를 웹 서버에 요청(Request)하게 되면 웹 서버가 이를 처리한 후 결과를 클라이언트(웹 브라우저)에게 응답(Response)을 하게 되는 구조이다.

                                              [클라이언트 / 서버 방식의 구조]

1-2. 웹 프로그래밍 언어

(1) JSP (Java Server Pages)

 JSP는 Java라는 언어를 기반으로 하여 만들어진 것이지만, ASP, PHP처럼 HTML태그 사이 사이에 동적인 콘텐츠 생성을 담당할 Java코드가 들어가 있는 형태로 서블릿의 형태와 다른 모습을 취하고 있다. 다시 말하면 동적 컨텐츠를 생성하기 위해 스크립트 언어 형식으로 프로그램을 작성할수 있어 개발자에게 쉬운 개발을 할수 있게 한다. 또한 JSP는 사용자가 직접 태그를 정의해서 사용할 수 있는 사용자 정의 태그를 지정할 수 있는 기능을 갖고 있어서 보다 효율적인 웹 사이트를 구성할 수 있다.

1-3. 웹 프로그래밍과 웹 어플리케이션

 웹 어플리케이션이란 웹을 기반으로 실행되는 프로그램을 의미한다. 따라서 웹 프로그래밍과 웹 어플리케이션의 관계는 '웹 프로그래밍을 통한 웹 어플리케이션의 구현' 이라고 할 수 있다. 웹 어플리케이션의 구조는 다음과 같다.

                                                         [웹 어플리케이션의 구조]

웹 어플리케이션의 처리 순서는

(1) 웹 브라우저가 웹 서버에 어떠한 페이지를 요청하게 되면
(2) 해당 웹 서버는 웹 브라우저의 요청을 받아서 요청된 페이지의 로직 및 데이터베이스와의 연동을 위해 어플리케이션 서버에 이들의 처리를 요청한다.
(3) 이때 웹 어플리케이션 서버는 데이터베이스와의 연동이 필요하면 데이터베이스와 데이터의 처리를 수행
(4) 로직 및 데이터베이스 작업의 처리 결과를 웹 서버에 돌려보낸다.
(5) 그러면, 웹서버는 결과를 다시 웹 브라우저에 응답하게 된다.

여기서 우리는 웹 어플리케이션이 웹 브라우저, 웹 서버, 웹 어플리케이션 서버, 데이터베이스로 구성되었다는 것을 알 수 있다. 이들의 각각의 기능을 다시 한 번 표로 정리해 보았다.

 웹 어플리케이션의 구성요소  기능
웹 브라우저 웹에서 클라이언트이며, 사용자의 작업 창이라 할 수 있다.
웹 서버  웹 브라이저의 요청을 받아들이는 곳으로 작업의 결과를 웹 브라이저에게 응담을 하는 곳이다. 요청된 페이지의 로직 및 데이터베이스와의 연동을 위해 어플리케이션 서버에 이들의 처리를 요청하는 작업을 수행
웹 어플리케이션 서버(WAS) 요청된 페이지의 로직 및 데이터베이스와의 연동을 처리하는 부분이다.
데이터베이스   데이터의 저장소로 웹에서 발생한 데이터는 모두 이곳에 저장된다. 게시판의 글, 회원의 정보 등

 대표적인 웹 서버의 종류로는 아파치(Apache)와 IIS(Internet Information Server)를 들 수 있는데 IIS는 Window 플랫폼에서만 사용할 수 있는 단점이 있다. 대표적인 웹 어플리케이션 서버(일명 WAS:Web Application Server)로는 아파치 그룹으로 알려진 Apache S/W Foundation의 자카르타 프로젝트에서 발표한 Tomcat(톰캣), BEA사의 웹로직(WebLogic), IBM의 웹스피어(WebSphere), Sun사의 iPlanet, Oracle 9iAS, 국산으로는 티멕스의 제우스(jeus)등이 있다.

 [참고] 웹 어플리케이션 서버(WAS)

웹 어플리케이션 서버(WAS)는 Web 서버의 기능들을 구조적으로 분리하여 처리하고자 하는 목적으로 제시 된 것으로, 크게 Web서버의 기능과 컨테이너의 기능으로 구성되어 있다.

1-4. CGI방식 vs 웹 어플리케이션 서버 방식

(1) CGI 방식

 CGI방식과 웹 어플리케이션 서버 방식의 기본적인 구조는 같다. 다만 차이점은 웹 서버가 웹 어플리케이션 프로그램을 어떤 방식으로 사용하는가의 차이이다. 예를 들어 5명의 사용자가 Abc라는 페이지를 요청했고 거기에 ABC라는 프로그램이 사용되었다고 하자. 이러한 요청 처리에 대해 CGI방식과 웹 어플리케이션 서버 방식이 각각 어떤 식으로 처리하는지 알아보자.

                                                       [클라이언트/서버 방식의구조]

이러한 프로세스 기반의 CGI프로그램은 많은 사용자가 몰리는 웹 사이트에 요청되는 수많은 요청에 대해서 하나의 요청마다 새로운 프로세스가 생성이 되고, 처리를 하고, 종료를 하는 식의 운영방식을 갖는데 이것은 시스템에 많은 부하를 가져오기 때문에 중대한 단점이 된다.

(2) 웹 어플리케이션 서버(WAS) 방식

 어플리케이션 서버 방식은 웹 서버가 직접 어플리케이션 프로그램을 처리하는 것이 아니라, 웹 어플리케이션 서버에게 처리를 넘겨주고 어플리케이션 서버가 어플리케이션 프로그램을 처리한다. 어플리케이션 서버 방식은 여러 명의 사용자가 동일한 페이지를 요청하여 같은 어플리케이션 프로그램을 처리할 때 오진 한 개의 프로세스만을 할당하고 사용자의 요청을 쓰레드(Thread)방식으로 처리한다.

                                                   [웹 어플리케이션 서버 방식의 구조]

여러 개의 요청에 오직 1개의 프로세스만을 할당하고 사용자의 요청을 쓰레드 방식으로 처리한다는 것은 메모리를 절약할 수 있기 때문에 CGI방식에 비해 동시에 더 많은 사용자에게 서비스를 할 수 있다. 이것은 전체적인 성능의 향상을 가져와서 보다 안정적인 웹 서비스를 제공하는 것이 가능하다.

실행 코드 방식 스크립트 방식
코드 형식 컴파일 된 실행 프로그램 컴파일 되지 않은 스크립트 코드
실행 방식 컴파일 된 기계어 코드 직접 실행 스크립트 코드를 해석한 뒤 실행
코드 변경 소스 코드를 다시 컴파일 해야함 스크립트 코드만 고치면 됨
종       류 대부분 CGI 프로그램 JSP, ASP, PHP
구       현 웹브라우저 요청 전송
-> 웹 서버 요청 받음
-> 프로그램 실행
웹브라우저 요청 전송
-> 웹 서버 요청 받음
-> 스크립트 코드 번역
-> 번역된 코드 실행
# 번역이 최초에 한번만 실행 되기 때문에 속도가 빠름.

출저 : http://blog.naver.com/yswon72

 

'JSP' 카테고리의 다른 글

3. JSP의 동작 구조  (0) 2010.12.26
2. JSP의 개요  (2) 2010.12.26