[go] 템플릿 상속
Go 언어에서는 템플릿 상속을 쉽게 할 수 있는 기능을 제공합니다. 이를 통해 코드 중복을 줄이고 유지보수를 용이하게 할 수 있습니다. 본 포스트에서는 Go에서 템플릿 상속을 구현하는 방법에 대해 알아보겠습니다.
기본 템플릿
먼저, 다음과 같이 기본 템플릿을 작성합니다.
{{define "base"}}
<html>
<head>
<title>{{template "title" .}}</title>
</head>
<body>
{{template "content" .}}
</body>
</html>
{{end}}
위의 코드에서 define
키워드를 사용하여 “base”라는 이름의 기본 템플릿을 정의했습니다. 그리고 {{template "title" .}}
와 {{template "content" .}}
를 통해 타이틀과 컨텐츠를 삽입할 수 있도록 했습니다.
상속 템플릿
다음으로, 상속받을 템플릿을 작성합니다.
{{define "sub" "base"}}
{{template "title" .}} - My Site
{{define "content"}}
<h1>Welcome to my site!</h1>
<p>This is the content of the page.</p>
{{end}}
위의 코드에서 {{define "sub" "base"}}
를 통해 “base” 템플릿을 상속받았으며, {{template "title" .}} - My Site
를 통해 타이틀을 확장했고, {{define "content"}}
내부에 원하는 콘텐츠를 추가했습니다.
템플릿 사용
마지막으로, 아래와 같이 템플릿을 사용할 수 있습니다.
func main() {
tmpl := template.Must(template.New("base").ParseFiles("base.tmpl", "sub.tmpl"))
err := tmpl.ExecuteTemplate(os.Stdout, "sub", nil)
if err != nil {
log.Fatalf("Error executing template: %v", err)
}
}
위의 코드에서 template.New("base").ParseFiles("base.tmpl", "sub.tmpl")
를 통해 기본 템플릿과 상속 템플릿을 로드하고, tmpl.ExecuteTemplate(os.Stdout, "sub", nil)
를 통해 상속 템플릿을 실행합니다.
이렇게 하면 Go에서 템플릿 상속을 구현할 수 있습니다.
References
더 많은 기술 블로그 포스트를 읽어보고 싶으신가요?
Techie 블로그에서 다양한 기술 블로그 포스트를 만나보세요! 여기서 확인하실 수 있습니다.