지난시간에는 JSTL에 대해서 알아보았다. 사실 JSP를 먼저 개념정리 한 이후 JSTL에 대해서 배우는것이 순서상으로는 올바르겠지만, 현재 배우고 있는 내용을 복습한다는 느낌으로 한번 알아보려고 한다.
JSP란 JavaServer Pages의 약자를 뜻하며, HTML 코드에 JAVA 코드를 사용하여 동적 웹페이지(Dynamic Web Page)를 생성하는 웹 어플리케이션 도구(라이브러리)이다.
JSP가 실행되면 자바 "Servlet"으로 변환이 되며, 웹 어플리케이션 서버에서 동작되게 되며, 생성된 데이터들을 웹페이지와 클라이언트를 통해 응답을 한다.
웹
이란, 인터넷 기반의 정보기술을 뜻하며, 우리가 흔히 접하는 "WWW"인 World Wide Web의 줄임말이다. 단어의 뜻처럼 전세계에 걸쳐 거대한 네트워크 망을 통해서 정보들을 공유하며, 정보는 양방향성의 특징을 가진다.
웹 어플리케이션은 웹에서 실행되는 응용프로그램을 뜻하며, 인터넷을 통한 여러가지의 서비스를 일컫는다. 사용자는 필요한 데이터를 Request(요청)하고 서버에서는 사용자의 Request를 수행하며, 요청한 데이터를 Response(응답)하게 되는 형식이다.
- 웹 브라우저 (Web Browser)
클라이언트에서 요청을 하고 전달받은 페이지를 볼수있는 환경
- 웹 서버 (Web Server)
클라이언트로 부터 요청받아 서버에 저장된 리소스를 클라이언트 에게 전달한다. 주로 정적컨텐츠를 담당한다.
- 웹 어플리케이션 서버 (Web Application Server)
줄여서 was 라고도 부르며 서버단에서 필요한 기능을 수행하고 그결과를 웹서버에게 전달한다.
- 데이터베이스 (DB)
서비스에 필요한 데이터를 보관, 갱신 등 관리를 한다.
Java Servlet이란, 웹페이지를 동적으로 생성하기 위해 사용하는 서버측의 프로그램을 말한다. Servlet은 Java언어를 기반으로 만들어지며, 웹 어플리케이션 서버(Web Application Server) 위에서 컴파일 되고 동작한다.
JSP와 Servlet의 차이점을 비교한다면 아래와 같다.
Servlet | JSP |
---|---|
- 자바 코드로 구현하고, 컴파일하고, 배포해야한다. | - 키워드가 태그화 되어 Servlet에 비해서 배우기 쉽다. |
- HTML 태그로 문자열("")스크림으로 처리해야 한다. | - 자바코드를<% %>태그 안에 처리해주어야 한다. |
- 코드가 수정되면 다시 컴파일하고 배포해야 한다. | - HTML처럼 태그를 사용하여 자바코드도 사용이 가능하다. |
위의 내용만 참고하더라도 Servlet이나 JSP 둘다 사용방법의 차이가 있을뿐, 비슷한 역할을 수행한다는 점을 알 수 있다.
초기의 자바 웹개발은 Servlet만을 이용한 개발이었지만 이후 JSP기술이 발표되면서 JSP형태의 개발이 점차 발전하게 되었고, 지금의 Servlet + JSP 형태로 각각의 역할을 나누어 개발을 하는 방식이 이루어지고 있다.
현재 우리가 실습에서 사용하고 있는 방식에서 JSP는 JSP의 기술적 장점을 극대시킬 수 있도록 웹어플리케이션 구조에서 사용자에게 결과를 보여주는 View의 역할을 담당하고, Servlet은 Servlet의 기술적 장점을 최대한 활용할 수 있도록 사용자의 request를 받아 분석하고, 비즈니스층과 통신하여 처리한 결과를 다시 사용자에게 응답하는 Controller의 역할을 담당한다.
참고글 출처