JSP
JSP는 자바 서버 페이지(JavaServer Pages)의 약자로서, HTML 페이지 안에 자바(Java) 코드를 직접 삽입하여 웹서버에서 동적으로 웹 페이지를 생성하여 웹브라우저가 표현할 수 있도록 전달해 주는 스크립트 프로그래밍 언어이다. 미국 썬 마이크로시스템즈사가 처음 개발했고, 2010년 오라클(Oracle)사에 인수되었다. HTML 문서 안에 <% ... %> 기호를 쓰고 그 안에 자바 코드를 삽입하는 방식으로 사용한다. 서블릿(Servlet)은 자바 소스 코드 안에 HTML을 삽입하지만, JSP는 반대로 HTML 문서 안에 자바 코드를 삽입한다. 한편 자바스크립트(JavaScript)는 사용자의 개인 PC에 설치된 웹브라우저에서 실행되지만, JSP는 웹서버에서 실행되어 그 결과값만 사용자의 웹브라우저에 전달된다는 차이점이 있다.
목차
개요
JSP는 서블릿을 이용하여 웹페이지를 직접적으로 제어하여 모양이나 내용을 변환하는 기술이다. 자바를 개발한 썬마이크로시스템즈에서는 이 기술은 서블릿 응용 프로그램 인터페이스(API)라고 표현하며 JSP는 마이크로소프트의 ASP 기술과 유사하다. ASP는 페이지가 사용자에게 전송되기 전에 스크립트 인터프리터에 의해 해석될 스크립트를 포함하지만 JSP는 웹서버에 의해서 실행되는 자바프로그램을 호출하고 자바 서블릿과 연결된 HTML페이지는 .JSP라는 파일 이름이 붙는다. 서블릿 기술의 확장으로 사용자가 입력한 코드에 따라 페이지를 생성한다.
탄생배경
JSP가 탄생하게 된 계기는 마이크로소프트사에서 출시한 웹 개발스크립트 엔진인 ASP(Active Server Page)에 대응하기 위해 1999년 썬마이크로시스템즈(Sun Microsystems)에서 발표한 자바 서버 페이지(Java Server Page)라는 스크립트 엔진이다. WAS(Web Application Server)는 클라이언트의 웹 브라우저로부터 JSP에 대한 요청이 오면 JSP코드를 서블릿코드로 변환 후 컴파일하여 실행하게 된다.[1]
JSP 동작 과정
JSP 코드는 백그라운드에서 맞는 서블릿 코드로 변환된다.
- JSP 실행 시 WAS에서 내부의 JSP 파일을 Java Servlet(.java)으로 변환한다.
- WAS는 변환한 Servlet을 실행시켜 사용자가 원하는 기능을 제공한다.
- 명령 수행 후 생성된 데이터는 웹페이지와 함께 클라이언트에게 보인다.[2]
특징
성능과 확장성
JSP는 HTML 태그로 구현되는 부분과 JSP 태그로 구현되는 부분으로 나누어지는데 JSP 태그에 포함되는 부분은 백그라운드에서 맞는 서블릿 소스로 생성되어 처리된다. JSP태그로 생성되는 서블릿 클래스는 처음 요청 시에는 객체가 생성되며 두 번째 요청 시에는 처음 생성된 객체에서 멀티스레드로 동작하게 된다. 하나의 JSP 파일에 대해서 여러 사용자의 다중 요청에 대해 멀티스레드로 동작할 수 있다. 여러 스레드끼리 쉽게 리소스를 공유할 수 있어 성능이 향상된다. 기존 자바의 장점을 가져오면서 웹 서버에 독립적으로 운용할 수 있다.
Java Beans 컴포넌트의 활용
JSP는 자바 언어를 활용해서 동적인 콘텐츠를 구현할 수 있는데 직접적으로 태그안에 자바의 소스 코드를 구현해도 되지만 자바 언어를 알지 못해도 HTML 수준의 기본 태그를 활용하여 서버 내부에 있는 자바 객체를 활용 할 수도 있다. 이것은 자바 언어로 작성된 객체로 모듈성과 재사용성에 맞추어져 개발되었다. Java Beans의 개발은 자바에서 클래스를 만들듯이 데이터와 동작원리에 대해 변수와 메서드로 나누고 약간의 규약을 첨부해서 구현한다. 컴포넌트의 내부구조를 모르고도 Java Beans 컴포넌트를 활용하여 원하는 기능을 구현할 수 있다.
프로그램구현의 용이성
자바 서버 페이지의 기능을 충분히 활용하면 프로그램을 구현하는 세션과 사용자에게 정보를 출력하는 세션을 분리하여 처리할 수 있다. 프로그래밍을 담당한 Java Beans을 이용하여 코드를 어떠하게 작성하느냐에 따라 다양한 효과를 얻을 수 있다. 이 외에도 웹 애플리케이션 개발과 유지 보수를 각각 따로 처리할 수 있고 자바에서 활용되는 여러 클래스 또한 JSP에서 사용할 수 있다.
장점
공공기관에서 쓰일 만큼 보안성이 뛰어나고 다양한 기능을 가지고 있다. 기존 자바의 이식성을 가지고 있어 윈도우에서만 운용이 가능한 ASP와는 달리 유닉스, 리눅스, 윈도우 뿐만 아니라 다른 플랫폼에서도 폭넓게 운용이 가능하다. 또한 다양한 레퍼런스를 가지고 있어 대규모 시스템과 서버에 적합한 자바의 지원를 받을 수 있다.[3]
단점
가격이 비싸고 개발기간이 오래 걸린다.
각주
- ↑ 이강원 , 〈JSP〉, 《지형 공간정보체계 용어사전》,구미서관 , 2016-01-03
- ↑ heejeong Kwon , 〈<Web> JSP란(Java Server Pages)〉, 《github》, 2018-11-03
- ↑ 별똥별로맨스 , 〈서버 개발언어 JSP PHP ASP의 비교〉 , 《티스토리 블로그》 , 2016-05-03
참고자료
- 한국정보통신기술협회 - http://word.tta.or.kr/main.do
- KimWhale , 〈(웹언어) JSP소개 및 장단점〉, 《티스토리블로그》 , 2013
- 이강원 , 〈JSP〉, 《지형 공간정보체계 용어사전》,구미서관 , 2016-01-03
- Gren , 〈JSP - 탄생 배경 및 Life cycle〉, 《네이버 블로그》, 2018-06-26
- RoaZium , 〈<정보>ASP, PHP, JSP 장단점〉 , 《티스토리 블로그》 , 2018-06-26
- heejeong Kwon , 〈<Web> JSP란(Java Server Pages)〉, 《github》, 2018-11-03
같이 보기