실습은 따라 하고 있었지만 "지금 내가 무엇을 만들고 있는지" 제대로 이해하지 못하는 순간도 있었다.
특히 JSP와 Servlet의 관계, 그리고 Spring Boot 강의를 찾아보니 등장하는 JPA까지 모두 비슷한 기술처럼 느껴졌다.
그래서 이번 기회에 각 기술의 역할과 관계를 정리해 보려고 한다.
웹 서비스는 대략 이런 흐름으로 동작한다.

1. Servlet이란?
Servlet은 웹 요청을 처리하는 Java 프로그램이다. 사용자가 URL에 접속하거나 버튼을 누르면 가장 먼저 요청을 받아 처리하는 역할을 담당한다. 사용자와 서버 사이의 '중간 관리자'라고 할 수 있다.
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(
HttpServletRequest request,
HttpServletResponse response
) {
System.out.println("요청 들어옴");
}
}
사용자가 localhost:8080/hello에 접속하면 이 Servlet이 실행된다.
2. JSP란?
JSP(Java Server Pages)는 화면을 출력하기 위한 기술이다. 사용자에게 보여지는 HTML을 생성하는 역할을 담당한다.
<h1>게시판</h1>
<%= "안녕하세요" %>
실제 게시판에서는 데이터를 반복 출력하는 경우가 많다.
<c:forEach var="b" items="${list}">
${b.subject}
</c:forEach>
JSP와 Servlet의 관계
처음 공부할 때 가장 헷갈렸던 부분이다. 사실 JSP는 내부적으로 Servlet으로 변환되어 실행된다.

즉 JSP = 화면 출력을 위한 Servlet이라고 이해하면 쉽다.
3. JPA란?
JPA(Java Persistence API)는 Java 객체와 데이터베이스를 연결해 주는 기술이다.
예전 방식(JDBC)에서는 SQL을 직접 작성해야 했다.
String sql = "select * from board";
반면 JPA를 쓰면 객체 중심으로 개발할 수 있다.
boardRepository.findAll();
JPA가 중간에서 SQL을 자동으로 생성하고 실행해 준다.

흐름으로 동작한다.
정리하면서 내가 JPA를 몰랐던이유가 있었는데 난 JDBC 방식을 쓰고있기 때문이다.
이거에 대해서도 한 번 정리해야겠다.
'깜지' 카테고리의 다른 글
| 포크(Fork)와 클론(Clone) (5) | 2025.08.18 |
|---|