728x90
MVC모델이란?
MVC는 Web 프레임워크에서 일반적으로 다뤄지지고 있는 어플리케이션 설정을 정리하기 위한 개념의 하나로 Model, View, Controller로 역할을 분리하여 코딩하는 모델을 일컫는다. 각각의 역할은 다음과 같다.
- Model : 시스템에서 비즈니스 모델을 담당한다.
- View : 표시나 입출력을 처리한다.
- Controller : 유저의 입력을 바탕으로 Model과 View를 제약한다.
그림으로 표시하면 다음과 같다.
Model은 본래 한 묶음의 데이터를 처리하는 부품으로, 그 성질 때문에 내부가 복잡한 기능이 포함된 구현, 여러 메소드나 속성에 접근할 수 있게 되어 있으며, 하나가 아닌 여러 개의 View 클래스의 필요한 데이터에 대응하는 것이 일반적이다. 따라서 View가 직접 Model을 참조하는 것은 View가 자신에게 필요로 하지 않는 속성이나 메소드에 접근할 수 있게 되어버리는 문제가 있다. 이러한 이유로 View가 Model을 직접 참고하는 것은 별로 좋지 않다.
MVC 모델의 처리 흐름
유저가 어떤 것을 입력했을 경우의 처리 흐름에 대해서 살펴보면 MVC모델에 대해 더욱 잘 이해가 될 것이다.
Controller는 Model과 View의 조작만을 기재하면 되므로 거대화를 회피할 수 있으며, View는 받은 데이터를 표시하는 것이 아닌 Model을 참조하여 Model 내의 데이터 상태를 표시한다.
MVC 모델의 장점과 단점
장점은 아래 두 가지이다.
- 기능마다 역할을 나눠 효율적으로 어플리케이션 개발을 할 수 있다.
- 각각 독립되어 있으므로 변경, 수정이 있어도 다른 곳에서 그에 따른 영향을 받지 않는다.
반면에 단점은 아래 두 가지이다.
- 정보 데이터의 관리가 힘들다.
- View와 Controller의 의존성이 높다.
참고자료
728x90
'IT > WEB' 카테고리의 다른 글
좋지 않은 Repository 패턴(안티패턴) (0) | 2023.02.02 |
---|---|
SPA, SSR, SSG는 무엇인가? (0) | 2023.01.24 |
Node.js를 사용하는 이유 (3) | 2022.10.06 |
REST API란? (0) | 2022.10.04 |
[Django] Django에서 static file(정적파일) 다루기 (0) | 2022.07.21 |