상세 컨텐츠

본문 제목

스프링MVC - MVC 패턴

spring/MVC

by 덴마크 당나귀 2023. 3. 5. 20:51

본문

728x90

MVC 패턴이 필요한 이유

  • 너무 많은 역할
    • 하나의 서블릿이나, JSP만으로 비즈니시 로직과 뷰 렌더링까지 모두 처리하면 너무 많은 역할에 결국 유지보수가 어려워짐. UI든, 비즈니스 로직이든 함께 있는 파일 하나를 계속 수정해야 된다. 찾기 어려워진다.
  • 변경의 라이프 사이클 
    • 비즈니스 로직과 HTML 사이의 변경의 라이프 사이클이 다르다는 점. UI 일부 수정하는 일과 비즈니스 로직을 수정하는 일은 각각 다르게 발생할 가능성이 매우 높다. 그리고 서로에게 영향을 주지 않는다. 이러한 라이프 사이클을 하나의 코드로 관리하는 것은 유지보수하기 어렵다.
  • 기능 특화
    • JSP 같은 뷰 템플릿은 화면 렌더링, 서블릿은 자바 코드를 수행하는데 특화되어 있다.

MVC패턴1

  • Model View Controller
    • MVC 패턴은 지금까지 학습한 것처럼 하나의 서블릿이나 ,JSP로 처리하던 것을 컨트롤러와 뷰라는 영역으로 서로 역할을 나눈 것을 의미한다.  웹 어플리케이션은 보통 MVC 패턴을 사용한다.
    • 컨트롤러 : HTTP 요청을 받아서 파라미터를 검증하고 비즈니스 로직 실행. + 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다.
    • 모델 : 뷰에 출력할 데이터를 담아둔다. 뷰가 필요한 데이터를 모두 모델에 담아서 전달해줘서 뷰는 비즈니스 로직이나 데이터 접근을 몰라도 되고, 화면 렌더링에만 집중할 수 있다.
    • 뷰 : 모델에 담겨있는 데이터를 사용해서 화면을 그리는 일에 집중한다. 

서비스 계층 분리

+ 컨트롤러에 비즈니스 로직을 둘 수도 있지만, 이러면 컨트롤러가 너무 많은 역할. 위 그림을 보면, 일반적으로 비즈니스 로직을 담당하는 서비스라는 계층을 별도로 만들어서 처리. 그렇게 되면 컨트롤러는 비즈니스 로직이 있는 서비스를 호출하는 역할만을 담당하게 되어 역할에 비중이 줄어든다.

728x90

관련글 더보기