[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 패키지를 활용하면 템플릿을 정의하고, 이를 파일에 적용하여 동적으로 파일을 생성하는 기능을 구현할 수 있습니다. 이를 통해 효율적이고 유연한 파일 입출력 기능을 구현할 수 있습니다.