이전에 만들었던 게시판은 비즈니스 로직과 화면 기능을 모두 동일한 JSP에서 수행하도록 개발하여 만든 모델1방식(jsp파일로 만든)게시판이었습니다.
그래서 이번에는 DAO와 Action 등의 클래스를 활용한 MVC 디자인 패턴 중 모델2 방식으로 만들고 있습니다.
※ 게시판을 만드는 과정의 글을 작성하기 전에 MVC 디자인 패턴들에 대해 공부해보았습니다.
● MVC 패턴이란?
Model, View, Controller의 합성어로 소프트웨어 디자인 패턴입니다.
- Model: 백그라운드에서 동작하는 로직을 처리하는 역할
- View: 사용자가 실제로 보게 될 결과 화면을 보여주는 역할
- Controller: 사용자의 입력처리와 흐름제어를 담당하는 역할
1. MODEL1_MVC_디자인패턴
모델1방식은 JSP가 클라이언트로 요청받는 일, 데이터베이스를 오가며 자료를 가공하는 일, 처리 결과를 클라이언트에게 반환하는 일을 모두 맡는다.
그러나 현재의 웹서비스에 모델1방식은 화면 기능과 비즈니스 로직 기능을 모두 수행하기에 간단하지 않기 때문에 좋지 않습니다.
● 복잡한 기능을 구현한다면 아래와 같은 단점들이 있습니다.
- 유지보수 문제: 화면 기능과 비즈니스 로직 기능이 섞여있는 하나의 JSP파일이기 때문에 오류가 발생하기 쉽습니다.
- 재사용성 문제: 기능이 하나의 파일 안에 있기 때문에 하나의 기능만 분리하여 사용하기 어렵습니다. 만약에 다른 애플리케이션에 기능 중 일부만 사용한다면 사용하기 어렵고 동작해내기 어렵습니다.
- 분업화 문제: 웹 디자인 부분과 프로그램 부분이 한 파일에 있으면 효율성이 떨어집니다.
이런 이유들로 모델1은 실제 개발 환경에서는 잘 사용되지 않습니다.
2. MODEL2_MVC_디자인패턴
모델2방식은 웹애플리케이션의 각 기능들을 분리해 구현하여 모델1의 단점을 보완하였습니다.
클라이언트 요청 처리, 응답 처리, 비즈니스 로직 처리 등의 기능을 모듈화한 구조입니다.
표면적으로는 모델2가 모델1보다 복잡한 구조이기때문에 관련 기술이나 개념을 숙지하는 데 시간과 노력을 들여야한다는 단점이 있습니다.
● 하지만 단점을 극복한다면 아래와 같은 장점들이 있습니다.
1. 유지보수가 편리합니다. 부분 별, 모듈 별로 프로그램을 설계,구축 하기 때문에 오류가 발생할 확률이 모델1보다 훨씬 낮습니다. 또한 오류가 발생하더라도 디버깅하기 편리하므로 오류를 빠르게 해결할 수 있습니다.
2. 높은 재사용성: 각각의 기능들이 모듈화, 부품화 되어 필요한 부분만을 조합해 다양한 웹 애플리케이션을 보다 빠르게 만들어낼 수 있습니다.
3. 분업화: 프로그래머나 디자이너가 전체 기능에 대해 모른다하여도 각자의 업무를 분업하여 처리가능합니다.
※ 현재 제가 진행중인 게시판의 디자인 패턴의 대략적인 단계는 이렇습니다.
최근댓글