[Web]Servlet&JSP, Model1/Model2방식 차이와 스프링MVC

2025. 1. 22. 23:50·Develop/CS

- 초창기  웹서비스는  사용자 요청이 오면 html 이라는 정적인 파일만 주고받기 시작했다. 하지만 시간이 지나고 웹이 발.

전하고 웹을 사용하는 사람이 많아지다 보니 동적으로 웹페이지를 만드는 기술들도 발전하기 시작했다.

 

Servlet이란?

클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술.

 

간단히 말해서, 서블릿이란 자바를 사용하여 웹을 만들기 위해 필요한 기술. 그런데 좀더 들어가서 설명하면 

클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램이다.

 

 

Servlet동작 방식

서블릿 동작방식

 

 

Servlet  문제점

하지만 서블릿 단점으로 java 코드안에 html이 삽임됨으로 , html 코드를 out 객체의 println 메소드를 사용하여 HTML 문서를 작성해야 하는데 이는 추가/수정을 어렵게 하고, 가독성도 떨어지기 때문에 jsp 기술이 나옴.

 

 

 

 

JSP이란?

JSP 는 HTML 내부에 JAVA 소스코드가 들어감으로 인해 HTML 코드를 작성하기 간편하다는 장점이 있고(자동으로 print 를 붙여주고 httpServlet 을 상속받은  서블릿 클래스로 자동 으로 변환해준다. 

 

 

 

 

 

Model1 방식

 

모델 1방식은 뷰와 로직을 모두 하나의 JSP페이지에서 처리하는 구조를 말한다. 

하지만 이런 방식은 백엔드와 프로트앤드 코드가 섞임으로서 코드가 복잡해지고 유지보수 측면에서 좋지 않다.

 

 

 

Model2 방식

모델2방식은 MVC(Model-View-Controller) 패턴을 웹 개발에 도입한 구조다

 

Model: 사용자가 요청한 데이터 정보

View: 사용자가 요청한 화면

Controller: 사용자의 요청을 처리하고, 그요청에 대한 전체적인 흐름을 제어

 

장정: 모델 2방식으로 개발하개 되면 html과 java코드가 분리됨으로 확장에 용이하고 유지보수가 수월함.

 

단점: 각 요청을 받는 서블릿 클래스를 여러개 구현해 놓으니 코드 중복발생.

 

 

 

스프링MVC 방식

Model2 아키텍처에서 만약 하나의 서블릿으로 controller를 구현하면 클라이언트의 모든 요청을 하나의 서빌릿이 처리하게 되어 수많은 분기 처리 로직을 가질수있다. 스프링 프레임워크는 개발과 유지보수의 편의성이 보장되도록 디자인 패턴을 결합하여 효율적인 mvc를 구현해놈.

 

 

 

 

출처: https://mangkyu.tistory.com/14 [MangKyu's Diary:티스토리]

 

https://onejuny.tistory.com/entry/JavaJsp-MVC-1-MVC-2-%EC%B0%A8%EC%9D%B4-%EB%B0%8F-%EC%9E%A5%EB%8B%A8%EC%A0%90

 

'Develop > CS' 카테고리의 다른 글

[CS] 문자열 Encoding이란? 아스키코드,유니코드, UTF-8 개념정리  (0) 2025.02.17
[CS] HTTP 메서드 PUT,PATCH 차이점 및 종류  (0) 2025.02.15
Web Server 와 WAS 차이와 웹 서비스 구조  (0) 2024.02.18
쿠키 와 세션을 이용한 로그인 처리  (0) 2024.02.17
'Develop/CS' 카테고리의 다른 글
  • [CS] 문자열 Encoding이란? 아스키코드,유니코드, UTF-8 개념정리
  • [CS] HTTP 메서드 PUT,PATCH 차이점 및 종류
  • Web Server 와 WAS 차이와 웹 서비스 구조
  • 쿠키 와 세션을 이용한 로그인 처리
dev_m.w
dev_m.w
BE 개발자의 공부기록✨
  • dev_m.w
    DEV.BLOG
    dev_m.w
  • 전체
    오늘
    어제
    • 분류 전체보기 (24)
      • Develop (20)
        • Java (5)
        • Spring (8)
        • Git (1)
        • CS (5)
        • etc (1)
      • 토이 프로젝트 (4)
        • 게시판 만들기 문제 해결 (4)
  • 블로그 메뉴

    • 홈
    • 깃허브
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Thread # 자바 쓰레드 #자바 #자바의 정석
    Java #HashMap #Collection
    자바 #지네릭스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dev_m.w
[Web]Servlet&JSP, Model1/Model2방식 차이와 스프링MVC
상단으로

티스토리툴바