[Boostcourse] 풀스택/웹 프로그래밍(풀스택)

JSP { 개요, 간단 실습, 등장 배경 }

Ben의 프로그램 2023. 7. 15. 16:35
728x90
개요(수업 목표)
마이크로소프트의 ASP (Active Server Pages) 와 같은 스크립트 형태의 개발 방법이 인기를 얻게 되면서, 자바 진영에서도 대항하기 위해서 JSP 를 발표하게 됩니다. 스크립트 언어인 JSP 에 대해서 알아보겠습니다.

 

JSP (JavaServer Pages) 란?
JSP 에 대해서 알아보기 위해 1~10 까지의 합을 웹 페이지 위에 출력해주는 jsp 파일을 하나 만들어보겠습니다. 
JSP 의 위치는 WebContent(webapp) 입니다. HTML 과 CSS, javascript 모두 이 위치에서 만들어주면 됩니다. 이 위치에 원하는 디렉터리를 만들어서 파일을 넣어줄 수도 있고 그냥 바로 파일을 생성할 수도 있습니다. 
JSP 파일을 하나 만들었더니 위와 같은 화면이 보이게 됩니다. HTML 파일의 구조와 같은 것을 볼 수 있는데, 제일 위 부분만 조금 다르네요. <% 꺽쇠 퍼센트 이런 기호들이 보이죠. jsp 는 약속된 몇 가지 기호들을 가지고 있습니다. 이 기호가 뭐냐에 따라서 서블릿으로 바뀔 때 규칙들을 정하게 됩니다. jsp 는 스스로 동작하는 것이 아니라 모든 Jsp 는 서블릿으로 바뀌어서 동작하게 됩니다. 그러니까 jsp 에서 사용하는 기호들은 서블릿으로 바뀔 때 규칙들을 알려주기 위한 부분들이라고 이해할 수 있습니다. <% 같은 기호들을 지시자라고 합니다. <%@ page 는 페이지 지시자입니다. 페이지 지시자의 꺽쇠가 닫히는 부분까지를 페이지 지시문이라고 이해할 수 있습니다. 안의 내용을 살펴보겠습니다. 사용하는 언어가 java 임을 알려주는 부분이 있네요. jsp 안에서 자바 언어로 작성된 코드가 나올 것을 알려줍니다. 이론적으로 jsp는 내부적으로 java 외의 다른 언어들을 사용할 수 있다고 합니다. 그런데 Jsp 에서 사용되는 언어는 사실상 자바 뿐입니다. contentType 이 있는데요. 서블릿 작성할 때 응답 결과에 포함되는 내용들이 response 객체였구요. response 객체에 응답 결과를 포함할 때 항상 제일 먼저 했던 것이 printWriter 객체를 가져오는 것과 response 한테 setContentType 을 설정해주었습니다. 우리가 응답을 보낼 건데, contentType 을 알려주는 역할을 합니다. jsp 파일에서 사용되는 setContentType 은 response 객체에서 사용했던 setContentType 과 완전히 같은 것입니다. 그 다음에는 pageEncoding 이 나오는데요. 이 페이지 자체가 UTF-8 로 되어 있음을 알려주고 있습니다. 이런 인코딩 부분이 맞지 않으면 한글이 깨지는 등의 문제가 발생할 수 있습니다. 이런 지시자들을 듣는 것은 jsp 를 실행하는 WAS 라고 이해하시면 됩니다.

지시문 다음에는 HTML 코드가 이어지게 됩니다. jsp 를 사용하는 이유를 여기서 볼 수 있는데요. HTML 만 적어줄 것이라면 그냥 순수하게 HTML 파일을 적어주면 됩니다. 하지만 HTML 과 더불어서 프로그램을 적어주기 위해서 사용하는 것이 jsp 라고 이해할 수 있습니다. <% 꺽쇠 퍼센트로 둘러쌓인 부분에 Java 를 넣어줄 수 있습니다. 이렇게 생긴것을 우리는 스크립트리 라고 부릅니다. Java 코드를 입력할 수 있는 부분이라고 이해할 수 있습니다. 서블릿에서 자바 코드를 실행시킨다고 해도 response 에 넣어주지 않으면 응답 결과를 클라이언트의 웹에서 사용할 수 없는데요. 브라우저의 응답 결과로 보여주기 위해서는 <%= 꺽쇠 퍼센트 이퀄 이 기호를 사용해야 합니다. 이런 기호를 표현식이라고 합니다. 코드를 보겠습니다.
위와 같이 코드를 작성하고 실행하면 어떤 일이 벌어질까요? 실제로 위의 jsp 코드를 실행시키면 WAS 가 스크립트리의 부분들을 자바 코드로 바꾸어 줍니다. 즉 다음과 같이 코드가 바뀌게 되는 것을 의미합니다. 
표현식은 out.print( ); 로 response 객체에 정보를 담고 있었던 것이죠. jsp 를 상대할 때 개발자가 생각해야 하는 것은 jsp 가 서블릿으로 바뀔 때 어떻게 바뀔 것인가를 이해하는 것이라고 할 수 있습니다. 
실제로 jsp 를 동작시켜 보았습니다. 1 부터 10까지의 합은 55 라는 것이 출력이 되고 있습니다. 

 

JSP (JavaServer Pages) 등장 배경
마이크로소프트에서 ASP (Active Server Page) 라는 쉽게 웹을 개발할 수 있는 스크립트 엔진을 1998년에 발표했습니다. 1997년에 발표되었던 서블릿은 HTML 이 out.print 로 서블릿 안에 문자열로 들어가야 하는 등 ASP에 비하여 상대적으로 개발방식이 불편했습니다. 1999년 썬마이크로시스템즈에서 ASP 에 대응하기 위한 제품으로 JSP 를 1999년에 발표하게 됩니다. JSP 는 내부적으로는 서블릿 기술을 활용합니다. JSP 의 제일 핵심적인 내용은 HTML 과 비슷하게 생겼지만 결국에는 서블릿으로 바뀌어 작동한다는 것을 잊지 맙시다. 

 

 

 

 

 

 

 

출처 : boostcourse 웹 프로그래밍(풀스택) 
https://www.boostcourse.org/web316/lecture/20655?isDesc=false