본문 바로가기
  • 시 쓰는 개발자
Spring

MVC패턴과 MVC패턴을 지키는 법

by poetDeveloper 2022. 10. 20.

MVC패턴과 MVC패턴을 지키는 법

 

* MVC = 유지보수가 편해지도록 하는 코드 구성 방식. M은 Model, V는 View, C는 Controller를 의미.

 

흐름

MVC 패턴 흐름

  • 사용자가 구글에 단어를 검색
  • 단어에 대한 검색 결과를 달라고 Model에게 요청
  • 모델이 검색결과 데이터를 찾아서 Controller에게 전달
  • 컨트롤러가 View에게 받은 검색 결과 데이터를 전달
  • 뷰는 UI에 검색결과 데이터를 넣어서 사용자에게 이쁘게 보여줌

 

좀 더 구체적인 MVC 과정

 

MVC의 역할

  • 모델 : 데이터와 관련된 일을 함
  • 컨트롤러 : 모델과 뷰 사이에서 중개자 역할을 함
  • 뷰 : 사용자에게 보여지는 부분을 담당

(추가)

  • Model: 소스 코드로 특정 동작이 수행되는 파트
  • View: 우리(사용자)가 보는 화면이다.
  • Controller: view의 요청을 받아 model의 상태 변경. 그리고 변경된 상태를 다시 view에 전달.

 

MVC를 지키면서 코딩하는 방법 5가지

  1. 모델은 컨트롤러와 뷰에 의존하지 않아야한다. → 즉, 모델 내부에 컨트롤러와 뷰에 관련된 코드가 있으면 안된다.
  2. 뷰는 모델에만 의존해야하고 컨트롤러에 의존하면 안된다.
  3. 뷰가 모델로부터 데이터를 받을 때는, 사용자마다 다르게 보여줘야 하는 데이터에 대해서만 받아야 한다. → 뷰는 UI에 모델로부터 받은 데이터를 합쳐서 만들어진 것인데, 이때 모델에게 데이터를 받을 때는 공통적인 데이터를 받아선 안된다. ex. “주문하기” 글씨 / “뒤로가기” 아이콘 / 배경은 하얀색 / 글씨크기, 폰트 .... 등등 이런거는 뷰가 자체적으로 가지고 있어야함.
  4. 컨트롤러는 모델과 뷰에 의존해도 된다.(컨트롤러 내부에 모델과 뷰에 대한 코드가 있을 수 있다.)
  5. 뷰가 모델로부터 데이터를 받을 때, 반드시 컨트롤러에서 받아야한다. → 즉, 뷰가 모델로부터 데이터를 받아야 한다면 컨트롤러 코드 내에서만 받아야 한다.

 

느낀점

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