[ java ] in KIDS 글 쓴 이(By): hell (나누구야) 날 짜 (Date): 1997년10월26일(일) 08시48분39초 ROK 제 목(Title): 자바 서블릿 (1) ------------------------------------------------------------------------------ 뉴스제공시각 : 09/01 00:00 출처 : 마이크로 제목 : 테크닉/ 자바 가문의 새식구! 자바 서블릿 (1) ----------------------------------------------------------------------------- 테크닉 자바 가문의 새식구! 자바 서블릿 얼마전 자바 서블릿이 출생신고를 마쳤다. 서버에 독립적일뿐 아니라 CGI의 모든 기능을 지원하며, 쓰레드 기법으로 서버 의 막힌 체증을 확 뚫어 준다고 한다. 확장성, 안정성, 보안성 이 보장되는 자바의 특징을 모조리 갖고 있는 서블릿을 이용 해 웹페이지에 'HelloWorld'를 찍어보고, 게시판에 등록도 해 보자. 김재봉(유한씨엔티) 필자가 처음 웹을 접했을 당시만 해도 텍스트 문서에 글과 그림을 더하여 하이퍼텍스트를 이용해서 홈페이지에 올리는 게 일반적인 방법이었지만, 나날이 늘어나는 정보로 인해 목 석같은 웹페이지가 이 모든 요구를 소화해내는 것이 어려워 졌다. 그래서 등장한 것이 CGI(Common Gateway Interface) 와 자바 애플릿 그리고 마이크로소프트에서 내세우는 액티브 X이다. 그러나 자바 애플릿이나 액티브X는 클라이언트 프로 그램으로 사용자 인터페이스를 위한 측면이 강하기 때문에, 대용량의 정보를 저장하고 이를 제공하는 CGI가 새로운 웹 서비스의 전기를 마련했다. 하지만 CGI 개념도 웹서버에 접속하는 클라이언트 수만큼 CGI 프로그램을 실행해야 하는 단점을 안고 있고, 게다가 웹 서버가 각각의 프로세스를 생성하고 실행이 종료된 후에 프 로세스를 제거하는 일까지 도맡게 되므로 접속하는 클라이언 트수가 증가할수록 서버에 부과되는 부하는 그만큼 증가하고, 그에 따라 퍼포먼스도 떨어진다. CGI의 대안, 서블릿 썬은 이러한 CGI의 문제점을 완벽하게 해결하는 새로운 대 안으로 자바 서블릿(Java Servlet)을 발표했다. 간단히 서블 릿의 개념을 정리해 보면 자바로 쓰여진 프로토콜이자 플랫 폼으로 요구-응답(request-respose) 패러다임을 지원하는 범 용 프레임웍은 물론 HTML로 쓰여진 웹애플리케이션에 뛰어 난 보안 기능을 제공한다. <그림 1>에서 보면 서블릿이 어떻게 웹서버와 연동하는지 알 수 있다. 클라이언트에서 서버로 서블릿이 호출되면 서버 는 요청된 서블릿이 메모리에 적재돼 있는지를 검사하고, 만 약 적재돼 있지 않으면 메모리 내로 서블릿을 로딩한다. 이미 적재돼 있다 하더라고 서블릿이 변경되었으면 다시 로딩한다. 이런 식으로 적재된 서블릿은 웹서버가 실행을 중지할 때까 지 메모리 내에 남게 된다. 실행중인 서블릿을 다른 클라이언트에서 요청하면 서버는 서 블릿의 쓰레드를 생성해 새로운 요청을 받아들인다. 쓰레드가 프로세스보다 자원을 적게 사용하는 것은 이미 알려진 사실 로 쓰레드 복제 방식은 기존 CGI가 갖고 있는 약점을 말끔 히 해결해 주었다. <그림 1> 서블릿의 실행 구조 서블릿은 웹서버 내에서 실행되기 때문에 사용자 인터페이스 를 갖는 애플릿과는 달리 그것이 없다. 그리고 서블릿은 동적 인 확장성을 지원하는 컴포넌트 형태의 클래스를 생성하므로 검색 엔진이나 웹브라우저의 플러그인으로 사용할 수 있다. 또한 자바 고유의 장점을 그대로 계승하고 있어 플랫폼 독립 적이고 동적으로 메모리 내에 적재되며 확장성이 뛰어나 서 버에서 막강한 능력을 발휘한다. HTML 문서를 작성하는 데 있어서 서블릿이 갖는 장점을 요 약하면 다음과 같다. ① CGI 프로그램보다 빠르고 명확하다. ② 표준 인터페이스인 서블릿 API를 사용한다. ③ 자바가 가진 장점을 포함한다. ④ GUI 기반의 관리도구를 이용해 쉽게 설치할 수 있다. ⑤ 로컬 디스크나 원격 디스크 모두에서 실행이 가능하다. ⑥ 두 개 이상의 서블릿을 연결할 수 있으며, 하나의 서블릿 이 여러 개의 서블릿을 호출할 수 있다. ⑦ SSI(Server Side Include)를 이용해 HTML을 동적으로 생성할 수 있다. ⑧ 보안 특성이 뛰어나다. 서블릿의 이러한 장점중 가장 중요한 것은 '프로토콜이 독립 적'이라는 것이다. 따라서 기존의 웹서비스에서 사용하던 HTTP나 HTTPS를 그대로 사용할 수 있고, 따라서 어떠한 프로트콜을 호출하든지 서버는 서블릿을 실행할 수 있다. 즉 이기종의 서버에서도 서블릿을 실행할 수 있다. |