[go] go 언어의 text/template/exec 패키지를 사용하여 파일 입출력 기능 구현하기
목차
소개
Go 언어에서는 text/template
패키지를 사용하여 문자열 템플릿을 정의하고, exec
패키지를 사용하여 템플릿을 실행할 수 있습니다. 이를 활용하여 파일 입출력 기능을 구현할 수 있습니다. 이번 예제에서는 text/template 패키지를 사용하여 템플릿을 생성하고, 이를 파일에 적용하여 파일을 생성하는 방법을 살펴보겠습니다.
text/template 패키지를 사용한 템플릿 생성
먼저, text/template 패키지를 사용하여 템플릿을 생성해보겠습니다. 다음은 간단한 템플릿을 정의하는 예제 코드입니다.
package main
import (
"os"
"text/template"
)
func main() {
tmpl, err := template.New("example").Parse("Hello, {{.Name}}!")
if err != nil {
panic(err)
}
data := struct{ Name string }{"World"}
err = tmpl.Execute(os.Stdout, data)
if err != nil {
panic(err)
}
}
이 예제에서는 {{.Name}}
부분이 동적으로 변경될 부분을 나타내는데, 이 부분에 원하는 값을 적용하여 파일을 생성할 수 있습니다.
파일 읽기 및 템플릿 실행
다음으로, text/template 패키지를 사용하여 생성된 템플릿을 파일에 적용하여 파일을 만드는 방법을 알아보겠습니다. 아래는 템플릿을 파일에 적용하여 파일을 생성하는 예제 코드입니다.
package main
import (
"log"
"os"
"text/template"
)
func main() {
tmpl, err := template.ParseFiles("template.txt")
if err != nil {
log.Fatal("Error parsing template:", err)
}
data := struct{ Name string }{"World"}
file, err := os.Create("output.txt")
if err != nil {
log.Fatal("Error creating file:", err)
}
defer file.Close()
err = tmpl.Execute(file, data)
if err != nil {
log.Fatal("Error applying template:", err)
}
}
이 예제에서는 먼저 template.txt
파일에 정의된 템플릿을 파싱하고, 이를 output.txt
파일에 적용하여 파일을 생성합니다.
결론
Go 언어의 text/template 패키지를 활용하면 템플릿을 정의하고, 이를 파일에 적용하여 동적으로 파일을 생성하는 기능을 구현할 수 있습니다. 이를 통해 효율적이고 유연한 파일 입출력 기능을 구현할 수 있습니다.