[go] 템플릿 렌더링

Go는 간결하고 효율적인 언어로, 템플릿 렌더링을 위한 표준 라이브러리를 내장하고 있습니다. 이를 사용하여 동적 웹 페이지를 생성하거나 이메일 템플릿을 렌더링할 수 있습니다.

템플릿 렌더링을 위한 HTML 템플릿

Go에서는 html/template 패키지를 사용하여 HTML 템플릿을 렌더링합니다. HTML 템플릿은 템플릿 내에 정적 HTML 코드와 동적 데이터를 결합하여 렌더링됩니다.

예를 들어, 다음은 Go에서 템플릿을 사용하여 동적으로 데이터를 출력하는 간단한 예시입니다:

package main

import (
	"html/template"
	"os"
)

type Person struct {
	Name string
	Age  int
}

func main() {
	tmpl, err := template.New("person").Parse("Name: {{.Name}}, Age: {{.Age}}")
	if err != nil {
		panic(err)
	}

	person := Person{Name: "John Doe", Age: 30}
	err = tmpl.Execute(os.Stdout, person)
	if err != nil {
		panic(err)
	}
}

위 예제에서는 html/template 패키지의 Parse 함수를 사용하여 템플릿을 정의하고, Execute 함수를 사용하여 템플릿을 렌더링하고 결과를 출력합니다.

HTML 템플릿 파일 사용

또 다른 방법은 HTML 템플릿 파일을 사용하는 것입니다. 이를 통해 복잡한 HTML 코드와 동적 데이터를 포함하는 템플릿을 더 쉽게 관리할 수 있습니다.

예를 들어, 다음은 HTML 템플릿 파일을 사용하여 동적으로 데이터를 렌더링하는 예시입니다:

package main

import (
	"html/template"
	"os"
)

type Person struct {
	Name string
	Age  int
}

func main() {
	person := Person{Name: "John Doe", Age: 30}
	tmpl, err := template.ParseFiles("person.tmpl")
	if err != nil {
		panic(err)
	}

	err = tmpl.Execute(os.Stdout, person)
	if err != nil {
		panic(err)
	}
}

위 예제에서는 ParseFiles 함수를 사용하여 HTML 템플릿 파일을 파싱하고, Execute 함수를 사용하여 템플릿을 렌더링하고 결과를 출력합니다.

마무리

Go의 html/template 패키지를 사용하면 동적 데이터와 HTML 템플릿을 효과적으로 결합하여 템플릿 렌더링을 할 수 있습니다. 이를 통해 웹 애플리케이션 개발 및 이메일 템플릿 렌더링 등 다양한 용도로 활용할 수 있습니다.

더 자세한 내용은 공식 Go 언어 문서를 참조하시기 바랍니다.