본문 바로가기
  • 인공지능
  • 블록체인
  • 정보보안
코딩 알로하 :: one/JSP&Servlet

JSP 배워보기

by nathan03 2019. 4. 15.
반응형

jsp 언어에 대한 이미지 검색결과


※ JSP란 무엇인가 ? 

JSP는 "Java Server Pages"의 각 첫자로 만들어진 용어이며 사전적인 의미로 해석하면 "자바로 작성한 서버 페이지"로 해석 될수 있다. 여기에서 "자바"는 우리가 알고 있는 언어 자바를 뜻하므로 JSP의 기본문법은 자바를 근거로 한다는 것을 알수 있다. 그리고 "서버페이지"라는 것에 약간의 설명을 붙이면 "서버에서 실행되는 페이지"로 바꿀 수 있다. 웹에서 보여지는 페이지(문서)의 가장 일반적인 형태는 HTML 페이지이다. 이 HTML 페이지는 클라이언트(웹에서의 클라이언트는 사용자 컴퓨터를 통해 현재 웹 페이지를 방문하고 있는 각각의 브라우저로 볼수 있다.) 에서 해석되고 실행된다. 만일 HTML 페이지에서 서버에 저장된 데이터를 제어(검색 또는 저장과 같은)하려면 HTML 페이지 내에서는 방법이 없다. HTML 페이지에서 서버의 데이터를 접근할 수 없기 때문이다. HTML페이지에서 서버에 저장된 데이터를 제어하기 위해서는 그 작업을 실행할 수 있는 다른 페이지에게 원하는 작업을 요청(request)해야 하고 요청을 받은 페이지는 서버의 데이터를 접근 하여 요청에 합당한 처리를 수행한 다음 그 결과를 HTML 페이지에게 넘겨주어야(response)한다. HTML 페이지(또는 또 다른 페이지)로부터 요청을 받아서 서버의 데이터를 처리한 다음 그 결과를 요청을 한 페이지에게 넘겨주는 역할을 하는 페이지는 당연히 서버에서 실행되는 페이지이어야 하는데 JSP 페이지는 바로 이러한 페이지를 의미한다. JSP를 발표한 선마이크로시스템사에서 제공하는 JSP문서에 의하면 JSP를 "답변(respnse)을 만들기 위해 요청(request)을 어떻게 처리할 것인지를 기술하는 텍스트기반의 문서"라고 정의하였다. 

이 전에는 이 작업을 CGI 프로그램을 통해서 해결하였었다. 그러나 CGI(쉘이나 Perl로 구현됨)는 HTML 페이지로부터의 요청을 파일에 작성하고 작업을 위해 새로운 프로세스를 생성해야하는 등읟 단점을 가지고 있었으며 이를 극복하기 위한 방법으로 등장한 것들이 ASP나 JSP같은 서버 페이지들이다. 자바를 만든 회사인 선마이크로시스템에서는 CGI를 대체하기 위한 기술로 자바 서블릿이라는 것을 내놓았다. 자바 서블릿은 이제 까지의 CGI단점을 보완하고 자바의 장점을 충분히 살릴수 있었지만 자바 코드 안에 HTML을 포함시킨 형식이기 때문에 자바 코드에 HTML의 아주 작은 변경에도 자바 코드를 다시 컴파일한 다음 이전의 서블릿을 내리고(unload)새로운 서블릿을 다시 올려야(reload)하는 번거로움을 가지고 있었다. 

그래서 선마이크로시스템에서 고안해낸 것이 JSP이다. JSP는 자바스크립트, VB스크립트, ASP등과 마찬가지로 HTML 페이지에 자바 코드를 포함시키는 형식이다. 이 점이 자바 서블릿과의 가장 큰 차이점이며 자바 서블릿이 가지고 있는 장점을 거의 모두 받아들였다. 더군다나 코딩구문은 스크립트 형식으로 간단해서 자바가 어렵게 느껴졌던 사람들이 쉽게 익힐수 있다. 또한 선마이크로시스템사에서 제공하는 JSP 문서에서는 JSP의 가장 큰 장점을 "플랫폼의 독립성" 이라고 설명하고 있다. 한번 작성한 JSP페이지는 아무런 수정 없이 어떠한 웹 페이지(HTML, XML....)이건, 어떠한 웹 서버이건, 그리고 어떠한 서버 컴포넌트 하에서도 실행될 수 있다고 했는데, 그러나 이것은 한글문제를 고려하지 않은 것으로 보인다. 한글처리에 대한 추가 적인 작업은 웹서버종류, JDBC 종류에 따라서 약간의 수정을 필요로 한다. 

아직까지는 JSP를 사용하여 웹 사이트를 구축하는 사람들의 대부분이 자바 또는 자바 서블릿 경험자들이다. 따라서 이들은 순수한 JSP 구성만으로 원하는 작업을 수행하도록 코딩하지 않는다. 이미 자바(또는 자바 서블릿)의 무한하고도 강력한 기능에 대해서 터득하고 있는 사람들이기 때문에 자바 서블릿과 순수한 JSP에 작업을 분배하여 처리한다. 사실 순수한 JSP라는 것은 의미가 없을지도 모른다. JSP가 자바머신(JVM)에서 컴파일된 결과는 결국 자바 서블릿이기 때문이다. 그리고 순수한 JSP 코딩만으로는 웹상에서의 모든 작업을 처리하기에는 한계가 있다고 하는 사람도 있고 특정 작업을 수행하는 것을 자바 서블릿으로 구현해 놓고 필요할 때마다 JSP 페이지에서 불러오는 것이 성능면에서 훨씬 좋다고 하기도 한다. 그러나 이런식으로 JSP를 접근하면 자바를 모르는 상태에서 JSP를 사용하려는 사람들에게는 커다란 부담이 될 수 밖에 없다. 

인터넷을 사용하다보면 웹페이지는 크게 2가지 종류로 나뉘어진다. 하나는 정적 웹페이지이고 다른 하나는 동적 웹페이지이다. 정적 웹페이지는 마치 컴퓨터에 저장된 텍스트 파일을 메모장으로 열어보듯이 저장된 그대로 보는 것이며, 동적 웹페이지는 그런 내용들이 다른 변수들에 의해서 변경되어 보여진다. 

1) 정적 웹페이지
: 사용자가 URL을 통해 서버에 웹페이지를 요청 했을 때, 서버 안에 이미 만들어져 있는 HTML 문서를 사용자에게 보내주는 경우 이를 정적 웹페지라고 한다. 웹페이지의 내용이 요청하는 사용자가 달라질 필요가 없는 정적인 정보인 경우에만 사용되며, 모든 사용자는 같은 결과의 웹페이지를 서버에 요청하고 응답 받는다.  

2) 동적 웹페이지 
: 사용자(혹은 클라이언트)가 URL을 통해 서버에 웹페이지를 요청 했을 때, 서버는 사용자에 맞는 HTML 문서를 생성하여 사용자에게 응답하게 된다. 

사용자 입장에서는 서버에서 처리된 웹 페이지를 전달받기 때문에 정적 웹페이지와 동적 웹페이지를 구분지을 필요가 없다. 어차피 전달 받는 웹 페이지는 HTML로 이루어진 웹페이지기 때문이다. (JavaScript를 이용하여 동적으로 변하긴 하지만, 이는 Client Side Script 에 해당하며 동적이라기 보다 정적 페이지로 분류 된다. )



반응형

댓글