-
[Spring Framework] MVC(모델-뷰-컨트롤러) 패턴에 대해서 알아보자백엔드/Spring 2020. 11. 16. 23:43
MVC 패턴
스프링에서 가장 쉽고, 가장 어려운 MVC이다.
MVC 개념
모델-뷰-컨트롤러는 소프트웨어 공학에서 사용되는 아키텍처 패턴으로
MVC 패턴의 주 목적은
Business logic과 Presentation logic을 분리하기 위함이다.
Model : 어플리케이션의 정보 (데이터, 비즈니스 로직 포함) => Service, DAO, Repository
View : 사용자에게 제공할 화면 (Presentation Layer) => HTML, JSON
Controller : Model과 View 사이의 상호 작용을 관리
Model Component
데이터 저장소와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 일을 한다.
여러 개의 데이터 변경 작업 (추가, 변경, 삭제)를 하나의 작업으로 묶는 트랜잭션을 다루는 일도 한다.
DAO 클래스, Service 클래스에 해당한다.
VO (Value Object = Domain Object)도 해당한다.
View Component
모델에 처리한 데이터나 그 작업 결과를 가지고 사용자에게 출력할 화면을 만드는 일을 한다.
HTML, JSP, JS가 해당한다.
Controller Component
클라이언트의 요청을 받았을 때, 응답을 하기 위해서 모델 컴포넌트를 호출
응답할 데이터에 전달하기 쉽게 데이터를 적절하게 가공하는 일을 한다.
모델이 업무 수행을 완료하면, 그 결과를 가지고 화면을 생성하도록 뷰에게 전달한다.
서블릿 사용이 가능하여, alert 함수, JSP 태그 작성이 가능하다.
Front Controller 패턴
이전에 사용하던 JSP&Servlet의 경우 Front Controller 패턴을 사용하였으며
이는 모든 요청을 프론트 컨트롤러에서 받아서 처리시키는 방법이다.
현재 스프링에서, 우리가 사용하는
@Controller의 경우 위의 이미지와 같으며
내장되어 있는 Front Controller에서 개발자가 작성한 코드의
@Controller로 분기를 시켜준다.
즉 스프링에서는 Front Controller가 내장되어 있으며
이 행위는 DispatcherServlet이 처리한다.
마무리
프론트 컨트롤러를 사용하는 기법을 퍼사드패턴..? 이라고 하는 것 같은데
한번 리서치를 해봐야겠다.
※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다
반응형'백엔드 > Spring' 카테고리의 다른 글
[Spring JPA] Hibernate 파라미터 출력 설정 (로그 출력) (2) 2020.12.29 [Spring Framework] 한글 인코딩이 깨질때 (Spring Security 사용시) (0) 2020.12.02 [Spring Framework] Layered Architecture (0) 2020.11.16 [Spring Framework] DI란 무엇인가? (1) 2020.11.16