[java] Maven을 사용하여 자바 템플릿 엔진 구현하기

이번 블로그 포스트에서는 Maven을 사용하여 자바 템플릿 엔진을 구현하는 방법에 대해 알아보겠습니다. 템플릿 엔진은 동적인 콘텐츠 생성을 위해 템플릿과 데이터를 결합하는 도구입니다. 이를 통해 웹 애플리케이션에서 유용하게 사용할 수 있는 정적인 페이지를 동적으로 생성할 수 있습니다.

Maven 프로젝트 설정

먼저 Maven 프로젝트를 설정해야 합니다. Maven을 사용하면 프로젝트의 의존성 관리와 빌드 프로세스를 쉽게 관리할 수 있습니다. 필요한 의존성을 pom.xml 파일에 추가하면 Maven이 해당 라이브러리를 자동으로 다운로드하고 관리합니다.

다음은 Maven 프로젝트의 pom.xml 파일 예시입니다.

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
         
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>template-engine</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    <dependencies>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3.0</version>
        </dependency>
    </dependencies>
    
</project>

위 예시에서는 Apache Velocity 템플릿 엔진의 의존성을 추가했습니다. Velocity는 간단하고 유연한 템플릿 엔진으로, 자바 기반의 프로젝트에서 많이 사용됩니다.

Velocity 템플릿 엔진 사용하기

템플릿 엔진을 사용하기 위해 Velocity를 초기화하고 템플릿 파일을 로드하여 렌더링하는 코드를 작성해보겠습니다. 다음은 Velocity를 사용하여 “Hello, World!”를 출력하는 예시입니다.

import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.Template;

import java.io.StringWriter;

public class TemplateEngineExample {
    public static void main(String[] args) {
        // VelocityEngine 초기화
        VelocityEngine velocityEngine = new VelocityEngine();
        velocityEngine.init();
        
        // VelocityContext 생성 및 데이터 추가
        VelocityContext context = new VelocityContext();
        context.put("name", "John Doe");
        
        // 템플릿 파일 로드
        Template template = velocityEngine.getTemplate("templates/hello.vm");
        
        // 템플릿 렌더링
        StringWriter writer = new StringWriter();
        template.merge(context, writer);
        
        // 렌더링 결과 출력
        System.out.println(writer.toString());
    }
}

위 예시에서는 Velocity를 초기화한 후, VelocityContext를 생성하여 데이터를 추가했습니다. 그리고 VelocityEngine에서 getTemplate 메서드를 사용하여 로컬 파일 시스템에서 템플릿 파일을 로드하고, merge 메서드를 사용하여 템플릿과 데이터를 결합했습니다. 결합된 결과는 StringWriter에 저장되고, toString 메서드를 사용하여 문자열로 변환됩니다.

결론

Maven을 사용하여 자바 템플릿 엔진을 구현하는 방법에 대해 알아보았습니다. Maven을 이용하면 템플릿 엔진과 관련된 의존성을 쉽게 관리할 수 있으며, Velocity와 같은 템플릿 엔진을 사용하여 동적인 콘텐츠 생성을 할 수 있습니다.

참고 자료