'Development/프레임워크'에 해당되는 글 3건
- 2009.06.10 Struts Architecture
- 2009.06.10 MVC model2
- 2009.06.10 MVC model1
Model 1개발 방식에 한계를 느끼면서 Model 2개발 방식이 나오게 되었지만, 대부분의 개발자들이 Model 1 개발 방식에 익숙해져 있어 현재 국내에서는 아직까지 많이 사용되고 있지 않을 것이 현실이다. 하지만 Model 2 개발 방식에 대한 필요성이 증가하고 있으며, 고개들이 요구하는 경우도 빈번하게 발생하고 있다. 따라서 Model 2 개발 방식의 기본 개념에 대하여 살펴보고, Model 2 방법으로 개발하는 방법에 대하여 살펴보도록 하겠다.
Model 2 개발 방식은 이전부터 있었던 개념을 웹에 적용한 개념이다. 다양한 개발에 있어 근간이 되어온 MVC 패턴을 웹에 적용하여 개발이 가능하도록 구현하는 방식을 Model 2방식이라고 한다. MVC 패턴에 대하여 익숙하지 않은 개발자들을 위하여 간략하게 살펴보면 다음과 같다.
MVC는 Model-View-Controller로 각각의 역할을 나누어 작업하고자 하는 일을 분담시키는 것을 말한다.
Model은 Application 로직을 담당하는 부분으로 Database나 Legacy System과의 로직을 담당하는 부분을 말한다. Model은 Application으로부터 UI가 분리된다.
View는 사용자가 직접 사용하는 부분으로 Presentation 로직을 담당하는 부분이다. Controller와 Model에 의해 생성된 결과물을 보여주는 역할을 한다.
Controller는 Business Logic을 담당하는 부분으로 사용자의 요청을 받아 요청에 해당하는 작업을 한 후 작업 결과에 따라 응답을 결정하는 역할을 한다. Model과 View사이에서 데이터를 전달하는 역할을 한다.

Model 2는 이 같은 MVC구조를 웹에 적용하여 개발하는 방식을 말한다. View는 JSP가 담당하고, Controller는 Servlet, Model은 application을 이용하여 개발하는 방식을 말한다. 다음 그림을 보면 Model 2 개발 방식을 더 쉽게 이해할 수 있을 것이다.

Model 1방식으로 개발되는 경우를 살펴보면 다음과 같다.
1. JSP/Servlet만을 이용하여 개발하는 경우.
2. JSP + Java Bean을 이용하여 개발하는 경우.
3. JSP + Custom Tag를 이용하여 개발하는 경우.
4. 1,2,3이 적절히 혼합하여 개발되는 경우.
위 모든 경우가 개발하는 기술들이 다르지만 개발 방식에 있어서는 똑같이 Model 1방식으로 따르고 있다. Java Bean, Custom Tag를 이용하여 재사용 가능한 부분이나 복잡한 로직을 넣어서 개발하는 방법이 가장 많이 사용되지만 그 또한 Model 1 개발방식이다.

Model 1은 대부분의 개발자들이 경험했으며, 현재도 가장 많이 사용하고 있는 개발 방식이라고 생각하여 본 강좌에서는 예제는 다루지 않았다. Model 1개발 방식에 대하여 궁금한 개발자들은 시중에 나와 있는 JSP 책을 공부해보면 대부분의 예제 소스들이 Model 1방식으로 구현되어 있기 때문에 쉽게 접할 수 있을 것이다.
Model 1개발 방식을 사용하면 다음과 같은 장점이 있다.
1. 개발 속도가 빠르다.
2. 개발자의 스킬이 낮아도 배우기 쉬워 빠르게 적용할 수 있다.
그러나 Model 1을 사용할 경우 다음과 같은 단점이 있다.
1. JSP페이지에서 프리젠테이션 로직과 비즈니스 로직을 모두 포함하기 때문에 JSP페이지가 너무 복잡해 진다.
2. 프리젠테이션 로직과 비즈니스 로직이 혼재되어 있기 때문에 개발자와 디자이너의 분리된 작업이 어려워진다.
3. JSP페이지의 코드가 복작해 짐으로 인해 유지보수 하기 어려워진다.
지금까지 Web Application들은 단순한 경우가 많았기 때문에 Model 1방식으로 소화하기 충분했다. 그러나 점차 Web Application이 복잡해지고, 사용자들의 요구가 증가함에 따라 새로운 방식의 개발방식의 요구가 증대되게 되었다. 또한 기존에 Web Application을 개발하여 유지해오던 많은 사용자들이 개발비용보다 유지보수비용도 무시할 수 없다는 것을 느끼게 되었다. 따라서 점차 개발시의 개발 비용보다는 유지보수를 쉽게 할 수 있는 개발 방식을 요구하는 경우가 많아졌다. 이 같은 요구사항을 만족시키기 위한 개발 방법으로 Model 2가 대안으로 대두되게 되었다.
출처 : wiki.javajigi.net/pages/