지난 번까지  WAF에서 제공하는 주요한 모델들에 대해 살펴보았습니다. 이번에는 간략히 WAF에서 제공하는 주요 컴포넌트(서비스)들을 살펴보고 이들을 기준으로 WAF 분류해 보겠습니다. 이들 기본 컴포넌트들은 Wiki에서 여러 개발자들이 올린 것들입니다.

- MVC 모델 지원(지난 번에 자세히 보았죠^-^)
- Ajax  연동(말이 필요없을 것 같습니다.^-^)

- 국제화와 지역화
  다국어 처리와 다양한 리소스 번들 처리는 번거롭지만 반드시 발생하는 작업입니다. 이러한 작업의 편의를 위해 많은 WAF이 국제와와 지역화 서비스를 기본적으로 제공하고 있습니다. 가령,  국내 개발자들이 많이 사용하는  struts 를 보면 리소스를 초기부터 분리하여 다국어 처리 등을 손쉽게 해줍니다. 미리미리 리소스를 정리해 두지 않으면 나중에 무지하게 고생을 합니다.

- O-R 매핑
관계형 DBMS를 객체로 매팅시켜 주는 서비스입니다. 국내에서는  SQL을 XML 로 매핑시켜 사용하는 방식인 iBatis 를 많이 사용합니다만 , 외국에서는 Hibernate 를 많이 사용하는 데 XML로 테이블을 클래스를 매핑시키는 방법을 사용합니다. 이외에도 JPA(Java Persistence API)를 사용하는 개발자도 많다고 합니다. JPA에서는 Java Persistence Query Language (JPQL)를 자바 언어로 만들어서 직접 관계형 DBMS를 다룰 수 있게 해 줍니다. 국내에서는 거의 이용하지 않는 것 같습니다.

- 테스팅 프레임웍
Junit같은 테스팅 프레임웍을 함께 사용하여 단위 테스트를 수행합니다. 가급적 이클립스 등  생산성 높은 IDE와 함께 테스트과 프로파일링을 하는 게 좋습니다.

- 보안 프레임웍
많은 개발자들이 보안을 기본적으로 제공해야 할 주요한 기능으로 보는 것 같지는 않습니다. 또한 아쉽게도 보안을 강력하게 제공하는 WAF도 아직 존재치 않습니다. 가능한 방법으로 J2SE의 일부 패키지이자 Java2 Security에서 제공하는 JAAS(Java Authentication and Authorization Service)-java.security.auth*와 JSSE,JCA를 사용해서 사용하는 방법이 있습니다.  JAAS를 이용하면 접근권한과 로그인 제어 등을 손쉽게 할 수 있고  JSSE는 SSL을 통한 네트웍 보안, JCA는 암호화 기능을  이용할 수 있습니다. 물론 관련 정보는 DBMS를 통해 처리됩니다. 처음  개발하시는 분들에게 도움이 될 것 같습니다.

- 템플릿
템플릿은 기본적으로 View 부분의 손쉽게 개발해줍니다. 대표적인 것이 바로  JSP 입니다. 이외에도 Velocity,FreeMarker,WebMacro 등이 템플릿 전용 프레임웍입니다. 이들 전용 프레임웍외에 많은 WAF에는 내부에 템플릿 지원을 지원하고 있습니다. 가령, Struts는 템플릿으로 자카르타 Tiles 프레임웍을 함께 제공하고 있습니다.

- 폼 밸리데이션
사용자가 제출한 입력 데이타의 무결성을 점검하는 것은 아주 중요하지만 번거로운 일입니다. 이 작업을 손쉽게 해주는 컴포넌트가 바로 폼 밸리데이터입니다. 일반적으로 기본적인 밸리데이터를 제공하고 사용자가 직접 밸리데이터를 작성하여 사용할 수 있도록 합니다. 대표적으로 Struts에서는 Jakarta Common의 Validator를 기본으로 제공합니다.

- 캐싱
많은 개발자들이 성능 개선이나 보안 등의 이유로 캐싱 기능을 원하는 것 같습니다. 개인적으로는 특별한 이유가 아니면 필요하다고는 생각치 않습니다. 그러나 만약 필요하다면 JCS(Java Caching System) 컴포넌트를 함께 이용하는 것도 방법입니다. 기본적으로 파일 캐싱과 오브젝트 캐싱을 제공합니다. 그런데 제 경험상 버그가 좀 있었던 것 같은데.. 오픈소스라 지금은 좀 개선됐을 수도 있을 것 같습니다.


다음은 위키에서 많은 개발자들이 위의 분류에 위해  분류한 WAF에서 자바 언어만을 정리한 표입니다. 아래 표에서 테라코타는 인도의 회사인데 캐싱을 통해 성능 개선을 하는 기술이 아주 좋은 회사입니다. 2006년 자바월드에서 만난 경험이 있습니다^-^.

사용자 삽입 이미지

힘이 들어서 한번 끈고 가야할 것 같습니다. 이번 달은 무지 하게 바쁜 달이 될 것 같습니다. 벌어지는 사업 지원만 해도 참 많네요. 거기다 사람같이 않은 사람이 다시 저를 괴롭히기 시작해서 참 힘드네요..


Posted by 박재현
,