SiteMesh와 Tiles

이직 하고 프로젝트를 인계 받다 보니 SiteMesh라는 것을 사용하고 있었다.
도대체 이게 뭐신고 하니 apache tiles 와 같은 화면 구성을 위한 템플릿 프레임워크였다.

현재는 소멸 된 오픈 소스 프로젝트로(이마짚...) 2015년 이후로는 업데이트가 없다는 설명에 tiles와 무슨 차이가 있는건지 찾아보았다.

혹시 라도 SiteMesh 사용법을 찾는 사람이라면 여기서 뒤로가기를 누르시라...

 


 

Google Trends

SiteMesh가 과연 얼마나 자주 사용 되는 것인가가 궁금해서 Google Trends에 비교 검색 해 보았다.

지난 5년간 압도적으로 Tiles 검색이 더 많았다...

지역별 비교 분석을 보면 한국과 중국에서 많이 검색을 했단다...

"공공 SI 에서 많은 메뉴들을 간단한 설정으로 표출 하고 싶어서" 가 아닐까 싶다.

 


 

SiteMesh와 Tiles의 차이점

 

SiteMesh와 Tiles의 가장 큰 차이점은 패턴이다.
Tiles의 경우에는 Composite View 패턴을, SiteMesh의 경우에는 Decorator 패턴을 사용하고 있다.

아래 비교 내용는 해당 링크에서 가져왔다. http://tiles.apache.org/framework/tutorial/pattern.html

Composite View vs. Decorator

Tiles is a composite view framework: it allows to reuse page pieces across the application. But another approach to achieve the same result is using the Decorator pattern. For example, Sitemesh is based on the Decorator pattern.

Instead of creating a template and organizing the pieces together, the Decorator pattern (in this case) takes a simple HTML page, transforms it adding the missing pieces (in our example, adding header, footer and menu) and finally renders it.

Here you can find a comparison table between the two patterns.

Aspect Composite View Decorator
Reusability The different parts of the page (template and pieces) can be reused across the whole application. Each decorator can be reused, but the decoration itself can be applied to one page at a time.
Ease of configuration Each page must be defined explicitly. The decorator can be applied even to the entire application.
Runtime configuration The pages can be configured and organized at runtime Since one page is decorated at a time, this feature is not present.
Performances Low overhead for composition. The page to be decorated has to be parsed.



재사용성

Composite View Pattern의 Tiles의 경우에는 페이지의 모든 부분을 모두 재사용 가능하다.
반면, Decorator Pattern을 사용하는 SiteMesh는 각각의 데코레이터를 재사용 할수는 있지만, 데코레이션 자체는 한 페이지씩 적용할 수 있다고 한다.
데코레이터가 무엇인지 모르겠지만, 모든 부분을 재사용할 수 있는 Composite View Pattern이 Decorator Pattern 보다 나아보인다.

설정

각 페이지를 일일히 다 정의 해야하는 Tiles 보다는 SiteMesh가 더 쉽다고 한다.
근데 Tiles도 일일히까지는 설정 안해도 됬던 것으로 기억하는데,,

실행중 수정 여부

Composite View Pattern은 런타임중 각 페이지의 설정을 변경할 수 있고, Decorator Pattern 은 최초 한번에 적용 되기 때문에 런타임준 수정할 수 있는 기능은 제공하지 않는다.

성능

Composite View Pattern에 비해 매번 페이지를 파싱해야 하는 Decorator Pattern은 성능면에서는 당연히 떨어질 것이라 생각한다.

 


 

결론

이렇게 보니, Tiles가 trend인 이유도, 공공 SI에서 SiteMesh를 사용하는 이유도 이해가 간다.
간단한 프로그램에 복잡하지 않지만 페이지의 양이 많은 공공 지자체 SI라면 SiteMesh를 사용하는 합리적인 이유인것 같긴 하다만, 그래도 Tiles가 더 편한 것 같다는 생각은 변하지 않는다.
SiteMesh가 2015년 이후로 업데이트가 없었고, Tiles는 2016 이후로 retired 했다고 한다. (?)
그리고 비슷한 대안으로 Thymeleaf, Freemarker, mustach.java등이 있다고 한다. 그리고 Thymeleaf가 Tiles 만큼 사용율도 높다...

기술 트렌드... 참 사람 어쩌라는 건지 모르겠다.

728x90
반응형

+ Recent posts