MVC패턴의 등장

2022. 10. 25. 14:41Spring

서블릿, JSP의 한계와 MVC패턴의 등장

서블릿으로 개발할 때는 뷰 화면을 위한 HTML을 만드는 코드가 자바 코드에 섞여서 지저분하고 복잡하다. 뷰 템플릿인 JSP의 경우 뷰를 생성한는 HTML이 비교적 깔끔하지만 동적으로 변경이 필요한 부분에는 자바코드가 들어간다. 결과적으로는 로직을 위한 자바 코드와 뷰를 위한 코드가 섞여 깔끔하지 못하고 각자의 역할에 집중하지 못하게 된다.

  • 컨트롤러: HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다. 그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다.
  • 모델: 뷰에 출력할 데이터를 담아둔다. 뷰가 필요한 데이터를 모두 모델에 담아서 전달해주는 덕분에 뷰는 비즈니스 로직이나 데이터 접근을 몰라도 되고, 화면을 렌더링 하는 일에 집중할 수 있다.
  • : 모델에 담겨있는 데이터를 사용해서 화면을 그리는 일에 집중한다.

참고

컨트롤러에 비즈니스 로직을 둘 수도 있지만 이렇게 되면 컨트롤러가 너무 많은 역할을 담당한다. 그래서 일반적으로 비즈니스 로직은 Service라는 계층을 별도로 만들어 처리한다.

 

해당 내용은 김영한님의 인프런_[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술]을 기본으로 정리했습니다.