본문 바로가기
IT || 개발공부

[Servlet] Servlet 이해하기(2) (서블릿과 자바의 관계)

by saesong 2023. 1. 31.

4-2. Servlet 이해하기(2)

 

서블릿은 HTML과 이미지 등이 자바 코드 속에 어우러져 있기 때문에 디자이너는 디자인 변경의 문제가 발생했을 프로그램을 작성한 자바 프로그래머의 도움을 필요로 한다. 마찬가지로 자바 코드 안에 디자인적 요소가 함께 있기 때문에 기능적인 변화에 대한 필요가 있을 때도 디자이너가 함께 있어야 할 필요가 있다. 결국 서블릿은 동적인 부분과 정적인 부분을 분리하기에 어려움이 따르게 된다.

하지만 서블릿의 특성과 JSP의 특성을 살려서 JSP만으로 된 웹 사이트보다 서블릿과 JSP가 상호 보완적인 관계로, 즉 JSP는 화면 출력 부분을 맡고, 서블릿은 처리 부분을 맡아서 처리하는 엡 사이트가 설계적인 측면에서 봤을 때 훨씬 효율적인 구성을 할 수 있다.

■ 서블릿과 자바의 관계
서블릿은 하나의 파일로 표시가 되는데, Java라는 확장자를 가진다. 즉, 하나의 자바 프로그램이라는 것이다. 이렇듯 서블릿은 그 형태상 자바 프로그램처럼 구성이 되는데, 서블릿을 사용하기 위해서는 자바 언어에 대해 사전 지식이 요구된다는 의미이기도 하다. 물론, JSP 역시 자바를 토대로 만들어졌기 때문에 자바에 대한 지식이 약간은 필요할 수 있으나 JSP는 스크립트 언어의 형태를 가지고 있기 때문에 프로그램 작성이 쉽다.

■ JSP와 서블릿 사이의 상호 보완적인 관계
JSP가 무엇인지, 서블릿이 무엇인지 아직 그 차이를 알기엔 무리가 있다. 다만 JSP는 HTML에 포함되어 프로그램이 만들어지는 것으로 생각을 하고 서블릿은 자바 프로그램의 외형에 웹 프로그래밍 요소가 포함된 것으로 생각하면 된다. 그런 경우로 비추어 볼 때 HTML 태그에 포함된 JSP는 브라우저에 표현이 될 부분에 보다 유용하고, 서블릿은 브라우저에 표시될 필요가 없지만, 내부적으로 처리되어야 할 부분에 보다 유용하게 사용할 수 있다고 볼 수 있다.



이제, 앞서 알아본 JSP와 Servlet에 대해 핵심정리를 해보도록 하겠다.

사이트의 규모가 커지면서 고정되어 있는 정적인 페이지만으로 서비스가 힘들어졌다. 그래서 보다 개인화된 정보를 제공하기 위한 동적인 웹 콘텐츠를 위한 기술들이 발전하게 되었다.

그 중 가장 전통적인 방법으로 CGI라는 기술이 탄생하게 되었지만 프로세스 기반의 CGI 기술은 시스템에 많은 부하를 가져오는 단점이 있기 때문에 전통적인 CGI 방식의 단점을 해소하기 위한 확장 CGI 방식의 기술들이 탄생하게 되었다. 확장 CGI 방식 중 ASP, PHP Servlet/JSP 등이 있는데 이들은 기존의 CGI 프로그램의 단점을 해소한 기술들이다.

서블릿과 JSP는 확장 CGI 기술 중 Sun사에서 출시한 기술로 자바를 기반으로 하고 있어 자바가 가지는 특성과 장점을 수용하여 플랫폼 독립, 객체 지향적, 멀티 스레딩 등의 장점을 가지고 있다.

서블릿은 완전한 자바 프로그램으로 프로그램 코드 안에 HTML 태그가 삽입된 형태이다. 그리고 컴파일 과정을 거친 후에 실행 가능한 상태가 된다. 웹 페이지에 표시될 내용 중에 정적으로 생성되어야 할 HTML 부분들과 동적으로 생성되어야 할 부분들이 한 프로그램 안에 섞여있기 때문에 디자인과 프로그램 분리적인 작업 진행에 어려움이 있고 프로그램 개발에도 자바에 대한 전문적인 지식이 요구되므로 개발이 어려운 점이 있다.

JSP는 ASP, PHP 등 스크립트 언어 형식으로 정적인 HTML 부분에 동적인 JSP 명령어가 삽입된 형태로 서블릿보다 쉽게 동적인 웹 페이지 개발을 할 수 있다. 또한 JavaBeans 컴포넌트 지원과 사용자 정의 태그로 정적인 부분과 동적인 부분에 대한 분리를 확실히 할 수 있는 큰 장점이 있다. JSP는 서블릿으로 자동 변환된 후 컴파일 과정을 거쳐 실행 가능한 상태로 된다.

서블릿과 JSP는 상호 연계되어 JSP에서 정적인 부분을 담당하고 서블릿에서 보다 동적인 처리를 위한 부분으로 사용되어 보다 효율적인 웹 사이트를 구성 가능하다.

댓글