[개발방법] 스크립트/모델1/모델2 개발방법론의 특징 및 장단점

2010. 4. 14. 17:01개발방법

J2EE  기반의 웹프로젝트는 JSP, 1모델 , 2모델 방식으로 개발되어 질 수 있다.

각 개발 방법의 특징과 이들의 차이점을 정리해 보았다.

 

-----------------------------------------------------------------------------------------

JSP 스트립트 방식의 특징 및 장, 단점

-----------------------------------------------------------------------------------------

- 특징:

   JSP  스크립트 언어만으로 구현하는 개발 방식

 

- 장점:

    비즈니스 로직이 특정 JSP 소스 파일에 모두 구현되어 있으므로 빠른 속도로 개발이 가능하다.

    이 방식은 개발 인원이 적은 소규모의 프로젝트에 적합하다.

 

- 단점:

(1) JSP는 프로그래머 뿐만 아니라 디자이너와의 공동작업이 이루어질 가능성이 높다.

     따라서 프로그램 코드와 디자인 소스가 뒤섞여 실수로 인한 코드의 손상 우려가 있으며,

     소스의 식별성도 떨어지므로 유지 보수에 어려움이 있다.

      

(2) 비즈니스 로직이 특정 JSP 소스 파일에 몰려있다는 것은 반대로 , 재사용성은 떨어진다는

     의미이므로 개발 인원이 많은 큰 규모의 프로젝트에서 추구하는 컴포넌트 기반의 개발이

     불가능하다. 여러 개발자가 공동으로 프로젝트를 진행하려면 무엇이든 부품화(컴포넌트)

     되어 져야 할 것이기 때문이다.

 

 

-----------------------------------------------------------------------------------------

모델1 방식의 특징 및 장,단점

-----------------------------------------------------------------------------------------

-특징:

     JSP 스크립트 방식의 문제점인 재사용성에 대한 해결책을 제시하는 개발방법론으로서

     JSP와  빈즈(=컴포넌트) 를 연동하여 개발 하는 방식이다.

 

- 장점:

   (1) 빈즈를 사용하므로 자바가 갖는 객체지향의 최대 장점들을 모두 개발에 적용할 수 있는

        이득이 있다.

   (2) 재사용 가능성이 있는 비즈니스 로직은 컴포넌트화 시켜놓음으로서 필요할 땐 언제든  

        재사용이 가능하도록 개발 하는 방식

 

- 단점:

        모든 요청을 JSP가 받으므로 MVC기법 중 View 로서 역할을 해야할 JSP가 여전히

        비즈니스로직의 선택 및 결과 페이지로의 이동을 지정하는 컨트롤러로서의 기능을 하고

        있다. 따라서 아직까지 MVC의 불완전한 분리단계이다.

 

-----------------------------------------------------------------------------------------

모델2 방식의 장,단점

-----------------------------------------------------------------------------------------

-특징:

   (1) MVC 개발방법론을 기반으로  한 J2EE 개발방법론이다.

        (* MVC개발 방법론이란 어플리케이션을 Model/View/Controller 의 독립적인 역할 분담을

        가진 모듈로  구분하여 개발하는 방식)

        모델1 에서 불확실했던 JSP의 View로서의 역할이 모델2에서는 확연히 진정한 디자인

        역할로 구분되어 지므로  더이상 JSP 소스내에서는 빈즈의 사용이나, 뷰페이지로의 이동과

        같은 컨트롤러 적인 소스는 사라지게 된다. 이 역할을 모델2 에서는 서블릿이 담당하게 된다.

 

   (2) 모델1 이 컴포넌트의 재사용에만 초점이 맞추어져 있는 한계가 있다면, 모델2 는

        비즈니스로직을 구현한 모델의 재사용성을 고려하여 구축하려는 보단 큰 관점의

        개발 방법론이다.

 

-장점 :

   (1) 어떠한 비즈니스로직도 모델2에 적용이 가능하다.

   (2) 대규모 프로젝트에 적용이 가능하다.

   (3) 여러명이 개발하더라도 프레임웍에서 강제하는 일관성을 유지하면서 개발하므로 규칙성 있다.

   (4) 프레임웍의 규칙에 따라 개발되어 지므로 유지보수 및 관리가 용이하다.

  

-단점:

    무조건 모델2 방식이 좋은 것은 절대 아니며, 소규모 프로젝트에 적용할 경우 복잡성 때문에

    오히려 역작용이 발생한다.

------------------------------------------------------------------------------------------
1.모델1 방식

------------------------------------------------------------------------------------------(1)스크립트 언어 개발 방식 
스크립트 언어만을 사용한 개발 방식으로서 디자인과 비즈니스로직이 뒤섞여 있는 개발 방식.
주로 규모가 작고 적은 수의 인원으로 개발하기 적합한 방식

       

(3) 장단점

* 장점

- 프로그램 구현이 빠르고 간단하다.

- 하나의 파일에서 모든 비즈니스 로직이 구현되어 있으므로 내용 수정시 해당 파일만 수정하면 된다.

 * 단점

- 정적문서인 HTML과 비즈니스로직이 뒤섞여 있으므로 유비보수가 힘들고 프로그램을 이해하기

   어렵다.

- 코드의 재사용이 힘들고 확장성이 부족하다

- 서버자원을 효율적으로 사용할수 없다. 예를 들면 데이터베이스 연결작업이 필요한 페이지에

   매번 커넥션 생성작업을 해줘야 한다.

 

------------------------------------------------------------------------------------------
2.모델1 + 빈즈 연동

------------------------------------------------------------------------------------------
   비즈니스 로직을 스크립트가 아닌 응용프로그램으로 구현하여 디자인과 비즈니스로직을
   분리할 수 있는 방식
   * 비즈니스로직을 분리하는데 큰 의미가 있지만 완벽한 모델2 방식 구현은 아니다.

 

------------------------------------------------------------------------------------------
3.모델2 방식
------------------------------------------------------------------------------------------
  (1)의미 
    어플리케이션 개발 방법론 중 하나인 MVC 모델로 구현하는 방식.


  (2) MVC 역할
      Model - 비즈니스 로직을 담당
      View - 처리결과를 보여줌
      Controller - 요청에 대한 분석을 담당하여 해당 비즈니스로직으로 배분,전달하는 역할

  (3)J2EE의 MVC구현 방법
       Model - 클래스로 구현
                 - 데이터에 대한 처리이므로 데이터를 담을수 있는 폼빈과 이 폼빈을 처리하는

                   비즈니스로직 빈이있다.
       View  - JSP로 구현
                - JSP로 요청처리결과를 보여줌
       Controller - 서블릿 or JSP 로 구현

                      - 모든 요청의 진입점에 위치하여 클라이언트의 요청이 있을 경우 해당 기능을

                         담당하는 비즈니스로직에 전달/배분

  (4)장단점

      장점:

           -  객체지향 설계가 가능하므로 객체지향이 가진 모든 장점을 그대로 수용할 수 있다.

        단점:

          - 소규모의 간단한 비즈니스로직 수행시엔 오히려 복잡하고 비효율적이다.

            마치 꽃하나를 심기위해 모종삽이 아닌 포크레인으로 땅을 파는 것과 같다

'개발방법' 카테고리의 다른 글

[개발방법] 애자일 소프트웨어 개발 개념  (0) 2015.01.16