MVC의 필요성

0

스프링

목록 보기
2/4

jsp/servlet의 문제점

jsp의 경우

뷰를 담당하는 html코드 + 회원저장,관리등의 자바코드

가 동시에 들어가 있어 하나의 파일이 여러가지 역할을 너무 많이 하게된다.

코드가 길어질 경우 유지보수가 너무 힘들어진다!!

즉, 하나의 서블릿, jsp만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면 유지보수가 힘들다.

jsp같은 뷰 템플릿 -> 화면을 렌더링하는데 최적화
서블릿 -> 자바코드를 실행하는데 최적화

따라서 M(Model) V(View) C(Controller) 3가지 영역으로 분리하여 웹 어플리케이션을 실행하는 것이 일반적이다.

Controller, Model, View

  • 컨트롤러(Controller)
    - HTTP요청을 받아서 파라미터를 검증, 비즈니스 로직으로 실행. 그리고 모델(Model)에 데이터를 전달 하면서 뷰 로직 실행.
  • 모델(Model)
    - 컨트롤러로부터 데이터를 전달받고 뷰로부터 데이터를 참조(reference)한다.
    • 뷰(View)를 데이터 접근과 비즈니스 로직으로부터 자유롭게 만든다. 이로써 뷰는 화면을 렌더링하는 일에 집중할 수 있게된다.
  • 뷰(View)
    - 모델에 담겨있는 데이터를 사용해 화면을 렌더링

참고
컨트롤러가 비즈니스 로직까지 담당하게 되면 너무 많은 역할을 할 수 있기 때문에 [그림2] 보통 서비스 계층을 따로 만들어 컨트롤러는 비즈니스 로직을 호출만 하게한다.

[그림2]

profile
끊임없이 질문을 던지고 크게 생각하자.

0개의 댓글