서버 사이드 프로그래밍이란?
서버 쪽에서 프로그래밍을 통해 데이터를 처리할 수 있도록 구성하는 것
1. 개발 시 고려해야 할 점
- 동시에 여러 요청이 들어온다면 어떻게 처리해야 하는가?
- 서버에서 문제가 생기면 이를 어떻게 처리해야 하는가?
- 어떤 방법으로 데이터 전송을 최적화할 수 있을까?
- 분산 환경이나 분산 처리와 같은 문제들은?
서비스를 새로 개발할 때마다 이런 고민을 새로 해야 한다면 엄청나게 많은 개발 비용, 시간을 소모해야 한다.
자바의 경우 이러한 처리를 JavaEE라는 기술 스펙으로 정리해 두었고,
Servlet과 JSP는 여러 기술 중에 하나이다.
2.서블릿 Servlet
서블릿 Servlet?
서버에서 동적으로 요청과 응답을 처리할 수 있는 API들을 정의한 것
서블릿을 지원하는 환경에서 개발자들은 서블릿에서 제공하는 API를 이용해서 코드를 작성하고 이를 설정하는 방식으로 서블릿 프로그램을 작성하게 된다.
👉 톰캣 설치 시에는 어떤 서블릿 버전을 지원하는지 확인한다.
JSP는 근본적으로 서블릿과 같은 원리지만 좀 더 HTML을 쉽게 이용할 수 있는 방식으로 코드를 작성할 수 있으므로 서블릿으로는 코드를 이용한 처리, JSP로는 화면 개발과 같이 역할을 분담해서 개발하는 것이 일반적이다.
서블릿의 실행은 톰캣과 같이 서블릿을 실행할 수 있는 환경에서 실행이 가능한데 이를 '서블릿 컨테이너'라고 하며 과거에는 서블릿 엔진이라는 용어를 상용했다.
- 일반 자바 프로그램과의 차이점
- 객체를 생성하거나 호출하는 주체는 사용자가 아닌 서블릿 컨테이너가 하게 됨
- 서블릿 클래스에서 생성하는 객체의 관리 자체가 서블릿 컨테이너에 의해서 관리됨
- 서블릿/JSP 코드 개발은 기본적인 자바 API와 더불어 서블릿 API도 같이 사용해야 함
import의 경우 javax로 시작하는 서블릿 관련 API를 사용하고 있다는 걸 알 수 있다.
- 서블릿의 라이프 사이클
HttpServlet 내부에는 init(), doGet(), destroy()가 작성되어 있는데 이는 서블릿 API에서 지정된 메소드이다.
이 메소드들의 호출의 주체는 개발자가 아닌 서블릿 컨테이너가 서블릿들을 관리하면서 호출된다.
3. JSP 기술
JSP란?
Java Server Pages
서버에서 동적으로 데이터를 구성하는 기술
- Servlet과 JSP의 차이점
- JSP: HTML 코드를 그대로 이용하고 필요할 때 약간의 자바 코드를 넣음
- Servlet: 자바 코드를 이용해서 HTML 문자열을 만들어냄
- 특징
JSP 코드는 자바 코드가 아닌데도 서블릿과 동일하게 처리된다.
👉 JSP 파일도 서블릿 코드로 변환되어서 컴파일 되고 실행되기 때문
JSP 파일은 필요한 순간에 자바 파일로 생성되고, 이를 컴파일해서 class 파일로도 만들어진다.
요약
- 서블릿/JSP 모두 Java EE 스펙의 일부
- 서블릿/JSP를 실행하기 위해서는 서블릿 컨테이너가 필요함
- 서블릿 컨테이너가 서블릿/JSP 객체를 생성하고 생명 주기를 관리함
- JSP는 내부적으로 서블릿과 같은 방식의 코드로 변환됨
- JSP는 HTML 내에 자바 코드를 추가하는 방식이고, 서블릿 방식은 자바 코드 안에 HTML 코드를 추가하는 방식
'Web > Servlet + JSP' 카테고리의 다른 글
[Servlet] web.xml과 @WebServlet (이클립스 이용) (0) | 2024.04.02 |
---|---|
[JSP] JSP를 이용해서 GET/POST 처리하기 (0) | 2024.03.31 |