거북목개발자
MVC Architecture 본문
디자인패턴
디자인 패턴이란?
프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여
특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말한다.쉽게 말해, 좀 더 쉽고 편리하게 사용할 수 있도록 만든 특정한 방법들을 디자인 패턴이라고 한다.
MVC 패턴이란?
MVC 패턴은 디자인 패턴 중 하나이다.
MVC란 Model, View, Controller의 약자로 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다.
위의 그림처럼 사용자가 Controller를 조작하면 Controller는 Model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는
View를 제어해서 사용자에게 전달하게 된다.Model (백그라운드에서 동작하는 비즈니스 로직(데이터) 처리)
Application의 정보, Data와 같이 Database, 처음에 정의하는 상수, 초기화 값, 변수 등을 뜻한다.
또한, 이러한 Data, 정보들의 가공을 책임지는 컴포넌트를 말한다.
View (정보를 화면으로 보여주는 역할)
Input text, Check box 항목 등과 같은 사용자 인터페이스 요소를 나타낸다. 다시 말해 데이터 및 객체의 입력, 보여주는 출력을 담당한다.
Data를 기반으로 사용자들이 볼 수 있는 화면이다.
Controller (사용자의 입력 처리와 흐름 제어 담당. 화면과 Model과 View를 연결시켜주는 역할)
데이터와 사용자 인터페이스 요소들을 잇는 다리 역활을 한다.
사용자가 데이터를 클릭하고, 수정하는 것에 대한 이벤트 들을 처리하는 부분을 뜻한다.
MVC 패턴 동작 순서
- 사용자의 Action들은 Controller에 들어오게 된다.
- Controller는 사용자의 Action을 확인하고, Model 을 업데이트 한다.
- Controller는 Model을 나타내줄 View를 선택한다.
- View는 Model을 이용하여 화면에 나타낸다.
MVC 패턴 사용 이유?
- 사용자가 보는 페이지, 데이터처리, 그리고 이 2가지를 중간에서 제어하는 컨트롤, 이 3가지로 구성해 하나의 애플리케이션을 만들면 각각 맡은바에만 집중을 할 수 있게 되어 효율적이게 된다.
- 비즈니스 로직과 UI로직을 분리하여 유지보수를 독립적으로 수행가능
- Model과 View가 다른 컴포넌트들에 종속되지 않아 애플리케이션의 확장성, 유연성에 유리함
- 중복 코딩의 문제점 제거
MVC 패턴의 장점?
- 유연하고 확장하기 쉽다.
- 디자이너와 개발자의 협업이 용이하다.
- 유지보수 비용을 절감할 수 있다.
MVC 패턴의 단점?
- 기본 기능 설계를 위해 클래스들이 많이 필요하기 때문에 복잡할 수 있다.
- 설계시간이 오래 걸리고 숙련된 개발자가 필요하다.
- Model과 View의 의존성이 높아 Model과 View의 완벽한 분리가 어렵고 Model과 View의 높은 의존성은 Application이 커질수록 복잡해지고 유지보수가 어려워진다.
MVC패턴에서 View는 Controller에 연결되어 화면을 구성하는 단위 요소이므로 다수의 View를 가질 수 있습니다. 그리고 Model은 Controller를 통해서 View와 연결되지만, Controller에 의해서 하나의 View에 연결될 수 있는 Model도 여러 개가 될 수 있어 View와 Model이 서로 의존성을 띄게 됩니다. 즉, Controller에 다수의 Model과 View가 복잡하게 연결되어 있는 상황이 발생할 수 도 있습니다.
MVC 패턴의 의의?
- MVC 패턴은 결국 어떻게 나눌 것인가에 대한 해답 중 하나이다.
- 어떤 특정한 역할들에 대해 역할 분담을 할 때 가이드라인을 제시하는 방법 중 하나가 바로 MVC 패턴인 것이다.
예상 질문
MVC 패턴이란?
MVC 패턴을 사용하는 이유는?
MVC 패턴의 장단점?
참고링크
https://m.blog.naver.com/jhc9639/220967034588
https://server-engineer.tistory.com/167
https://cocoon1787.tistory.com/733
'Etc' 카테고리의 다른 글
[SSAFY/싸피] 삼성 청년 SW 아카데미 8기 전공자 합격 후기 (0) | 2022.12.18 |
---|---|
멋쟁이 사자처럼(BACK-END SCHOOL 1기) 지원 회고록 (0) | 2022.06.18 |