JSP란?
JSP(Java Service Pages)는 동적인 웹 페이지를 개발하기 위한 웹 프로그래밍 기술이다.
자바를 서버 개발 언어로 자리 잡게 한 일등 공신이다!
JSP의 장점
- 짧은 코드로 동적인 웹 페이지를 생성할 수 있다.
- 기본적인 예외는 자동으로 처리된다.
- 많은 확장 라이브러리를 사용할 수 있다.
- 스레드 기반으로 실행되어 시스템 자원을 절약해 준다.
기본 용어
서버(Server)
웹에서 서비스를 제공하는 컴퓨터 시스템을 말한다.
웹 서버(Web Server)
정적인 페이지로 생성하여 사용자에게 응답해 주는 소프트웨어이다.
웹 페이지는 주로 HTML, CSS, JavaScript 등으로 구성되어 있다.
웹 컨테이너(Web Container)
웹 서버가 전송해 준 요청을 기초로 동적인 페이지를 생성하여 웹 서버로 돌려준다.
동적 페이지라고 표현되는 이유는 사용자마다 다른 결과로 응답할 수 있는 페이지 이기 때문이다.
예를 들어 로그인한 아이디를 보고 각자에 맞는 페이지를 구성해 주는 것을 생각할 수 있다.
WAS(Web Application Server)
웹 애플리케이션이 실행될 수 있는 환경을 제공하는 소프트웨어이다.
웹 서버와 웹 컨테이너를 포함한 개념이며 대표적으로 톰캣(Tomcat), 웹로직(WebLogic), 웹스피어(WebShpere)등 이 있다.
HTTP(HyperText Transfer Protocol) / HTTPS(HTTP Secure)
www(World Wide Web)에서 웹 서버와 사용자 사이의 통신을 위해 사용하는 통신 *프로토콜이다.
HTTPS는 암호화된 HTTP이다.
프로토콜(Protocol)
네트워크를 통해 컴퓨터들이 정보를 주고받는 절차 혹은 통신 규약을 말한다.
즉 프로토콜은 서로 다른 컴퓨터들이 대화하는 데 필요한 공통 언어 역할을 한다.
앞서 말한 HTTP도 프로토콜의 한 종류이고, 다른 프로토콜로는 파일 전송을 위한 FTP(File Transfer Protocol),
이메일 전송을 위한 SMTP(Simple Mail Transfer Protocol)등이 있다.
포트(Prot)
포트를 직영하면 '항구'라는 뜻이다.
컴퓨터 삿 이에서 데이터를 주고받을 수 있는 통로를 말한다.
인터넷에서는 IP주소를 통해 서버 컴퓨터 위치를 파악한다.
그런 다음 그 컴퓨터가 제공하는 특정 서비스는 포트 번호를 통해 알 수 있다.
대표적으로 HTTP는 80번 포트를, 보안이 적용된 HTTPS는 443 포트를 사용한다.
정적 웹 페이지 vs 동적 웹 페이지
정적 웹 페이지(static web page)란 웹 서버에 저장되어 있는 파일을 그대로 웹 브라우저에 전송해 출력하는 가장 기본적인 웹 페이지이다.
동적 웹 페이지(dynamic web page)란 동일한 페이지라 할지라도 그때그때 내용이 달라질 수 있는 웹 페이지이다.
따라서 클라이언트는 요청한 계정, 시간, 지역, 언어, 기타 입력값에 따라 다른 결과(페이지)를 받는다.
그림에서 보듯 Processing(전처리) 과정을 거쳐 응답 페이지를 동적으로 생성한다.
그리고 이 전처리를 어떻게 처리하느냐에 따라 구체적인 동적 웹 페이지 기술이 나뉜다.
대표적으로는 JSP와 서블릿이 있고, 다른 기술로는 ASP와 PHP 등이 있다.
애플릿?
동적 웹 페이지 기술로는 분류되지는 않지만
웹을 동적으로 만들기 위한 고대의 자바 기술이 있었으니, 바로 자바 애플릿이다.
애플리케이션 전체가 클라이언트에 다운로드된 후 실행되는 자바 애플릿은 속도, 보안, 유연성등에서 한계가 있었다.
그래서 서버 측에서 서블릿(Servlet)이 등장하였다. 서블릿은 클라이언트의 요청을 받으면 서버에서 처리한 후, 응답으로
결괏값만 보내주는 구조이다.
앞서 나온 Processing(전처리) 부분을 서블릿이 담당하는 구조이다.
서블릿은 자바 파일(.java)를 컴파일한 클래스 파일(.class) 형태이다.
이를 실행하고 관리해 주는 런타임을 서블릿 컨테이너라고 하며, 대표적으로 아파치 톰캣이 있다.
JSP, 자바 웹 기술의 최종 진화
서블릿에도 단점이 있었다.
서블릿은 기본적으로 자바 코드인데, 결과로 보여줄 HTML 코드를 일일히 자바로 생성, 조합하다 보니 너무 많은 코드가 필요했다. 그래서 기본을 HTML로 하고 필요한 부분만 자바 코드를 삽입하는 현태인 JSP가 탄생하게 되었다.
JSP 파일을 서블릿으로 변환하여 서블릿을 실행한다.
한번 서블릭으로 컴파일된 JSP파일은 캐시 되므로 실질적인 성능 저하 없이 개발 생산성과 유지보수 편의성을 모두 얻는 멋진 아이디어인 샘이다.
서블릿 | JSP |
자바 코드 안에서 전체 HTML 페이지를 생성한다. | HTML 코드 안에서 필요한 부분만 자바 코드를 스크립트 형태로 추가한다. |
변수 선언 및 초기화가 반드시 선행되어야 한다. | 저주 쓰이는 기능을 내장 객체로 제공하여 즉시 사용할 수 있다. |
컨트롤러(Controller)를 만들 때 사용된다. | 처리된 결과를 보여주는 뷰(View)를 만들 때 사용된다. |
서블릿과 JSP의 주요 차이
오늘날의 웹 사이트
동적 웹 페이지가 반드시 좋은 것은 아니다. 정적 웹 페이지가 더 만들기 쉽고 속도도 빠르며 운영 비용도 저렴하다.
따라서 내용이 변하지 않는 콘텐츠라면 정적 웹으로 구성하는 게 합리적이다.
그래서 자연스럽게 오늘날의 웹은 정적 페이지와 동적 웹 페이지가 혼합된 형태를 띠고 있다.
'🤓천재교육 풀스택 1기 노트' 카테고리의 다른 글
JSP 쿠키 (0) | 2023.08.01 |
---|---|
JSP 지시어와 스크립트 요소 (0) | 2023.07.30 |
천재교육 풀스택1기 과정 JSP Section1. 서블릿, 자바 웹 기술의 새 지평을 열다. (3) | 2023.07.28 |
천재교육 풀스택과정 1기 DAY17 (0) | 2023.06.05 |
천재교육 풀스택 1기 DAY16 (0) | 2023.06.01 |