반응형

스프링 타일즈(Spring Tiles)란?

스프링 타일즈는 뷰(view) 관리를 효율적으로 하기 위한 템플릿 프레임 워크입니다. 타일즈를 사용하면 여러 페이지에서 
공통으로 사용하는 레이아웃(헤더, 풋터, 사이드바 등)을  분리하여 재사용할 수 있습니다. 
예를 들어, 사이트의 모든 페이지가 동일한 레이아웃을 공유하는 경우, 타일즈를 사용하여 레이아웃을 한 번 
정의하고 페이지별로 변화하는 부분만 채우면 됩니다. 

스프링 타일즈의 주요 장점

  1. 재사용성
  2. 유지보수성
  3. 구조화된 코드

스프링 타일즈 사용법

스프링 타일즈를 사용하려면 몇 가지 설정이 필요합니다.

  1. 타일즈 종속성 추가
    • pom.xml에 타일즈 관련 의존성을 추가해야 합니다.
         <dependency>
             <groupId>org.apache.tiles</groupId>
             <artifactId>tiles-extras</artifactId>
             <version>3.0.8</version>
         </dependency>
  2. 타일즈 설정 파일 구성
    • tiles.xml 파일을 생성하여 레이아웃 페이지 구성 요소를 정의합니다.
      <definition name="baseLayout" template="/WEB-INF/views/layouts/baseLayout.jsp">
        <put-attribute name="header" value="/WEB-INF/views/common/header.jsp" />
        <put-attribute name="footer" value="/WEB-INF/views/common/footer.jsp" />
        <put-attribute name="content" value="" />
      </definition>
      <definition name="home" extends="baseLayout">
        <put-attribute name="content" value="/WEB-INF/views/home.jsp" />
      </definition>
  3. 타일즈 뷰 리졸버 설정
    • 스프링 설정 파일(spring-web.xml)에 타일즈 뷰 리졸버를 등록합니다.
        <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
        </bean>
        <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
            <property name="definitions">
                <list>
                    <value>/WEB-INF/tiles.xml</value>
                </list>
            </property>
        </bean>

클로징 패널을 그러면 어떻게 제작할 것인가?

  1. 클로징 패널의 역할과 특성
    • 클로징 패널은 사이트의 모든 페이지에서 언제든지 표시될 수 있어야 합니다. 이는 타일즈의 레이아웃 관리 특성과 잘 맞아떨어지며, 공통 레이아웃 요소로 정의하면 페이지마다 중복된 코드를 작성하지 않아도 됩니다.
  2. 클로징 패널 구현 방식
    • 클로징 패널의 구현은 JavaScript를 활용하여 동적인 위치 및 동작을 제어할 수 있습니다. 예를 들어, 페이지 내 특정 좌표(x, y)에 맞춰 패널이 표시되도록 할 수 있습니다. 이를 위해 다음과 같은 방식으로 접근할 수 있습니다
    • JavaScript로 동적 위치 제어: 페이지 스크롤 위치에 따라 클로징 패널이 적절히 나타나거나 사라질 수 있도록 설정할 수 있습니다.
  3. HTML 및 데이터 연동
    • 운영자들이 쉽게 패널의 콘텐츠를 수정할 수 있도록 HTML 태그를 동적으로 불러와 활용하는 방법도 중요합니다. 이를 위해 클로징 패널의 내용은 데이터베이스에 저장해 두고, 필요할 때 타일즈 템플릿에 이를 불러와 삽입하는 구조로 구현할 수 있습니다.
      • 데이터베이스에 저장된 콘텐츠: 패널의 텍스트나 이미지는 데이터베이스에서 불러와 동적으로 출력되도록 하여 유지보수가 용이하도록 합니다.

이렇게 하면 클로징 패널은 모든 페이지에서 쉽게 재사용될 수 있고, 운영자들이 직접 콘텐츠를 관리할 수 있게 되어 유연한 운영이 가능합니다.

 

타일즈가 올드한 기술인 이유

  1. 유지보수 중단: Apache Tiles 프로젝트는 더 이상 적극적으로 유지보수되지 않고 있습니다. 이는 보안 업데이트나 새로운 기능 추가가 없다는 것을 의미합니다.
  2. 템플릿 엔진의 변화: JSP 기반의 타일즈보다 더 간결하고 강력한 템플릿 엔진인 ThymeleafFreeMarker가 스프링 프레임워크에서 주류로 자리 잡았습니다. 특히 Thymeleaf는 자연스러운 HTML 템플릿을 제공하여 프론트엔드와 백엔드의 협업을 더욱 쉽게 만듭니다.
  3. 새로운 웹 기술: 최근 몇 년 동안 ReactVue.js 같은 프론트엔드 자바스크립트 프레임워크가 인기를 끌면서, 서버에서 전통적인 JSP 템플릿을 사용하지 않고 API를 통해 데이터를 주고받는 방식이 많이 쓰이고 있습니다. 이로 인해 타일즈 같은 서버사이드 템플릿 엔진의 수요가 줄어들었습니다.
반응형

+ Recent posts