20241031 MVC 패턴
MVC 패턴이란
효율적인 유지 보수를 위해 Model - View - Controller
로 애플리케이션을 구분한 개발 방법론.
사용자가 입력을 담당하는 View를 통해 요청을 보내면
해당 요청을 Controller가 받고, Controller는 Model을 통해 데이터를 가져오고,
해당 데이터를 바탕으로 출력을 담당하는 View를 제어해서 사용자에게 전달한다.
Model
어플리케이션이 무엇을 할 것인지 정의하는 컴포넌트.
내부 비즈니스 로직을 처리하기 위한 역할.
데이터 저장소와 연동해 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룸. 특히, 여러 개의 데이터 변경 작업(ex. 추가, 변경, 삭제)을 하나의 작업으로 묶은 트랜잭션을 다루는 일도 한다.
다른 컴포넌트에 대해 알지 못한다. 자기 자신이 무엇을 수행하는지만 알고 있다.
View
최종 사용자에게 무엇을 화면(UI)으로 보여주는 컴포넌트.
화면에 무엇을 보여주기 위한 역할.
모델이 처리한 데이터나 그 작업 결과를 가지고 사용자에게 출력할 화면을 만듦. 만든 화면은 웹 브라우저가 출력함.
다른 컴포넌트에 대해 알지 못한다. 자기 자신이 무엇을 수행하는지만 알고 있다.
Controller
Model과 View 사이에 있는 컴포넌트.
Model이 데이터를 어떻게 처리할지 알려주는 역할.
클라이언트의 요청을 받으면 해당 요청에 대한 실제 업무를 수행하는 Model을 호출.
이 때, 클라이언트가 보낸 데이터가 있다면 모델을 호출할 때 전달하기 쉽게 적절히 가공함.
Model이 업무 수행을 완료하면 그 결과를 가지고 화면을 생성하도록 View에 전달함. 즉, 클라이언트의 요청에 대해 Model과 View 결정해 전달.
다른 컴포넌트에 대해 알고 있다. MVC 패턴에서 Controller만이 자기 자신 외에 Model과 View가 무엇을 수행하는지 알고 있다.
Controller는 어플리케이션 흐름을 제어함.
InputView를 통해 사용자로부터 입력을 받고, Model을 통해 내부 비즈니스 로직을 처리하고, OutputView를 통해 사용자에게 화면을 출력함.
그런데 디자인 패턴이기 때문에 사실 정해진 규칙이나 구현 방법은 없고 그 자체를 이해하자.
MVC 패턴의 목적은 ‘효율적인 유지 보수’고, 뷰와 도메인의 관심사를 분리하는 디자인 패턴이다.
Leave a comment