출처: 우아한Tech 유튜브 10분 테코톡, 인프런 질문 (링크)
Model - 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에서 받아야 한다.
컨트롤러같은 웹 계층이 없어도 애플리케이션이 동작해야 합니다.
컨트롤러는 웹 계층을 처리하기 위한 코드만 존재하는 것이 좋습니다.
비즈니스 로직은 model, 정확히는 model의 service에서 처리한다. model은 DAO, DTO, service로 이루어져 있다.
* 비즈니스 로직: 컴퓨터 프로그램에서 실세계의 규칙에 따라 데이터를 생성·표시·저장·변경하는 부분을 일컫는다.