MVC란?
MVC는 Model, View, Controller를 뜻합니다.
Model, View, Controller가 각각 역할을 나누어 프로그래밍을 수행하는 일종의 디자인 패턴입니다.
Model
Model은 쉽게 말해 DAO와 DTO같은 것입니다.
프로그램이 수행되기 위해 필요한 객체, 규칙입니다.
개념적이고 기본적인 구조를 정의하는 것입니다.
- Model은 모든 데이터를 가지고 있어야 합니다.
- View나 Controller에 대해 Model은 알 수 없습니다.
View
View는 사용자에게 보여지는 화면을 뜻합니다. 입력, 출력을 수행할 수 있습니다.
어떤 로직은 존재하지 않고 화면에 나타내는 것이 View의 주 목적입니다.
- 정보를 저장하면 안 됩니다.
- View나 Controller에 대해 Model은 알 수 없습니다.
Controller
Controller는 프로그램을 제어하고 Model과 View를 연결시켜주고 관리합니다.
Model(데이터)와 View(화면)만 있어서는 프로그램이 동작하지 않습니다.
Controller가 중개자, 명령자 역할을 수행하며 프로그램을 이끌어간다고 볼 수 있습니다.
- Model이나 View에 대해 알고 있어야 하며 지속적으로 관리해야 합니다.
위의 세 가지 요소가 서로 영향을 주고 받으며 동작하는 것이 MVC 패턴입니다.
Spring MVC의 동작 순서
Spring MVC를 그림으로 나타내 보았습니다. 아래에 숫자별로 의미하는 동작을 적어두었으니 참고해주세요
1. Client의 요청이 들어옴
2. URL과 매핑되는 Controller 조회
3. URL과 매핑되는 Controller 반환
4. 해당 Controller의 로직 처리 요청
5. 비즈니스 로직 처리 요청
6. 비즈니스 로직 수행
7 & 8. 비즈니스 로직 결과 반환
9. 올바른 View 이름으로 변환
10. Controller가 반환한 View를 검색
11. View가 있다면 반환, 없다면 생성 후 반환
12. View 객체에 화면 표시 요청
13. Rendering 후 Client에게 반환 (화면에 표시됨)
+ Dispatcher Servlet은 Front Controller라고도 불립니다!
MVC의 개념과 동작 원리에 대해 조금이라도 알아가셨으면 좋겠습니다.
감사합니다 😀
참고한 자료
Spring MVC 동작 순서
https://jinyoungchoi95.tistory.com/31
https://velog.io/@gillog/Spring-MVC-%EA%B5%AC%EC%A1%B0
MVC
https://velog.io/@josworks27/MVC-%EB%AA%A8%EB%8D%B8-%EA%B0%9C%EB%85%90
'Framework & Library > Spring' 카테고리의 다른 글
[Spring] Spring Framework 개념, 특징 (1) | 2021.07.01 |
---|