Posts MVC 패턴
Post
Cancel

MVC 패턴

MVC 컴포넌트의 역할

Model

  • 컨트롤러가 호출했을때, 요청에 맞는 역할을 수행한다. 비즈니스 로직을 구현하는 영역으로 응용프로그램에서 데이터를 처리하는 부분이다.
  • DB에 연결하고 데이터를 추출하거나 CRUD 등의 작업을 수행한다.
  • 상태의 변화가 있을때, 컨트롤러와 뷰에 통보해 후속 조치 명령을 받을 수 있게 된다.
  • 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야한다.

Controller

  • 클라이언트의 요청을 받았을 때, 그 요청에 대해 실제 업무를 수행하는 모델컴포넌트를 호출한다. 또한 클라이언트가 보낸 데이터가 있다면, 모델에 전달하기 쉽게 데이터를 가공한다.
  • 모델이 업무를 마치면 그 결과를 뷰에게 전달한다.
  • 모델이나 뷰에 대해 알고 있어야 하며, 둘의 변경을 모니터링해야한다.

View

  • 컨트롤러로부터 받은 모델의 결과값을 가지고, 사용자에게 출력할 화면을 만드는 일을 한다.
  • 만들어진 화면을 컨트롤러로 다시 보내고, 컨트롤러는 이를 웹 브라우저에 전송하여 웹 브라우저가 출력하게 한다.
  • 모델과 컨트롤러에 대해 몰라야한다.

MVC 구동 원리

image-20220117005529402

Client-Server 구조로, 요청을 하면 그에 맞는 응답을 하는 구조를 기본으로 하고 있다.

  1. 웹 브라우저가 웹 서버에 웹 어플리케이션 실행을 요청한다.
  2. 웹 서버는 들어온 요청을 처리할 수 있는 컨트롤러를 찾아 요청을 전달한다.
  3. 컨틀롤러는 모델의 메서드를 호출한다.
  4. 모델은 데이터를 가공하여 값 객체를 생성하거나, DB와의 인터랙션을 통해 값 객체를 생성한다.
  5. 업무 수행을 마친 결과 값을 컨트롤러에게 반환한다.
  6. 컨트롤러는 모델로부터 받은 결과값을 View에게 전달한다.
  7. View는 적절한 화면을 생성하고, 컨트롤러에게 전달한다.
  8. 컨트롤러는 뷰로부터 받은 화면을 웹서버에 전달한다.
  9. 웹 브라우저는 웹 서버의 응답을 받고 화면을 출력한다.
This post is licensed under CC BY 4.0 by the author.

TDD

Git

Comments powered by Disqus.