MVC 패턴 정의
MVC
(모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다.
MVC는 어플리케이션을 세가지 역할로 구분한 개발 방법으로, MVC 패턴을 사용하면 변경에 유리하다는 장점이 있습니다.
Model
- 데이터와 비즈니스 로직을 관리합니다.
- 앱이 포함해야할 데이터가 무엇인지를 정의합니다.
View: model을 보여주기 위한 화면
- 레이아웃과 화면을 처리합니다.
- 뷰는 앱의 데이터를 보여주는 방식을 정의합니다.
Controller: view와 model의 매개체
- 명령을 모델과 뷰 부분으로 라우팅합니다.
- 컨앱의 사용자로부터의 입력에 대한 응답으로 모델 및/또는 뷰를 업데이트하는 로직을 포함합니다.
Web에서의 MVC

<사진 출처: 위키백과>
- 사용자가 웹사이트에 접속한다. (Uses)
- Controller는 사용자가 요청한 웹페이지를 서비스 하기 위해서 모델을 호출한다. (Manipulates)
- 모델은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후에 그 결과를 리턴한다.
- Controller는 Model이 리턴한 결과를 View에 반영한다. (Updates)
- 데이터가 반영된 VIew는 사용자에게 보여진다. (Sees)
MVC 패턴 사용하는 이유
DTO vs Model
Spring에서의 Controller
Controller랑 Service를 분리한 이유
Service vs DAO
DAO vs JPA
Repository
결론
참고자료
MDN
위키백과
생활코딩