2007년 7월 13일 금요일

Spring Struts Webwork2 비교분석

Spring, Struts, Webwork2 모두다 MVC기반하에 짜여진 프레임웍이다.

Struts의 단점은 프레임웍자체가 무겁다는것이다. 예를 들면 V(뷰)층에서 Struts는 필히 ActionForm이라는 클래스를 상속해야하고 C(컨트롤)층에서는 Action/DispatchAction을 상속해야만 한다.
이에 비해 Webwork2는 Struts보다 훨씬 가볍다. 화면을 구성하기 위하여 단순히 태그로만 모든것을 구현가능하다. Model층도 강제적으로 다른 클래스를 상속받을 필요가 없다.
Spring과 Webwork2는 사용면에서 그 무게가 비슷하지만 기능면에서 Spring이 우세를 차지한다.
화면에서 넘어온 데이터를 바인딩하는면에서 볼 때 Struts는 ActionForm을 이용하여 자동 바인딩을 한다. 하지만 이런 “자동” 바인딩을 하기 위하여서는 필히 태그라이브러리 아니면 뷰층의 HTML코드에서 선언된 필드네임과 ActionForm에서 각 속성네임이 매칭이 되여져야 한다는것이다.
Webwork2는 modelDriven된 getModel()을 이용하여 바인딩을 한다. Spring은 Controller에서 Command객체를 선언한다.
또한 Struts의 지정된 Action을 사용하기 위하여서는 그에 관련된 ActionForm즉 POJO가 미리 선언이 되여져있어야 하는데 비하여 Spring이나 Webwork2는 좀 더 가볍다. Webwork2의 Action은 ModelDriven 인터페이스를 구현하는것으로만 데이터 바인딩을 마치고 Spring도 SimpleFormController의 선언중에 단순히 Command객체만 설정하는것만으로 데이터 바인딩과정을 끝마친다. 실제 Webwork2나 Spring 에서 데이터바인딩을 하는 과정을 봤을대 아주 흡사하다.
데이터 인증면에서 볼 때 Struts는 M(Form) 층에서 ValidateForm 클래스를 상속하여 인증을 구현하지만 Webwork2나 Spring은 Action에서 인증을 구현한다.

댓글 없음:

댓글 쓰기