1. JSP
Java Server Pages의 약어이며, 동적인 웹 페이지를 개발하기 위한 웹 프로그래밍 기술이다.
언어는 이름에서부터 알 수 있듯이, Java를 사용하며 서버 측에서 웹 페이지들을 생성해 브라우저로 전송한다.
또한 기업용 자바 기술의 집합체이자 대한민국 정부 표준 프레임워크의 근간인
Java EE, Java Platform, Enterprise Edition의 핵심요소이다.
그래서 정부 또는 공기업 주도의 사업 등 대규모 기업용 시스템 구축에 주로 사용된다.
(1) 장점
- 짧은 코드로 동적인 웹 페이지 생성이 가능하다.
- 기본적인 예외는 자동으로 처리된다.
- 많은 확장 라이브러리를 사용할 수 있다.
- 스레드 기반으로 실행되어 시스템 자원을 절약해준다.
(2) 기본용어
어떤 개념이든 그 개념을 배우기 위해서는 기본적인 용어를 알아야 한다.
JSP도 마찬가지로 약 7개의 용어들을 살펴볼 것이다.
- Server
웹에서 서비스를 제공하는 컴퓨터 시스템을 말한다.
주로 정보를 검색하기 위해 네이버, 구글 등을 이용하고 필요한 물품을 사기 위해 다나와, 11번가 등을 이용하는데
이런 서비스를 제공하는 Web Application(웹 어플리케이션)은 서버 컴퓨터에 파일의 형태로 저장되어져 있다.
- Web Server
사용자로부터 HTTP를 통해 요청을 받거나 Web Container(웹 컨테이너)가 전달해준 결과물을
정적인 페이지로 생성하여 사용자에게 응답해주는 소프트웨어를 말한다.
웹 페이지는 HTML, CSS, 자바스크립트로 구성된다.
- Web Container
웹 서버가 전송해준 요청을 기초로 동적인 페이지를 생성하여 웹 서버로 돌려준다.
'동적'인 페이지인 이유는 사용자마다 다른 결과로 응답할 수 있기 때문이며, 예로 로그인이 있다.
- WAS
Web Application이 실행될 수 있는 환경을 제공하는 소프트웨어
컴퓨터에서 OS(운영체제)와 비슷한 역할을 하는 소프트웨어라고 할 수 있다.
대표적인 것으로 Tomcat(톰캣)이 있으며, 기타로 WebLogic, WebShpere가 있다.
- HTTP(HyperText Transfer Protocol) / HTTPS(HTTP Secure)
우리가 흔히 사용하는 네이버 주소를 봤을 때 https://www.naver.com에서 맨 앞에 적힌 부분이다.
웹 서버와 사용자 사이의 통신을 위해 사용하는 통신 프로토콜이며, HTTPS는 웹 상에서 자물쇠로 표현된다.
- Protocol
네트워크를 통해 컴퓨터들이 정보를 주고받는 절차 혹인 통신 규약을 말한다.
HTTP도 프로토콜의 한 종류이고, 파일 전송을 위한 FTP, 이메일 전송을 위한 SMTP 등이 있다.
- Port
컴퓨터 사이에서 데이터를 주고받을 수 있는 통로를 말한다.
인터넷에서는 IP 주소를 통해 컴퓨터의 위치를 파악하고 그 컴퓨터가 제공하는 서비스는 Port 번호를 통해 알 수 있다.
대표적으로 HTTP는 80번 포트를, HTTPS는 443번 포트를 사용한다.
(3) 정적 vs 동적
정적(Static) 웹 페이지는 웹 서버에 '저장되어 있는 파일을 그대로' 전송해 출력하는 기본적인 웹 페이지를 말한다.
Client(Web Browser)가 어떤 형태로 요청해도 같은 페이지는 항상 동일하기에 '정적'이란 수식어가 붙은 것이다.
동적(Dynamic) 웹 페이지는 동일한 페이지라도 그때그때 내용이 달라질 수 있는 페이지를 말한다.
Server가 Client의 요청을 해석하여 적절한 웹 페이지를 그때그때 생성하여 보내주는 기술이다.
따라서 Client는 요청한 아이디, 시간, 지역, 언어 등의 입력값에 따라 다른 결과를 받는다.
동적 웹 페이지 그림에서 보이듯이 '전처리'가 제일 중요하다.
이 책에서는 저 '전처리'를 처리하기 위한 기술로 JSP와 서블릿을 사용한다.
(4) JSP와 서블릿
※ 서블릿이란?
서버 측에서 실행되며, 동적 웹 페이지 방식에서의 '전처리' 부분을 담당한다.
자바파일(.java)를 컴파일한 클래스파일(.class) 형태이며 이를 실행하고 관리하는 런타임을 '서블릿 컨테이너'라고 한다.
대표적인 서블릿 컨테이너로 Apache Tomcat(아파치 톰캣)이 있다.
그럼 어쩌다 JSP와 서블릿을 같이 사용하게 되었을까?
서블릿은 기본적으로 자바코드이다. 하지만 결과로 보여줄 HTML 코드를 일일이 자바로 생성하고 조합하다 보니
너무 많은 코드가 필요하게 되었고 이에 기본은 HTML로, 필요한 부분만 자바코드를 삽입하는 JSP가 탄생하게 된다.
JSP의 구동 방식은 JSP 파일을 서블릿으로 변환하여 서블릿을 실행하는 방식이다.
한 번 서블릿으로 컴파일된 JSP는 캐시되므로 성능 저하 없이 개발 생산성과 유지보수 편의성을 모두 얻을 수 있게 된다.
JSP가 서블릿으로 변환된다는 것은 서블릿 기술도 계속해서 사용할 수 있다는 뜻이므로
용도에 따라 더 유리한 기술을 골라 사용할 수 있게 된다.
그렇기에 JSP는 Client에 보여지는 결과 페이지를 생성할 때 주로 사용되고
서블릿은 UI 요소가 없는 제어 또는 기타 처리 용도로 쓰인다.
두 기술의 차이는 표를 참고한다.
서블릿 | JSP |
자바 코드 안에서 전체 HTML 페이지 생성 | HTML 코드 안에서 필요한 부분만 자바 코드를 스크립트 형태로 추가 |
변수 선언 및 초기화가 반드시 선행되어야 함 | 자주 쓰이는 기능을 내장 객체로 제공하여 즉시 사용 가능 |
Controller(컨트롤러)를 만들 때 사용 | View(뷰)를 만들 때 사용 |
출처: 성낙현의 JSP 자바 웹 프로그래밍 P61, 표 1-1, 서블릿과 JSP의 주요 차이 |
오늘날의 페이지는 정적 웹 페이지와 동적 웹 페이지가 혼합된 형태를 띈다고 한다.
이렇게 JSP의 의미와 특징, 웹 구동방식을 알아보았다.
'ebook > jsp' 카테고리의 다른 글
[5] 내장 객체 - request (0) | 2022.05.24 |
---|---|
[4] 스크립트 요소 (0) | 2022.05.23 |
[3] 지시어 (0) | 2022.05.21 |
[1] HelloJSP.jsp (0) | 2022.05.16 |
[보충교재] 성낙현의 JSP 자바 웹 프로그래밍 (0) | 2022.05.16 |