(Design Pattern)MVC 패턴

호두파파·2021년 3월 24일
0

디자인 패턴

목록 보기
1/2

MVC 패턴의 필요성

디자인 패턴을 알기 전에는 하나의 클래스 안에 온갖 코드가 존재했었다. 기능별로 그리고 성격에 따라 아무리 모듈화하였다고 한들, 예를 들어 버튼 컨트롤 이벤트에 온갖 모듈들이 뒤죽박죽 섞여 지저분한 코드로 가득했었다. 이러한 코드는 개발자 본인이 유지보수하기에도 복잡하고, 다른 개발자가 투입되면 분석하기가 어렵고 유지보수하기에 정말 막막한 코드 또한 볼수 있다.

하지만 MVC 패턴이 적용되면 어떨까? 우선 MVC 패턴에 대해 간단히 요약하면 아래와 같다.

Model : 어플리케이션의 데이터, 자료를 의미한다.
View : 사용자에게 보여지는 부분, 즉 유저 인터페이스(User Interface)를 의미한다.
Controller : Model과 View사이를 이어주는 브릿지(Bridge) 역할을 의미한다.

즉, 역할에 따라 확실하게 분리하여 유지보수를 용이하게 그리고 프로그램의 확장성과 유연성을 높이기 위한 기법이다. 데이터가 추가되면 Mode 부분만 수정하고, UI가 수정되면 View 부분만 수정한다. 물론 Controller는 두 부분을 관장하기 때문에 일부 수정이 필요하다.

하지만, 기존처럼 메인 다이얼로그/ 폼에서의 무분별한 하드 코딩이 필요없다.

Model-View-Controller

모델(Model)

프로그램에 사용되는 데이터를 의미하며 데이터베이스(DB), 상수, 문자열과 같은 변수들, 비전 프로그램 이라면 카메라 정보와 같은 것들이 해당된다. 모델에는 뷰나 컨트롤러의 정보가 전혀 없다 단지, 정보만 반환하거나 설정할 수 있다.

뷰(View)

다이얼로그에 존재하는 텍스트박스, 라벨, 버튼 등 사용자 인터페이스(User Interface) 요소들을 의미한다. 사용자가 제어하고 데이터를 확인할 수 있는 영역이다. 뷰에서는 별도의 데이터를 보관하지 않는다 뷰에서 입력받고 출력해주는 모든 데이터는 모델을 사용해야 한다.

컨트롤러

모델과 뷰를 관장하는 브릿지(bridge) 역할을 수행한다. 사용자가 버튼을 클릭하면 이벤트는 뷰에서 발생하지만 내부처리는 컨트롤러에서 관리하다. 또한 입력이 발생하면 이에 대한 통지를 담당한다.


출처

[Design Pattern] MVC(Model-View-Controller) 패턴 이야기 #1

profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.

0개의 댓글