개인적으로 공부하면서 기록하는 공간으로
잘못된 정보는 댓글을 통해 알려주시면 감사하겠습니다 :-)
MVC (Model - View - Controller)
MVC는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴으로, 애플리케이션을 세 가지 역할로 구분한 개발 방법론이다.
사용자가 Controller를 조작하면 → Controller는 Model을 통해서 Data를 가져오고 → 그 정보를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달하게 된다.
MVC 패턴을 사용하는 이유
- 비즈니스 로직과 UI 로직을 분리하여 유지보수를 독립적으로 수행가능
- Model과 View가 다른 컴포넌트들에 종속되지 않아 애플리케이션의 확장성, 유연성에 유리함
- 중복 코딩의 문제점 제거
WEB에서의 MVC 패턴
① 사용자가 웹사이트에 접속한다.
② Controller 는 사용자가 요청한 웹페이지를 서비스하기위해 모델을 호출한다.
③ 모델은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후에 그 결과를 리턴한다.
④ Controller는 Model이 리턴한 결과를 View에 반영한다.
⑤ 데이터가 반영된 View는 사용자에게 보여진다.
컨트롤러 (Controller)
사용자가 접근한 URL에 따라서 사용자의 요청사항을 파악한 후에 그 요청에 맞는 데이터를 Model에 요청하고, 데이터를 View에 반영하여 사용자에게 알려준다.
Controller의 규칙
1) 모델이나 뷰에 대해서 알고 있어야 한다.
2) 모델이나 뷰의 변경을 모니터링 해야 한다.
모델 (Model)
데이터를 가진 객체의 모델이라고 지칭한다. 데이터는 내부의 상태에 대한 정보를 가질 수도 있고, 모델을 표현하는 이름 속성으로 가질 수 있다. 모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. 이와 같은 통보를 통해 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가, 제거, 수정할 수 있다.
Model의 규칙
1) 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야만 한다.
2) 뷰(View)나 컨트롤러(Controller)에 대해서 어떤 정보도 알지 말아야한다.
3) 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야 한다.
뷰 (View)
클라이언트 측 기술인 html/css/javascript들을 모아둔 컨테이너 이다.
View의 규칙
1) 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
2) 모델이나 컨트롤러와 같이 다른 구성 요소를 몰라야 된다.
3) 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야 한다.
Reference
✔ https://developer.mozilla.org/ko/docs/Glossary/MVC
✔ https://opentutorials.org/course/697/3828
✔ https://bsnippet.tistory.com/13