티스토리 뷰

알면 조흔 지식

MVC 패턴

민트초코수장 2020. 12. 16. 20:02

앱을 본격적으로 만들기 전에 사용할 소프트웨어 디자인의 패턴인 MVC를 알아보려 합니다.

 


 

1. 개념

 

MVC는 Model, View, Controller의 약자로

사용자 인터페이스와 데이터 및 논리 제어를 구현할 때 자주 사용하는 소프트웨어 디자인 패턴입니다.

MVC를 기반으로 둔 MVVM, MVP, MVW 등이 있지만 일단 MVC부터 알아야되기 때문에 공부해보았습니다.

 

일단 저희가 앱을 사용할 때를 생각해보겠습니다.

웹사이트를 들어가면 UI가 바로 뜨는 것처럼 보이지만 안에서는 아래의 순서로 바쁘게 움직이고 있습니다. 🏃‍♂️🏃‍♂️

 

1. 사용자가 사이트로 들어옵니다.
2. 사이트를 불러오기 위해 controller가 model을 호출합니다.
3. model은 데이터베이스같은 파일을 제어하여 필요한 값들을 controller로 반환시켜 줍니다.
4. controller는 결과를 view에 반영한 후에 사용자가 수정된 사이트의 UI를 보게 됩니다. 

 

 

2. 각 기능의 특징

 

1. Model

 

모델은 그 애플리케이션의 데이터들을 가지고 있습니다.  ==>   이터베이스!  

 

  • 이용자가 웹사이트를 이용하거나 편집을 하려면 그 데이터들을 가지고 있어야 합니다.
  • 그러므로 데이터들을 책임지는 모델 안에 그런 데이터들이 있어야합니다.
  • 데이터 변경 시 모델에서 화면의 UI를 직접 조정할 수 있도록 뷰나 컨트롤러의 내부 속성 값이 있으면 안됩니다.

2. View

 

뷰는 간단히 UI로 설명할 수 있고 사용자의 인터페이스 요소로 나타냅니다.

사용자가 객체를 입력하거나 그 결과를 출력하는 담당을 맡고 있습니다.

 

  • 모델과 마찬가지로 자신이 아닌 다른 요소들의 내부 속성 값을 알고 있으면 안됩니다.

3. Controller

사용자의 이벤트를 처리하는 역할을 하면서 데이터와 UI를 잇는 다리 역할을 합니다.

 

  • 모델과 뷰와 다르게 모델과 뷰에 관한 것들을 알고 있어야 합니다.
  • 다리 역할을 하는 만큼 모델과 뷰의 변경 사항을 계속 감지하여 다른 요소에게 통지해줘야 합니다.
  • 단순 데이터를 다른 형태로 바꾸는 경우에는 모델을 업데이트 하지 않고 바로 처리도 가능합니다.

 


 

3.  MVC의 사용 범위

여러 개발자들이 MVC의 개념을 몰라도 개발하면서 이 패턴을 많이 사용하셨을 것입니다.

그 정도로 많이 사용하고 있고 개발자의 효율성을 높히기에 좋은 디자인 패턴입니다.

 

 


 

저처럼 이해가 안되서 이 글을 읽고 계신 분들에게 조금이라도 도움이 되셨으면 좋겠습니다!

봐주셔서 감사합니다🙇‍♂️

반응형

'알면 조흔 지식' 카테고리의 다른 글

prototype이 뭘까?  (1) 2020.12.19
Comments