MVC pattern(Model-View-Controller)
- 유지보수가 편해지는 코드 구성 방식디렉토리 구조
- 소프트웨어를 설계하고 구현하는 데 사용되는 디자인 패턴
- 응용 프로그램을 세 가지 주요 구성 요소로 분할하여 개발을 단순화하고 유지 보수성을 향상시킨다.
- 각 구성 요소는 역할에 따라 분리되어 있으며, 서로 간섭 없이 독립적으로 작동한다.
M(Model) : 데이터
- 모델은 응용 프로그램의 데이터 및 비즈니스 로직을 나타낸다.
- 데이터베이스에서 데이터를 가져오거나 업데이트하고, 데이터의 유효성을 검사하거나 데이터를 가공하는 등의 작업을 처리
- 모델은 주로 데이터베이스와 직접 상호 작용하며, 데이터베이스 스키마에 대한 정의와 일치하는 형태로 데이터를 표현
V(View) : 사용자에게 보여지는 부분, 클라이언트
- 뷰는 사용자 인터페이스(UI)를 나타낸다.
- 사용자가 데이터를 시각적으로 볼 수 있도록 모델의 데이터를 표시
- HTML, CSS, JavaScript 등의 웹 기술을 사용하여 웹 응용 프로그램에서 UI를 구현하거나, 모바일 앱에서 UI를 구성
C(Controller) : Model과 View를 이어주는 부분
- 컨트롤러는 모델과 뷰 간의 상호 작용을 관리하고 제어
- 사용자의 입력을 처리하고, 그에 따라 모델을 업데이트하거나 뷰를 갱신
- 요청을 받아서 적절한 모델 메소드를 호출하고, 그 결과를 바탕으로 적절한 뷰를 선택하여 렌더링
MVC의 5가지 원칙
-
Model은 Conroller와 View에 의존하지 않아야 한다.
(Model내부에 Controller와 View에 관련된 코드가 있으면 안된다.)
-
View는 Model에만 의존해야 하고, Controller에 의존하면 안된다.
(View내부에 Model의 코드만 있을 수 있고, Controller의 코드가 있으면 안된다.)
-
View가 Model로 부터 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야 한다.
-
Controller는 Model과 View에 의존해도 된다.
(Controller 내부에는 Model과 View의 코드가 있을 수 있다.)
-
View가 Model로부터 데이터를 받을 때, 반드시 Controller에서 받아야 한다.
[참고] https://www.youtube.com/watch?v=ogaXW6KPc8I