[Servlet] JSP 사용에서 MVC 패턴
🧶 𝗪𝗲𝗯/Servlet

[Servlet] JSP 사용에서 MVC 패턴

 

 

 

 Web Application Architecture 

개요

브라우저에 해당하는 클라이언트와 서버가 Request, Response 하여 통신합니다.

클라이언트의 요청이 들어오면 서버는 SQL 질의를 통해서 DB에서 필요한 정보를 가져와 응답합니다.

JSP (Java Server Page) 를 이용하여 만들 수 있는 웹 애플리케이션 아키텍처는 크게 2가지로 나눌 수 있습니다.

Model1 과 Model2 인데, 이는 로직 처리와 응답 페이지를 모두 처리하는가 아니면 각각 처리하는가에 차이점을 둡니다.

여기서 Model2 를 MVC 패턴이라고 합니다. (Model - View - Controller)

 

 

Model1

model1

Model1 은 비즈니스 로직 처리와 응답 페이지 처리를 한 곳에서 하는 것을 이릅니다.

여기서는 HTML 과 Java 언어를 사용할 수 있는 JSP 가 그 기능을 합니다.
(JavaBeans 는 Dto 를 이릅니다. 데이터 테이블을 클래스화 시킨 것 입니다.)

장점은 구조가 단순하고, 개발 시간이 비교적 짧아 개발 비용이 감소하게 됩니다.

하지만 이렇게 되면 문제가 한 파일의 2가지 로직을 처리하는 코드가 섞이기 때문에 복잡하고, 분업이 어려워지게 됩니다.

복잡하면 따라 오는 것이 유지보수성, 확장성의 어려움 또한 생기게 됩니다.

이러한 어려움 때문에 생기게 된 것이 바로 Model2 관점입니다.

 

 

Model2

모든 처리를 JSP 에서 하는 것이 아닌 Model - View - Controller 부분을 분업한 구조 입니다.

Client 요청에 대한 처리는 Controller 가, 해당 요청에 대한 비즈니스 로직 처리는 Model 이, Client 에게 응답하는 처리는 View 가 합니다. 여기서 비즈니스 로직 처리는 Contoller 에서 넘어온 data 를 이용하여 각 기능에 맞는 서비스를 처리하고 리턴하는 것을 이릅니다.

 

예를 들어 로그인을 하고 싶다면 id, pw 를 Controller 에서부터 받고 이를 이용하여 SQL 질의문으로 DB에서 해당 사용자에 맞는 정보를 가져옵니다. 그리고 회원가입 처리가 된 사용자라면 true 를 리턴하고 그게 아니라면 false 를 리턴합니다. 이러한 로직들을 처리하는 과정을 비즈니스 로직 처리라고 보시면 됩니다.

 

이러한 로직들을 처리하고 사용자에게 보여주고 싶은 페이지를 forwarding 하여 응답 페이지를 보여주는 것이 View 입니다.

리턴 받은 데이터에 따라 페이지를 출력합니다.

 

이러한 Model2 의 장점은 코드가 분리 되었기 때문에 코드가 복잡하지 않습니다.

또한 유지보수성과 확장성이 좋아집니다.

단점은 구조가 복잡하여 초기 진입이 어려우며 개발 시간의 증가로 개발 비용이 증가합니다.

 

 

 

 

 

 

 


 

728x90

'🧶 𝗪𝗲𝗯 > Servlet' 카테고리의 다른 글

[Servlet] URL 매핑  (1) 2022.10.04
[Servlet] forward, sendRedirect  (1) 2022.10.04
[Servlet] Life Cycle  (1) 2022.10.04
[Servlet] Servlet 관련 객체 및 API  (1) 2022.10.04