웹 개발에서 MVC (Model-View-Controller) 아키텍처는 코드의 구조화와 유지보수성을 높이기 위해 매우 중요합니다. JSP (Java Server Pages) 역시 이 아키텍처를 적용하여 개발할 수 있습니다. 이번 글에서는 JSP에서 MVC 아키텍처를 적용하는 방법에 대해 알아보겠습니다.
1. 모델 (Model) 클래스 작성
모델 클래스는 비즈니스 로직을 처리하는 부분으로, 데이터를 처리하고 저장합니다. 이 클래스는 JavaBeans의 규칙을 따라야 합니다. 필요에 따라 데이터베이스 연동이나 파일 입출력 등을 처리할 수 있습니다.
public class UserModel {
private String username;
private String password;
// Getters and setters
public void saveUser() {
// 유저 저장 로직
}
}
2. 뷰 (View) 작성
뷰는 클라이언트에게 데이터를 표시하는 역할을 합니다. JSP에서는 HTML 코드 내에 Java 코드를 삽입하여 원하는 데이터를 동적으로 생성할 수 있습니다. 예를 들어, 아래의 코드는 사용자의 이름을 표시합니다.
<html>
<body>
<h1>Welcome <%= request.getAttribute("username") %>!</h1>
</body>
</html>
3. 컨트롤러 (Controller) 작성
컨트롤러는 사용자의 요청을 받아 해당 요청을 처리한 후, 결과 데이터를 모델과 뷰에 전달하는 역할을 합니다. 이를 위해 JSP 내에서 Java 코드 또는 서블릿을 사용할 수 있습니다. 예를 들어, 아래의 코드는 사용자의 데이터를 처리하고 뷰에 전달합니다.
<%@ page import="com.example.UserModel" %>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
UserModel userModel = new UserModel();
userModel.setUsername(username);
userModel.setPassword(password);
userModel.saveUser();
request.setAttribute("username", username);
request.getRequestDispatcher("welcome.jsp").forward(request, response);
%>
4. 요청과 응답 관리
클라이언트의 요청을 받고 응답을 전송하기 위해서는 web.xml 파일에 매핑을 설정해야 합니다. 예를 들어, 아래의 코드는 사용자가 “/register” URL로 요청을 보내면 “register.jsp”로 연결합니다.
<servlet>
<servlet-name>register</servlet-name>
<jsp-file>/register.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>register</servlet-name>
<url-pattern>/register</url-pattern>
</servlet-mapping>
결론
JSP에서 MVC 아키텍처를 적용하는 방법을 살펴보았습니다. 모델은 비즈니스 로직을 처리하고 데이터를 저장하며, 뷰는 데이터를 표시하고 컨트롤러는 요청을 처리하여 결과를 모델과 뷰에 전달합니다. 이를 통해 웹 애플리케이션의 구조를 명확히 분리하여 유지보수성과 확장성을 개선할 수 있습니다.
참고자료: