개발이글스
[Spring] MVC 패턴 본문
MVC 란?
MVC 란 Model-View-Controller 의 약자이다. 애플리케이션을 세가지 역할로 구분한 개발 방법론 입니다.
사용자가 Controller을 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해
시각적 표현을 제어해서 사용자에게 전달하게 됩니다.
이러한 패턴을 성공적으로 사용하면 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시작요소나 그 이면에서 실행되는
비즈니스 로직을 서로 영향없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있게 됩니다.
MVC => 유지보수가 편해지는 코드 구성 방식
Model : 데이터와 관련된 부분
View : 사용자한테 보여지는 부분
Controller : Model과 View를 이어주는 부분
1.Model(모델)
DATA, 정보들의 가공을 책임지는 컴포넌트를 말합니다.
모델은 어플리케이션의 정보, 데이터를 나타냅니다. 데이터베이스, 처음 정의하는 상수, 초기화 값, 변수 등을 뜻합니다.
비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달합니다.
모델은 다음과 같은 규칙을 가지고 있습니다.
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야한다.
- 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야한다.
- 변경이 일어나면 변경 통지에 대한 처리 방법을 구현해야 한다.
2. View(뷰)
사용자에게 보여지는 부분 , 즉 유저 인터페이스를 의미합니다.
MVC 패턴은 여러개의 뷰가 존재할 수 있으며, 모델에게 질의하여 데이터를 전달받습니다. 뷰는 받은 데이터를 화면에 표시해주는 역할을 가지고 있습니다. 모델에게 전달받은 데이터를 별도로 저장하지 않아야 합니다. 사용자가 화면에 표시된 내용을 변경하게 되면 모델에게 전달하여 모델을 변경해야 합니다.
뷰는 다음과 같은 규칙을 가지고 있습니다.
- 모델이 가지고있는 정보를 따로 저장해서는 안됩니다.
- 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야합니다.
- 변경이 일어나면 변경통지에 대한 처리방법을 구현해야만 합니다.
3.Controller(컨트롤러)
Model 과 View 사이를 이어주는 브릿지(Bridge) 역할을 의미합니다.
모델이나 뷰는 서로의 존재를 모르고 있습니다. 변경사항을 외부로 알리고 수신하는 방법만이 있습니다. 컨트롤러는 이를 중재하기 위해 모델과 뷰에 대해서 알고 있어야 합니다. 모델이나 뷰로부터 변경 내용을 통지 받으면 이를 각 구성요소에게 통지해야 합니다. 사용자가 어플리케이션을 조작하여 발생하는 변경, 이벤트 들을 처리하는 역할을 수행합니다.
컨트롤러는 다음과 같은 규칙을 가지고 있습니다.
- 모델이나 뷰에 대해서 알고 있어야합니다.
- 모델이나 뷰의 변경을 모니터링 해야합니다.
'Programming > Spring' 카테고리의 다른 글
[Spring] 스프링부트 Annotation(1) (0) | 2023.01.03 |
---|---|
[Spring] 빌드 툴 - maven (0) | 2023.01.03 |
[Spring] Build Tool (빌드 관리 도구) (0) | 2022.12.29 |
[Spring] Entity & Repository (0) | 2022.09.28 |
[Spring] Spring Framework 란 무엇일까? (0) | 2022.09.16 |