MVC 패턴

sen·2022년 12월 2일
0

출처: 우아한Tech 유튜브 10분 테코톡, 인프런 질문 (링크)

MVC 패턴

Model - View - Controller 로 구성된 디자인 패턴

  • Model: 데이터와 관련된 일을 하는 곳
  • View: 사용자한테 보여지는 부분을 담당하는 곳
  • Controller: model과 view를 중개하는 곳

흐름

  1. 사용자는 원하는 기능을 처리하기 위한 모든 요청을 controller에 보낸다.
  2. controller는 model을 사용하고, model은 알맞은 비즈니스 로직*을 수행한다.
  3. controller는 사용자에게 보여줄 view를 선택한다.
  4. 선택된 view는 사용자에게 알맞은 결과 화면을 보여준다. 이 때 사용자에게 보여줄 데이터는 controller를 통해 전달받는다.

사용 이유

  • 각 컴포넌트의 코드 결합도를 낮추기 위해
  • 코드의 재사용성을 높이기 위해
  • 구현자들간의 커뮤니케이션 효율성을 높이기 위해

규칙

1. model은 controller와 view에 의존하지 않아야 한다.

model 내부에 controller와 view에 관련된 코드가 있으면 안 된다.

2. view는 model에만 의존해야 하고, controller에는 의존하면 안 된다.

view 내부에 model의 코드만 있을 수 있고, controller의 코드가 있으면 안 된다.

3. view가 model로부터 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야 한다.

4. controller는 model과 view에 의존해도 된다.

controller 내부에는 model과 view의 코드가 있을 수 있다.

5. view가 model로부터 데이터를 받을 때, 반드시 controller에서 받아야 한다.

+ Service

컨트롤러같은 웹 계층이 없어도 애플리케이션이 동작해야 합니다.
컨트롤러는 웹 계층을 처리하기 위한 코드만 존재하는 것이 좋습니다.

비즈니스 로직은 model, 정확히는 model의 service에서 처리한다. model은 DAO, DTO, service로 이루어져 있다.

* 비즈니스 로직: 컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성·표시·저장·변경하는 부분을 일컫는다.

profile
𝙝𝙞 𝙩𝙝𝙚𝙧𝙚 😎

0개의 댓글