엑스퍼넷-롤링 블로터공식블로그

웹 애플리케이션 프레임워크 전쟁이야기(2)

  박재현 2007. 11. 13 테크놀로지 |

지난 번 1편을 쓴 이후에 한 분께서 현재 쓰고 있는 WAF가 자바 언어에 대한 WAF라는 지적이 있으셨습니다. 결론은 맞습니다. 제가 정리하고자 하는 것은 JWAF에 대한 것 입니다. 여러 이유가 있겠지만 먼저 현재 나와 있는 WAF중 자바 WAF가 가장 널리 사용되고 있기 때문입니다. 또한 제가 제일 잘 이해하고 있는 분야이기도 하구요…^-^ 현재 WAF의 언어별 숫자는 다음과 같습니다.

 ASP.NET : 2 ,  ColFusion : 4 , Perl : 5 , Ruby : 7 , Physon : 12 , PHP : 15 , Client-Side : 18 , Java 25
- 출처 위키 : http://en.wikipedia.org/wiki/List_of_web_application_frameworks

그런데 중요한 것은 WAF가 언어에 따라 엄청나게 다른 것이 아니라는 것입니다. 물론 차이점이 없다는 것은 아니지만 웹을 개발하는 데 있어 필요한 프레임웍이 모여 있어 이를 이용할 경우 개발자의 생산성이 높아진다는 공통점이 있습니다.

WAF를 이해하기 위해 먼저 S/W 아키텍처 - S/W 프레임웍 - S/W 패턴의 관계를 정확히 이해하는 게 중요합니다. S/W 아키텍처는 S/W를 개발하는 데 있어 뼈대가 되는 근간 모델을 말합니다. 만약 이를 웹 S/W에 적용한다면 OS - TCP/IP 네트웍 - 자바 이런 식의 참조 모델을 의미할 수도 있고 , 분산 객체 기반의 웹S/W의 경우 CORBA 같은 아키텍처를 들 수 있을 것입니다. 이러한 아키텍처하에서 실제 S/W를 개발하다 보면 유사한 문제에 대한 공통적인 해결 방안을 얻을 수 있습니다. 가령, 클라이언트의 요청을 받고 이를 처리하는 PageController나 널리 알려진  MVC 모델 등을 예로 들 수 있습니다. 이러한 웹 개발에 있어 얻은 경험을 바탕으로 반복해서 발생하는 문제를 해결하기 위한 권고안이 바로  S/W 패턴입니다. 정답이 아니라 권고안이기 때문에 실제 적용은 개발자의 몫이긴 합니다. 웹 개발에 있어 공통적으로 발생하는 문제들의 해결 패턴들을 하나의 라이브러리로 정리하여 개발에 있어 공통으로 적용하는 것이 바로 웹 개발 프레임웍(WAF)입니다. 따라서 자바로 개발을 하든, 루비로 하든 기본적으로 WAF는 웹 개발에 있어 필요한 공통의 사안이 지원돼야 합니다.  바로 이러한 것들의 차이가 WAF의 차이라 할 수 있습니다. 언어보다는 패턴과 프레임웍상의 기능 차이가 WAF를 평가하는 주된 기준이라 보는 게 더욱 소프트웨어 개발을 즐기는 시야일 것입니다.

아키텍처 - 프로그램 혹은 컴퓨팅 시스템의 소프트웨어 아키텍처란, 소프트웨어 컴포넌트, 이들 컴포넌트의 가시적인 속성, 그리고 컴포넌트 사이에 관계로 구성된 시스템의 전체적인 구조를 말한다. Bass, Clements, Kazman, 1998

WAF - 웹 응용 프로그램와 서비스 등을 개발하는 데 필요한 공통의 컴포넌트를 제공하여 개발자의 오버헤드를 덜어주고 개발과 유지보수 상의 생산성을 높여주는 프레임웍. - Jhpark, 2007( 접니다. ^-^)

이제 WAF에 대한 정의가 끝났다면, 다음으로는 WAF를 이해하기 위해 WAF에 적용되는 여러 유용한 패턴들에는 무엇이 있을까요?

하나 , MVC(Model-View-Controller) 모델  :  모델 1, 모델2 , Push& Pull model
둘, Page Controller VS  FrontController 모델
셋, Request  based VS Component Based  모델

이들 패턴들 외에 WAF에는 개발자들에게 유용한 공통의 컴포넌트들을 제공합니다. 이들 공통 컴포넌트로는  Ajax 프레임웍 지원, i18n(internalization) & l10n(localization), O-R mapping , Testing , Security , Template & Form validation , Caching 등 을 들 수 있습니다. 다음은 위의 기준으로 정리한 자바 WAF를 정리한 표입니다[위키참조].

사용자 삽입 이미지
 
다음에는 위의 패턴들과 공통 컴포넌트를 이해하면서 WAF를 다양한 기준으로 분류해 보겠습니다.

트랙백 : http://bloter.net/archives/1726/trackback

댓글쓰기