[go] html/template 패키지의 커스텀 함수
html/template
패키지는 Go 프로그램에서 HTML 템플릿을 렌더링하기 위한 강력한 도구입니다. 이 패키지는 내장 함수를 제공하지만 때로는 우리의 특정한 요구에 맞게 커스텀 함수를 정의해야 할 때가 있습니다.
이 블로그 포스트에서는 html/template
패키지에서 커스텀 함수를 만드는 방법과 그 활용에 대해 알아보겠습니다.
1. 커스텀 함수 만들기
html/template
패키지를 사용하여 템플릿을 렌더링하다 보면 기존에 정의된 함수로는 원하는 기능을 구현할 수 없는 경우가 발생할 수 있습니다. 이럴 때는 자체적으로 커스텀 함수를 만들 수 있습니다.
커스텀 함수를 만들려면 먼저 다음 단계를 따라야 합니다:
import (
"html/template"
"strings"
)
func main() {
// 템플릿 객체 생성
tmpl := template.New("mytemplate")
// 커스텀 함수 등록
tmpl.Funcs(template.FuncMap{
"upper": strings.ToUpper,
})
}
2. 커스텀 함수 활용하기
이제 커스텀 함수를 등록했으니, 템플릿에서 이를 활용할 수 있습니다. 아래는 템플릿 파일에서 커스텀 함수를 어떻게 사용하는지 보여주는 예제입니다.
<!DOCTYPE html>
<html>
<head>
<title>커스텀 함수 예제</title>
</head>
<body>
<h1>{{.Title | upper}}</h1>
<p>{{.Content}}</p>
</body>
</html>
위의 예제에서 {{.Title | upper}}
는 Title
에 대한 커스텀 upper
함수를 적용하고 있습니다.
3. 주의사항
커스텀 함수를 만들 때 몇 가지 주의해야 할 점이 있습니다. 첫째, 커스텀 함수는 템플릿을 파싱하기 전에 등록되어야 합니다. 둘째, 커스텀 함수는 항상 에러를 반환해야 합니다.
이상으로 ‘html/template’ 패키지의 커스텀 함수에 대해 알아보았습니다. 커스텀 함수를 통해 템플릿 작성을 보다 유연하게 할 수 있으며, 강력한 기능을 구현할 수 있게 됩니다.
더 많은 정보는 공식 Go 언어 웹사이트에서 찾아볼 수 있습니다.