본문

[2017.09.10] 04-2. Java Memo 프로젝트 [MVC 패턴 - ArrayList 저장]

도입

프로젝트에 MVC 패턴을 적용하기 전, MVC 패턴의 개념과 장점을 알아보자.

MVC 패턴은 다음과 같이 역할을 구분하여 데이터 처리를 하는 디자인 패턴이다.

키워드

의미

역할

M

Model

데이터 처리(삽입, 삭제 등)

V

View

화면 입출력

C

Controller

Model과 View 컨트롤


장점

a. 유연성 - 화면 입출력(View)와 데이터 처리(Model)의 역할을 구분해 기존에 존재하던 서로 간 강한 종속성(결합성)을 느슨하게 함

b. 유지보수 편의 - 이론상 M, V ,C 간의 종속성이 없어 부분의 객체를 교체했을 때 다른 객체에 영향을 주지 않는다. 

   예를 들어, Model에 문제가 있어 Model 교체시 View와 Controller의 소스는 교체하지 않아도 된다.


만약, 이전 프로젝트(http://heepie.tistory.com/55)에서 데이터 입력을 받기 위한 

"이름을 입력하세요 : " -> "당신의 이름은? "

으로 변경한다고 할 때 Main.java에 접근해 수정해야한다. 

"이것이 무슨 문제냐 당연한 것 아니냐?"라고 생각할 수 있지만 

1) 데이터 출력을 변경하다가 실수로 데이터 입력을 변경할 가능성

이 생긴다. 


이를 해결하기 위해 MVC 패턴을 적용해 데이터 처리 역할을 구분하는 방법이 있다.


Memo 프로젝트 [MVC 패턴 - ArrayList 저장]의 데이터 흐름


구현

Main.java

Control.java

Model.java

View.java

Memo.java



#MVC #MVC 패턴

공유

댓글