티스토리 뷰
앱을 본격적으로 만들기 전에 사용할 소프트웨어 디자인의 패턴인 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
최근에 올라온 글
최근에 달린 댓글
TAG
- smtp error
- 카카오2018[1차]
- Replace
- JavaScript
- Level 1
- Express
- nodemailer error
- AWS
- 백준 7569 node
- 프로그래머스
- nodejs
- 코드테스트
- slice
- 코딩테스트
- 숫자야구게임
- 로그인
- Split
- 백준
- sort
- GROUP BY
- tolowercase
- 회원가입
- 토마토3차원
- JOIN
- 정규표현식
- 534 error
- left join
- SQL
- 바이러스 dfs
- 백준 7562 node
- Total
- Today
- Yesterday