📢 들어가면서
Servlet과 단짝으로 항상 같이 나오는 친구이다. 때문에 같이 포스팅을 하려고 했으나 각각에 설명할 내용들이 많고 하나의 글에 너무 많은 것을 설명한다면 쉴 틈이 없을 것 같아서 한번 끊어서 설명을 하려고 한다. 기존의 글을 먼저 읽고 오는 것을 추천한다! Servlet이란?
🍖 JSP란?
지난 시간에는 Servlet에 대해 알아봤다면 이번에는 JSP에 대해서 알아볼 시간이다. 둘은 비슷한 듯 다르기 때문에 잘 이해해야한다!
📌 정의는?
Java Server Pages의 약자이며, HTML 코드에 Java 코드를 넣어서 동적 웹페이지를 생성하는 웹 어플리케이션 도구이다.
JSP가 실행이 되면 Java Servlet으로 변환이 되며 웹 어플리케이션 서버에서 동작이 되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
Servlet이란 웹페이지를 동적으로 생성하기 위한 서버측 프로그램이다. 근데 JSP도 동적 웹페이지를 생성한다고 한다. 왜 같은 일을 두번하는 기술이 필요한걸까?
📌 필요한 이유는?
결론부터 얘기하자면 조금 더 편하게 동작하기 위해서이다.
기존에 HTML 페이지는 정적인 페이지였고 Servlet을 활용하여 이를 동적인 페이지로 동작할 수 있도록 하였는데, 이렇게 기능이 올라간만큼 복잡성이 매우 증가하게 되었다.
특히 Servlet Class 내에서 HTML 문법을 Java 코드로 작성하는 것은 매우 비효율적이고 복잡하다. 때문에 약간의 Java 기능이 들어가는 상황에서도 Servlet을 사용하게 된다면 너무 무거운 환경이 된다.
때문에 우리는 HTML 페이지에 약간의 Java 기능이 들어가는 상황과 같은 경우에는 Servlet에 온전히 맡기기보단 다른 방식으로 활용을 해보자! 라고 해서 나오게 된 게 JSP이다.
즉, 조금 더 가볍게 웹 사이트를 구성하기 위해 만들어졌으며 JSP 파일을 Servlet Class로 변환하고 실행시켜주는 역할을 하는 프로그램이 Servlet Container이다.
📌 어떻게 쓰는데?
Servlet은 Java 코드 안에 HTML 코드를 작성하는 방식이라면 JSP는 HTML 코드 안에 Java 코드를 작성하는 방식이다.
⇒ Servlet은 Java, JSP는 HTML이 주를 이룬다는 것을 기억하자..!
HTML은 Tag의 형식을 사용한다. 마찬가지로 Java 코드를 작성하기 위해서는 HTML에 Tag를 작성하고 그 안에 Java 코드를 작성해야하는데 이때 사용되는 태그들이다.
종류 | 사용 용도 | 형식 |
지시자(Directive) | JSP 페이지의 속성을 지정 | <%@ %> |
주석(Comment) | JSP 페이지 설명을 넣음 | <%- -> |
선언(Declaration) | 변수와 메소드를 선언 | <%! %> |
표현식(Expression) | 계산식이나 함수를 호출한 결과를 문자열 형태로 출력 | <%= %> |
스크립트릿(Scriptlet) | Java 코드를 기술 | <% %> |
액션 태그(Action Tag) | Java Bean이나 Server Module과 연결 | <jsp:action> </jsp:action> |
하지만 위의 태그들을 사용하면 Java의 모든 코드들을 직접 작성해주어야한다. 이는 사용하기에도 불편하고 가독성 측면에서도 좋지 않기 때문에 조금 더 간편하게 적을 수 있는 JSTL을 사용한다.
💡 JSTL이란?
JSP Standard Tag Library의 약자로 JSP 표준 라이브러리이다. JSP에서 사용할 수 있는 커스텀 태그 라이브러리 모음이며, 비즈니스 로직과 프리젠테이션 로직을 분리할 수 있도록 해준다.
📌 특징은?
그렇다면 JSP의 특징은 무엇이 있을까?
- Servlet 기반의 서버 스크립트 기술이다.
- Java의 기능을 그대로 사용할 수 있다.
- 플랫폼에 독립적이다.
- JSTL을 사용하여 효율적으로 웹 사이트를 구성할 수 있다.
- 수정된 경우 재배포할 필요없이 WAS가 처리해준다.
💡 서버 스크립트란?
서버에서 해석하는 스크립트로 어떤 WAS를 운영하고 있느냐에 따라 사용되는 언어가 결정된다. 사용되는 언어로는 PHP, JSP 등이 있다.
🍗 JSP의 동작과정은?
- 브라우저가 웹 서버에게 JSP에 대한 요청 정보를 전달
- 브라우저가 요청한 JSP가 최초로 요청했을 경우에 JSP로 작성된 코드가 Servlet 코드로 변환(.java 파일 생성)
- Servlet 코드를 컴파일해서 실행 가능한 ByteCode로 변환(.class 파일 생성)
- Servlet이 실행되어 요청을 처리하고 응답 정보를 생성
🥩 Servlet과 JSP?
지금까지 배운 Servlet과 JSP에 대해서 비교를 해보면서 한번 더 정리해보자!
Servlet은 Java 코드 안에 HTML 코드를 작성한 형식이다!
JSP는 HTML 코드 안에 Java 코드를 작성한 형식이다!
Servlet은 Java 코드 중심으로 복잡한 로직 구현에 적합하지만 화면 작성이나 수정이 어렵다!
JSP는 HTML 코드 중심으로 화면 작성, 수정 작업에 적합하지만 소스보기로 소스가 공개되어 중요 정보에는 부적합하다!
결국 중요한 로직 구현은 Servlet Class에 HTML 중심 코드는 JSP에 작성을 하는 것이 좋다!
🪄 정리하자면
JSP는 HTML에 Java 코드를 넣어서 동적인 웹 페이지를 구성할 수 있다!
Servlet으로만 구성할 때 생기는 문제점을 해결하기 위해서 JSP를 사용한다!
Servlet은 Java 코드 중심이고 JSP는 HTML 코드 중심이다!
'Web > Spring & Spring Boot' 카테고리의 다른 글
🍃 WAR & JAR란? (1) | 2025.04.27 |
---|---|
🍃 Servlet이란? (1) | 2025.04.22 |
🍃 Maven & Gradle이란? (1) | 2025.04.21 |
🍃 Spring & Spring Boot란? (1) | 2025.04.20 |