Servlet & JSP

JSP MVC model1

1space 2025. 7. 12. 14:16

뉴렉처 [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