MVC패턴

·2023년 10월 24일

🎯개발지식

목록 보기
3/7

💡MVC패턴이란?

  • 과거 규칙없는 코드들로인한 가독성과 유지보수의 문제로 코드의 기능별 패턴을 나누게 되며 생기게 되었습니다.

  • 애플리케이션의 구성 요소를 세 가지 역할(Model-View-Controller)로 구분해 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있도록 한 패턴(시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.)

  • 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴


💡MVC패턴의 특징

1. Model(데이터를 처리하는 역할)

  • 사용자가 원하는 데이터를 모든 데이터를 담고 있어야한다.(애플리케이션의 데이터인 데이터베이스, 상수, 변수 등)

  • View와 Controller에 대해 어떤 정보도 알고 있으면 안된다(의존하지 않는다).

  • Model은 데이터를 저장하는 역할로 데이터를 가져오거나 보내는 기능수행(Getter, Setter)


2. View(시각적으로 보여는 주는 역할)

  • 시각적인 부분으로 화면을 담당한다.(Html와 같음)

  • 필요한 데이터를 Model에서 받아온다

  • Model에 있는 정보를 저장하지 않으며 Controller을 통해 데이터를 요청한다


3. Controller(데이터의 흐름 관리 역할)

  • Model과 View를 연결해주는 역할

  • 사용자의 요청에 따라 요청에 맞는 Model의 데이터를 의뢰하고 데이터를 View에 반영하여 사용자에게 알려준다.

  • 메인 객체들의 조합을 통해 프로그램의 작동 순서나 방식을 제어합니다.

  • View와 Model이 각각 어떤 역할과 책임이 있는지 알고 있어야합니다.

  • View로부터 사용자의 action을 받아 Model에게 어떤 작업을 해야하는지 알려주거나 Model의 데이터 변화를 View에게 전달하여 View를 어떻게 업데이트할지 알려줍니다.


💡MVC패턴의 규칙

  1. Model은 Controller와 View에 의존하지 않는다.(Model은 독립적인 존재로 내부에서 Controller와 View의 관련된 코드가 있으면 안된다)

  2. View는 Model의 상태에만 의존해야하고 Contoller에는 의존하면 안된다.(5번 참조) (View내부에 Model의 상태코드만 사용할 수 있고 Controller의 코드가 있으면 안된다.)

  3. View가 Model로부터 데이터를 받을때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야한다.
    (이름, 주소, 나이같은 것 은 Model에 있어야하고 주문받기 텍스트, 배경 색상 정보코드와같이 일관된 내용은 View내부에서만 존재해야한다)즉 View는 만들어진 ui와 모델로부터 받은 데이터가 합쳐져서 만들어진 화면이다.

  4. Controller는 Model과 View에 의존해도 된다.(Controller내부에는 Model과 View의 코드로 중간다리역할을 한다)

  5. View가 Model로부터 데이터를 받을 때, 반드시 Controller에서 받아야 한다.


💡MVC 패턴 흐름

  1. 사용자가 인터넷을 접속하며 View에서 구글을 보여줍니다.
  2. View가 Controller에게 우아한테크코스 검색 요청을 전달한다.
  3. Controller가 Model에게 우아한테크코스 데이터를 요청한다.
  4. Model이 Controller에게 검색 결과를 반환한다.
  5. Controller가 View에게 검색 결과를 돌려준다.
  6. View가 사용자에게 검색 결과를 보여준다.

참고자료

0개의 댓글