[go] go 언어의 text/template/exec 패키지를 사용하여 템플릿 캐시 삭제 방법
Golang은 템플릿을 렌더링하기 위해 text/template 및 html/template 패키지를 사용합니다. 이 패키지들은 템플릿 캐싱을 지원하여 효율적인 템플릿 렌더링을 가능케 합니다. 하지만 때때로 템플릿이 변경되었을 때 이러한 캐시를 업데이트해야 하는 경우가 있습니다.
이를 위해 text/template
와 html/template
패키지에서는 template.New()
와 template.ParseFiles()
함수로 새로운 템플릿을 만들 때마다 고유한 캐시 키를 생성합니다. 이 키를 사용하여 템플릿 캐시를 삭제할 수 있습니다.
예제 코드
다음은 템플릿 캐시를 삭제하는 예제 코드입니다.
package main
import (
"log"
"text/template"
"os"
)
func main() {
tmpl, err := template.New("example").ParseFiles("example.tmpl")
if err != nil {
log.Fatal(err)
}
// 템플릿 실행
err = tmpl.Execute(os.Stdout, nil)
if err != nil {
log.Fatal(err)
}
// 템플릿 캐시 삭제
deleteCachedTemplate(tmpl, "example.tmpl")
}
// 템플릿 캐시 삭제 함수
func deleteCachedTemplate(t *template.Template, filename string) {
delete(t.Templates(), filename)
}
위의 예제에서 deleteCachedTemplate
함수는 특정 파일에 해당하는 템플릿 캐시를 삭제합니다. 이렇게 하면 해당 템플릿이 변경되었을 때 다음에 실행될 때 새로운 템플릿이 다시 파싱되고 캐시됩니다.
결론
Golang의 text/template
와 html/template
패키지를 사용하여 템플릿 캐시를 효율적으로 관리할 수 있습니다. 캐시를 삭제하여 템플릿 변경을 즉시 반영할 수 있으며, 이를 통해 웹 애플리케이션의 성능과 유지보수성을 향상시킬 수 있습니다.