뉴렉처 [Servlet&JSP 프로그래밍]강의를 통해 공부한 내용을 정리한 글입니다.
Model1 방식이란?
Model1 방식은 JSP(JavaServer Pages)로만 웹 애플리케이션을 구성하는 가장 초기의 웹 개발 구조입니다. 다음과 같은 특징이 있습니다:
JSP 파일 하나 | 입력(요청 처리), 비즈니스 로직 처리, 출력까지 모두 담당 |
즉, 모든 처리(입력, 계산, 출력)를 JSP에서 다 한다는 구조입니다.
지금 작성한 코드 분석 (Model1 예시)
<%
// 1. 입력 처리 (요청 파라미터 수집)
int num = 0;
String num_ = request.getParameter("n");
if(num_ != null && !num_.equals(""))
num = Integer.parseInt(num_);
// 2. 로직 처리 (비즈니스 로직 - 짝수/홀수 판단)
String result;
if(num%2 != 0)
result = "홀수";
else
result = "짝수";
%>
<!-- 3. 출력 처리 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=result %>입니다.
</body>
</html>
이 JSP 페이지는 다음 3가지를 하나의 파일 안에서 모두 처리합니다.
- Controller 역할 → 파라미터 읽고
- Model 역할 → 짝수/홀수 판단
- View 역할 → HTML로 결과 출력
Model1 방식의 한계 (스파게티 코드로 가는 이유)
1. 모든 역할이 뒤섞여 있음
- 자바 코드와 HTML이 섞여 있음
- 개발자가 늘 <% %>, <%= %> 태그 안에 자바 코드를 넣어야 하므로 코드 가독성이 떨어짐
2. 역할 분리가 안 됨
- 사용자 요청 처리, 계산 로직, 화면 출력이 모두 한 파일 안에 있으므로
- 기능이 많아질수록 코드가 복잡해지고 유지보수가 어려움
3. 코드 재사용이 불가능함
- 다른 JSP에서 같은 짝수/홀수 판단 로직을 써야 해도, 중복된 코드를 또 써야 함
그래서 흔히 "스파게티 코드"라고 불립니다.
구조 없이 꼬이고 섞여 있는 코드 = 유지보수 지옥
Model2(MVC) 방식과의 차이
구분 | Model1 방식 | Model2 방식 |
구조 | JSP 하나에 모든 코드 | JSP는 View, Servlet은 Controller |
역할 분리 | 안 됨 | 철저히 분리 |
유지보수 | 어려움 | 쉬움 |
확장성 | 낮음 | 높음 |
정리 요약
- 지금 작성한 코드는 Model1 방식으로,
- JSP 한 파일 안에서 입력(요청), 처리(로직), 출력(HTML) 을 모두 처리합니다.
- 초기에 빠르게 화면을 띄우는 데는 편리하지만,
- 규모가 커지면 코드가 뒤엉키고 유지보수가 어려워지는 단점이 있습니다.
- 그래서 이후에는 MVC 구조(Model2 방식) 로 발전하게 됩니다.
'Servlet & JSP' 카테고리의 다른 글
EL(Expression Language) (0) | 2025.07.13 |
---|---|
JSP MVC model2 (0) | 2025.07.12 |
스파게티 코드 (0) | 2025.07.11 |
JSP의 내장객체 (0) | 2025.07.11 |
JSP 코드블록 (0) | 2025.07.11 |