MVC 패턴이란?

HOSEON YOO·2023년 11월 9일
1

개요

우아한테크코스 백엔드 6기 프리코스 4주차에 접어들었다. 프리코스 커뮤니티에서 다른 지원자분들이 작성한 코드를 구경했는데 대다수 지원자분들이 MVC 패턴이라는 디자인 패턴을 이용하고있었다. 그렇다면 왜 MVC 패턴을 주로 사용하는걸까? MVC 패턴의 필요성에대해 알아보고 4주차 미션에는 이를 적용해보고자한다.

MVC 패턴이란?

MDN Web Docs에 나와 있는 내용을 쉽게 요약해보자면 MVC 패턴은 유지보수를 편하게 하기 위해 소프트웨어 비즈니스 로직과 화면의 관심사를 분리하여 아래와 같이 역할을 나눈다.

  1. Model : 데이터와 비즈니스 로직을 관리한다.
  2. View : 레이아웃과 화면을 처리한다.
  3. Controller : 모델과 뷰로 명령을 전달한다.

MVC 패턴 예시

가장 많이 사용하는 구글 검색을 예로 들어보자.

  1. 구글에서 User가 검색한 데이터는 Controller로 전송된다.
  2. Controller는 Model에게 User가 검색한 데이터에 대한 결과 데이터를 요청한다.
  3. Model은 Controller에게 결과 데이터를 반환한다.
  4. Controller는 View에게 결과 데이터를 반환한다.
  5. View는 User에게 결과 데이터를 반영한 화면을 반환한다.

MVC 패턴을 지키면서 코드 작성하기

MVC 패턴은 이해했지만, 이것을 실제로 개발하면서 어떻게 적용해야 되는지 감이 잡히지 않았다. 구글링을 해보니 우아한테크 유튜브 채널의 [10분 테크톡] 🧀 제리의 MVC 패턴 영상이 있었다. 2년 전의 영상이지만 MVC 패턴에 대해 정말 쉽게 설명을 해주신다. 꼭 한번 시청해보는 것을 추천한다.

MVC 패턴을 지키면서 코딩하는 규칙은 제리님의 영상을 참고하였다.

1. Model은 Controller와 View에 의존하지 않아야 한다.(Model 내부에 Controller와 View에 관련된 코드가 있으면 안 된다.)
2. View는 Model에만 의존해야 하고 Controller에는 의존하면 안 된다.(View 내부에 Model의 코드만 있을 수 있고 Controller의 코드가 있으면 안 된다.)
3. View가 Model로부터 데이터를 받을 때는, User마다 다르게 보여주어야 하는 데이터에 대해서만 받아야 한다.
4. Controller는 Model과 View에 의존해도 된다.(Controller 내부에는 Model과 View의 코드가 있을 수 있다.)
5. View가 Model로부터 데이터를 받을 때, 반드시 Controller에서 받아야 한다.

참고자료

profile
안녕하세요~ 👋, 대한민국 개발자 유호선입니다.

0개의 댓글