이 글은 우아한테크의 10분 테크톡을 참고하여 작성하였습니다.
MVC가 생겨난 이유??
기능을 수정하거나 추가할 때마다 코드를 유지보수하기가 힘들었었다.
MVC: 유지보수가 편해지는 코드 구성방식
Model: 데이터와 관련된 일을 하는 곳
Controller: Model과 View의 중계자역할
View: 사용자에게 보여지는 부분을 담당하는 곳
MVC 패턴을 지키면서 코딩하는 방법
1.Model은 Controller와 View에 의존하지 않아야 한다.
(Model 내부에 Controller와 View에 관련된 코드가 있으면 안된다.)
(데이터에 관련된 코드만 모아둠)
ex) Model 클래스

2. View는 Model에만 의존해야하고, Controller에는 의존하면 안된다.
(View 내부에 Model의 코드만 있을 수 있고, Controller의 코드가 있으면 안된다.)
parameter으로 student가 있는데 model코드 이므로 있어도 상관 x

3. View가 Model로부터 데이터를 받을때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야 한다.


빨간색부분: 사용자들마다 다르게 보여줘야하는 부분들
정리하자면 View는 사용자들에게 보이는 UI와 Model로부터 받은 데이터가 합쳐져 만들어진 화면
예를들면 “주문하기”, “배달정보” , “흰색바탕”은 Model로부터 정보를 받으면 안되고 View가 자체적으로 갖고 있어야 하는 정보들
4. Controller내부에는 Model과 View에 의존해도 된다.
(Controller내부에는 Model과 View의 코드가 있을 수 있다)

Controller은 Model과 View의 중개자 역할을 하면서 전체 로직을 구성하기 때문
5. View가 Model로부터 데이터를 받을 때, 반드시 Controller에서 받아야한다.
'Backend > Spring Boot' 카테고리의 다른 글
stub는 언제 사용할까? (0) | 2023.07.26 |
---|---|
@WebMvcTest 란?, 가짜로 등록한다는 것의 의미? (0) | 2023.07.26 |
[Spring] JSON 이란? (+@RequestBody, @ResponseBody) (0) | 2023.06.23 |