MVC패턴과 MVC패턴을 지키는 법
* MVC = 유지보수가 편해지도록 하는 코드 구성 방식. M은 Model, V는 View, C는 Controller를 의미.
흐름
- 사용자가 구글에 단어를 검색
- 단어에 대한 검색 결과를 달라고 Model에게 요청
- 모델이 검색결과 데이터를 찾아서 Controller에게 전달
- 컨트롤러가 View에게 받은 검색 결과 데이터를 전달
- 뷰는 UI에 검색결과 데이터를 넣어서 사용자에게 이쁘게 보여줌
MVC의 역할
- 모델 : 데이터와 관련된 일을 함
- 컨트롤러 : 모델과 뷰 사이에서 중개자 역할을 함
- 뷰 : 사용자에게 보여지는 부분을 담당
(추가)
- Model: 소스 코드로 특정 동작이 수행되는 파트
- View: 우리(사용자)가 보는 화면이다.
- Controller: view의 요청을 받아 model의 상태 변경. 그리고 변경된 상태를 다시 view에 전달.
MVC를 지키면서 코딩하는 방법 5가지
- 모델은 컨트롤러와 뷰에 의존하지 않아야한다. → 즉, 모델 내부에 컨트롤러와 뷰에 관련된 코드가 있으면 안된다.
- 뷰는 모델에만 의존해야하고 컨트롤러에 의존하면 안된다.
- 뷰가 모델로부터 데이터를 받을 때는, 사용자마다 다르게 보여줘야 하는 데이터에 대해서만 받아야 한다. → 뷰는 UI에 모델로부터 받은 데이터를 합쳐서 만들어진 것인데, 이때 모델에게 데이터를 받을 때는 공통적인 데이터를 받아선 안된다. ex. “주문하기” 글씨 / “뒤로가기” 아이콘 / 배경은 하얀색 / 글씨크기, 폰트 .... 등등 이런거는 뷰가 자체적으로 가지고 있어야함.
- 컨트롤러는 모델과 뷰에 의존해도 된다.(컨트롤러 내부에 모델과 뷰에 대한 코드가 있을 수 있다.)
- 뷰가 모델로부터 데이터를 받을 때, 반드시 컨트롤러에서 받아야한다. → 즉, 뷰가 모델로부터 데이터를 받아야 한다면 컨트롤러 코드 내에서만 받아야 한다.
느낀점
MVC는 백엔드를 공부하면서 빠질 수 없는 중요한 개념이다. 이제 공부를 시작하는 단계에서 이걸 얼마나 지킬 수 있을까 의문이 들기도 하는데, 연습을 많이 해야할 것 같다. 게시판을 만들어봤을 때도 model, controller, view 패키지를 각각 만들어서 진행했던 것을 떠올리며 연습해보자
'Spring' 카테고리의 다른 글
spring security - 인증 방식에 따른 차이 (세션과 토큰방식) (0) | 2023.01.03 |
---|---|
WelcomePage란? (0) | 2022.12.11 |
서블릿이란? (퍼옴) (0) | 2022.12.08 |
API란 무엇인가 (+REST API) (0) | 2022.11.22 |
spring security란 (0) | 2022.11.21 |