MVC 패턴에 대하여

조성원·2023년 4월 10일
0

1. MVC 패턴이란?

MVC 패턴은
Model, View, Controller로 구성된 디자인 패턴입니다.

하나의 애플리케이션, 프로젝트를 구성할 때
필요한 구성요소를 세 가지의 역할로 구분한 패턴입니다.

1-1. MVC의 작동원리

  1. 사용자가 Controller를 조작하면
  2. Controller는 Model을 호출하고,
  3. Model은 데이터를 조작하여 Controller에 반환합니다.
  4. Controller는 Model이 반환한 데이터를 View에 전달하고,
  5. View를 통해 데이터가 사용자에게 보여지게 됩니다.

2. MVC의 구성요소

2-1. 모델(Model)

모델은
애플리케이션의 데이터를 조작하는 역할을 합니다.

규칙으로는
1. 애플리케이션에 있어야 하는 모든 정보를 갖고 있어야 합니다.
2. 데이터의 조작을 직접 할 수 있도록, 뷰나 컨트롤러의 값을 참조하지 않아야 합니다.
3. 데이터의 변경이 일어날 경우, 이를 알릴 방법을 구현해야 합니다.

2-2. 뷰(View)

뷰는
사용자 인터페이스 요소를 나타내는 역할로,
컨트롤러와 모델로 인해 구성된 화면을 출력합니다.

규칙으로는
1. 모델이 가지고 있는 정보를 갖고 있어서는 안됩니다.
2. 뷰나 컨트롤러의 값이나 구성 요소를 참조하지 않아야 합니다.
3. 데이터의 변경이 일어날 경우, 이를 알릴 방법을 구현해야 합니다.

2-3. 컨트롤러(Controller)

컨트롤러는
데이터를 조작하는 모델과
사용자 인터페이스를 나타내는 뷰 사이에서
데이터를 받고 보낼 수 있도록 이어주는 역할을 합니다.

규칙으로는
1. 모델과 뷰의 값이나 구성요소에 대해서 알고 있어야 합니다.
2. 모델과 뷰에서의 데이터 변경을 모니터링 해야합니다.

3. MVC 패턴을 사용하는 이유

MVC 패턴은 모델, 뷰, 컨트롤러로
서로 분리되어 각자의 역할에 집중할 수 있게 구성되어 있기 때문에
코드의 가독성과 유지보수성
애플리케이션의 확장성 및 유연성이 증가할 수 있습니다.

이러한 장점 덕분에
Angular.js, Python Django와 같은 프레임워크에서 사용되고 있습니다.

4. MVC 패턴의 한계와 해결책

MVC 패턴은 세 가지 구성요소가 서로 데이터를 주고 받는
양방향 데이터흐름을 가지고 있기 때문에
기능을 추가하면 추가할수록 그 복잡성이 기하급수적으로 증가한다는 한계에 부딫혔습니다.
이는 결국 애플리케이션의 확장성 및 유지보수성 등에
비효율적인 영향을 미치기 때문에 개선의 필요성이 나타났습니다.

이를 해결하기 위해 나온 단방향 데이터 흐름을 제어하는 패턴이 FLUX 패턴입니다.

profile
IT 트렌드에 관심이 많은 프론트엔드 개발자

0개의 댓글