1. 디자인 패턴
디자인 패턴이란 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션 같은 것이다. 디자인 패턴 계의 교과서로 불리는 [GoF의 디자인 패턴] 에서는 객체지향적 디자인 패턴의 카테고리를 "생성 패턴 (Creational Pattern)" , "구조 패턴(Structural Pattern)", "행위 패턴(Behavioral Pattern)" 3가지로 구분하고 있다.
2. MVC 패턴
보통 웹 프로젝트에서 많이 사용되었던 패턴이다. 하나의 프로그램 로직을 Model, View, Controller 역할로 구분하여 구현하는 디자인 패턴을 말한다.
위 사진과 같이
- 사용자가 Controller 를 조작하면
- Controller 는 Model을 통해서 데이터를 가져오고
- 그 정보를 바탕으로 시작적인 표현을 담당하는 View를 제어하여 사용자에게 전달한다.
밑의 사진과 같이 Controller 가 View에게 영향을 미치는 경우도 있다.
(1) 모델 (Model)
소프트웨어나 애플리케이션에서 정보 및 데이터 부분을 의미한다.
그리고 Controller 에게 받은 데이터, 정보를 조작(가공하는)을 가공하는 역할을 수행한다.
즉, 데이터와 관련된 부분을 담당하며 값과 기능을 가지는 객체라고 보면 된다.
(2) 뷰 (View)
입력값이나 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다.
Controller에게 받은 Model의 데이터를 사용자에게 시각적으로 보여주기 위한 역할을 수행한다.
즉, 데이터 및 객체의 입력, 데이터를 기반으로 사용자들일 볼 수 있는 화면을 출력해주는 담당이다.
(3) 컨트롤러 (Controller)
Model 과 View 사이에서 데이터 흐름을 제어한다. 사용자가 접근한 URL에 따라 요청을 파악하고 URL에 적절한 Method를 호출하여 Service에서 비즈니스 로직을 처리한다. 이 후 결과를 Model에 저장하여 View에게 전달하는 역할을 수행한다.
즉, Controller는 Model과 View의 역할을 분리하는 중요한 요소이다.
3. 왜 MVC 패턴을 사용해야 할까
서로 분리되어 각자의 역할에 집중할 수 있게 개발을 한다면 유지보수성, 애플리케이션의 확장성, 유연성이 증가하고, 중복코딩의 문제점이사라진다.
'Knowledge > 이론' 카테고리의 다른 글
정규화 & 비정규화 (0) | 2024.03.04 |
---|---|
SQL 명령어 (0) | 2024.03.04 |
인덱스 (1) | 2024.02.25 |
RESTful API (0) | 2024.02.25 |
브라우저의 렌더링 과정 (0) | 2024.02.20 |