[go] 템플릿 라이브러리

Go 언어는 템플릿을 사용하여 동적 웹 페이지를 생성하는데 널리 사용됩니다. 템플릿 라이브러리는 Go 언어에서 HTML, XML 및 기타 텍스트 형식의 동적 콘텐츠를 생성하는 데 사용됩니다. 이 포스트에서는 Go 언어에서 템플릿을 다루는데 사용되는 주요 라이브러리를 살펴보겠습니다.

Contents


텍스트 템플릿

Go의 "text/template""html/template" 패키지는 텍스트 템플릿을 생성하고 처리하는데 사용됩니다. 텍스트 템플릿을 사용하여 원하는 형식의 텍스트 데이터를 생성할 수 있습니다.

예를 들어, 다음은 간단한 텍스트 템플릿의 예제입니다.

package main

import (
    "os"
    "text/template"
)

func main() {
    tmpl, err := template.New("test").Parse("Hello, {{.}}!")
    if err != nil {
        panic(err)
    }
    tmpl.Execute(os.Stdout, "World")
}

이 예제에서는 text/template 패키지를 사용하여 텍스트 템플릿을 정의하고 실행한 후, “Hello, World!”를 생성합니다.


HTML 템플릿

또한, Go에서는 HTML 템플릿을 생성하고 처리하기 위해 "html/template" 패키지를 사용할 수 있습니다. 이 패키지는 HTML 출력을 안전하게 처리하고, HTML 템플릿에 데이터를 삽입하는데 유용합니다.

아래는 간단한 HTML 템플릿을 사용하는 예제입니다.

package main

import (
    "os"
    "html/template"
)

func main() {
    tmpl, err := template.New("test").Parse("<h1>Hello, {{.}}</h1>")
    if err != nil {
        panic(err)
    }
    tmpl.Execute(os.Stdout, "World")
}

이 예제에서는 "html/template" 패키지를 사용하여 HTML 템플릿을 정의하고 실행한 후, “<h1>Hello, World</h1>“을 생성합니다.


템플릿 함수

템플릿 라이브러리에는 뿐만 아니라 템플릿 함수를 정의하고 사용하는 기능도 포함되어 있습니다. 템플릿 함수를 사용하여 템플릿에서 데이터를 처리하거나 형식화하는 데 유용합니다.

예를 들어, 다음은 템플릿 함수를 사용하는 예제입니다.

package main

import (
	"os"
	"text/template"
)

func main() {
	funcMap := template.FuncMap{
		"addOne": func(x int) int { return x + 1 },
	}
	tmpl, err := template.New("test").Funcs(funcMap).Parse("{{addOne 5}}")
	if err != nil {
		panic(err)
	}
	tmpl.Execute(os.Stdout, nil)
}

이 예제에서는 FuncMap을 사용하여 템플릿 함수를 정의하고, 이를 사용하여 “6”을 생성합니다.


Go 언어의 템플릿 라이브러리는 텍스트 및 HTML 템플릿을 사용하여 동적 콘텐츠를 생성하는데 매우 유용합니다. 이를 통해 효율적으로 웹 애플리케이션을 개발할 수 있습니다.

Go 텍스트/HTML 템플릿

Go 패키지 - text/template

Go 패키지 - html/template