본문 바로가기

Define Java/Design&Patterns

Model1개발 방식과 Model2 개발 방식

Model1개발 방식과 Model2 개발 방식


모델1 방식

모델1 개발방식은 웹 개발자라면 누구나 다 아는 개발 방식이다.
디자인코드(뷰)와 프로그램코드(비지니스 로직)를 따로 구분하지 않고 하나의 파일 또는 여러개의 파일에 넣어 사용하여 제작하는 방식이 모델1 방식이다. 모델 1방식은 비즈니스 로직 즉 프로그램처리 결과에 따라 보여지는 View 페이지를 바꿔주는 것이 쉽지가 않다. 즉 처리 결과에 따라 페이지를 바꿔야 할 경우 처리가 애매하다는 이야기다.
(If 문으로 처리한다는 이야기는 스탑. 그런 간단한 이야기가 아니다)

즉 모델1방식은 비지니스로직과 뷰의 구분선이 명확하지 않기 떄문에 구분이 어려우며 재활용성이 떨어진다.

모델1방식은 배우기도 쉬우며 빠르게 개발도 가능하다. 하지만 유지보수시 비지니스로직과 뷰의 구분점이 없기 떄문에 유지보수시 어려운점이 많으며 재활용성이 많이 떨어진다.

장점.
1. 개발 시간이 짧으며 쉽게 배울수 있다.
2. 단순한 페이지의 흐름만 알면 제작할 수 있다.
단점.
1. 뷰와 비지니스로직이 혼합되므로 Application의 복잡도가 증가하게 된다.
2. 디자이너와 프로그래머가 조금한거 하나 수정할 때도 의사 소통이 되어야 한다.
3. 유지보수에 시간과 돈이 많이들며 자칫 개발자가 바뀌게 되면 유지보수가 쉽지 않다.

모델2 방식

모델2 방식은 모델1방식에 비해 참 많이 어렵고 복잡하다.
모델2는 MVC모델이라고도 불리우며 각각 Model, View, Controller를 의미한다.
어떠한 작업 요청이 있으면 그것을 모델 부분에서 모든 처리를 하고 모델에 대한 결과에 따라서 뷰파일을 선택하여 해당 뷰를 보여준다. 여기서 이 중간 매게체 역활을 해주는것이 Controller이다.
처음 이 글을 보는 사람은 도저히 이해가 안 될것이다. 필자도 물론-_- 대강 이렇구나하고 넘겼었다.
간단히 보면 처리하는 부분과 보여지는 부분을 구분하고 이것을 Controller가 연결한다.
참 간단하다. 하지만 이렇게 구현하는것은 쉽지가 않다.
그 이유는 설계부터 튼튼히 되어야 하기 때문이다. Model1방식 같은 경우는 Application 제작 중에도 어느정도 요구사항에 대해 대처가 가능하다. 하지만 Model2 방식은 다른 부분에 비해 설계 쪽이 확실치 않다면 매우 곤란한 상항이 발생할 수도 있다. 물론 설계가 잘되어 있고 패턴을 이용하여 이것을 커버할 수 있는 있다.

모델2는 모델1방식에 비해 어렵고 배우기도 어렵다. 알아야 할 것이 많고 MVC 패턴을 이용하기 위해선 설계부터 튼튼해야 한다.

장점.
1. 비즈니스 로직과 뷰(프리젠테이션)의 분리로 디자이너와 프로그래머가 병행작업하기 편하다.
2. Application의 각 기능이 명료해지며 이것을 확장하기에 편하다.
3. 유지보수가 편해진다.
단점.
1. 초기 설계에 많은 시간을 투자 해야되며 Model1방식에 비해 많은 시간이 요구 된다.2. 디자이너와 프로그래머가 조금한거 하나 수정할 때도 의사 소통이 되어야 한다.
2. 개발자가 알아야 될것이 많아진다. MVC 패턴의 개념은 필수이다.


간단히 Model1과 Model2 방식에 대해서 적어 보았다.
솔직히 말해 Model2에서 유지보수가 편해진다고는 적어 놓았지만 클라이언트의 무리한 요구에는 유지보수가 참 많이 힘들다.
필자의 생각과 필자가 알고 있는 지식안에서 쓴 것이므로 100% 정확하지 않을 수도 있다T_T

'Define Java > Design&Patterns' 카테고리의 다른 글

Strategy Pattern #2  (0) 2007.02.13
익스트림 프로그래밍 (XP, eXtreme Programming)  (0) 2007.02.10
MVC 패턴 Model, View, Controller  (0) 2007.02.09
Strategy Pattern #1  (0) 2007.02.09