Servlet / JSP ) 12. JSP를 이용한 웹 프로그래밍 (스파게티 코드 문제)

60jong·2022년 6월 28일
0

Servlet / JSP

목록 보기
12/17

Server 공부 흐름

Servlet --HTML코드 출력 문제--> JSP --[스파게티 코드 문제]--> JSP MVC -> Spring MVC -> SpringBoot


JSP를 이용한 웹 프로그래밍

JSP 파일 내에 코드 블럭을 통해 코드를 추가할 수 있다고 했다. 기본적인 페이지를 구현해보자.

  • for문

hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Hello</title>
  </head>
  <body>
  <% for(int i=0; i < 10; i++) {%>
  Hello JSP~~<br>
  <% }%>
  </body>
</html>

결과는

Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~


  • 반복 횟수를 Query String으로

hello.jsp + (?cnt=5)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
  String _cnt = request.getParameter("cnt");
  int cnt = Integer.parseInt(_cnt);
%>
<html>
  <head>
    <title>Hello</title>
  </head>
  <body>
  <% for(int i=0; i < cnt; i++) {%>
  Hello JSP~~<br>
  <% }%>
  </body>
</html>

결과는

Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~
Hello JSP~~



  • 홀수 짝수 구분

num.jsp + (?num=3)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
  String _num = request.getParameter("num");
  int num = Integer.parseInt(_num);
%>
<html>
  <head>
    <title>Hello</title>
  </head>
  <body>
  <%if (num % 2 == 0) {%>
  짝수입니다.
  <%} else {%>
  홀수입니다.
  <%}%>
  </body>
</html>

결과는

홀수입니다.

스파게티 코드 문제

JSP를 코드 블럭을 활용해 코드를 짤 때 스파게티 코드 문제가 발생한다.

코드가 스파게티 처럼 꼬여 버려 관리가 어렵게 되는 상황

num.jsp를 살펴보자.

num.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
  String _num = request.getParameter("num");
  int num = Integer.parseInt(_num);
%>
<html>
  <head>
    <title>Hello</title>
  </head>
  <body>
  <%if (num % 2 == 0) {%>
  짝수입니다.
  <%} else {%>
  홀수입니다.
  <%}%>
  </body>
</html>

현재 jsp파일 위 쪽에는 Query String을 통해 변수를 받기 위한 코드가 있고
중간에는 변수가 홀수인지 짝수인지 확인하는 코드가 있다.


그런데 JSP 파일의 길이가 길어지고, 로직도 복잡해진다면...? 예를 들어 calculator.jsp의 경우에는 Cookie를 이용하기도 하며 복잡한 로직이 존재한다.
  • jsp 코드 중간중간에 코드 블럭들이 들어가며
  • 이를 관리하는 것이 쉽지 않은데다가 결국 스파게티 코드 문제가 발생할 수 있게 된다.

따라서 이를 보완하기 위해 JSP MVC 방식이 등장하게 됐다.

profile
울릉도에 별장 짓고 싶다

0개의 댓글