[java] Apache Velocity 템플릿 사용 방법

Apache Velocity는 자바 기반의 오픈 소스 템플릿 엔진으로, 텍스트 파일이나 문자열과 같은 정적 텍스트를 다이나믹하게 처리하는 데 사용됩니다. 이는 대부분 웹 애플리케이션에서 HTML, XML 또는 다른 텍스트 포맷의 동적 생성을 위해 사용됩니다.

Apache Velocity 템플릿 엔진 설정

Apache Velocity를 사용하려면 먼저 해당 템플릿 엔진을 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다.

<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.3</version>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가합니다.

implementation 'org.apache.velocity:velocity-engine-core:2.3'

의존성을 추가한 후에는 Velocity 템플릿을 로드하고 처리할 수 있는 Velocity 엔진을 설정해야 합니다.

Velocity 템플릿 작성

Velocity 템플릿은 일반적으로 .vm 확장자를 사용하며, 템플릿 파일에서는 Velocity의 표현 언어와 함께 동적으로 처리할 데이터를 정의합니다.

예를 들어, 다음은 Velocity 템플릿 파일의 간단한 예시입니다.

<!DOCTYPE html>
<html>
<head>
    <title>$title</title>
</head>
<body>
    <h1>Hello, $name!</h1>
</body>
</html>

위의 예시에서 $title$name은 동적으로 대체될 데이터를 나타냅니다.

Velocity 템플릿 처리

Velocity 템플릿을 사용하여 데이터를 채우고 결과를 생성하기 위해서는 다음과 같은 단계를 따릅니다.

  1. Velocity 엔진 초기화
VelocityEngine velocityEngine = new VelocityEngine();
velocityEngine.init();
  1. 템플릿 로딩
Template template = velocityEngine.getTemplate("path/to/template.vm", "UTF-8");
  1. 데이터 매핑
VelocityContext context = new VelocityContext();
context.put("title", "Welcome");
context.put("name", "John Doe");
  1. 템플릿 처리
StringWriter writer = new StringWriter();
template.merge(context, writer);
System.out.println(writer.toString());

위의 코드는 Velocity 엔진을 초기화하고, 템플릿을 로딩하고, 데이터를 매핑한 후에 템플릿을 처리하여 결과를 생성하는 과정을 보여줍니다.

결론

Apache Velocity 템플릿 엔진은 텍스트 기반의 동적 콘텐츠 생성에 유용한 강력한 도구입니다. 특히 웹 애플리케이션에서 동적인 HTML 또는 다른 텍스트 포맷을 생성하는 데 많이 사용됩니다.

참고 문헌: Apache Velocity 공식 사이트