[go] 템플릿 데이터 전달

Go 언어의 템플릿을 사용하여 웹 페이지를 렌더링할 때, 종종 데이터를 HTML 템플릿에 전달해야 합니다. 이를 위해 Go는 사용자 지정 데이터를 템플릿에 전달할 수 있는 간단하고 효율적인 방법을 제공합니다.

이번 포스트에서는 Go에서 템플릿 데이터를 어떻게 전달하는지 알아보겠습니다.

템플릿 데이터 구조체 정의

템플릿 데이터를 전달하기 위해 우선 데이터의 구조체를 정의해야 합니다. 예를 들어, 사용자의 정보를 담은 구조체를 정의해보겠습니다.

type User struct {
    Username string
    Email string
}

템플릿에 데이터 전달

데이터 구조체를 정의한 뒤에는 템플릿으로 데이터를 전달할 수 있습니다. 우선 다음 예시처럼 템플릿 파일을 정의합니다.


{{ define "user" }}
    <p>Username: {{ .Username }}</p>
    <p>Email: {{ .Email }}</p>
{{ end }}

위의 템플릿에서 .Username.Email은 구조체에서 정의한 필드값에 해당합니다.

데이터를 템플릿으로 렌더링

템플릿을 렌더링하는 함수에서 데이터를 전달할 수 있습니다. 다음 예시는 사용자 정보를 템플릿에 전달하고 HTML을 생성하는 방법을 보여줍니다.

func renderUserTemplate(w http.ResponseWriter, r *http.Request) {
    user := User{Username: "john_doe", Email: "john_doe@example.com"}
    tmpl := template.Must(template.ParseFiles("user_template.html"))
    tmpl.ExecuteTemplate(w, "user", user)
}

위 코드는 User 구조체를 생성하고, 해당 구조체를 "user" 템플릿으로 렌더링하여 HTML 페이지를 생성합니다.

결론

Go 언어는 템플릿 데이터를 효율적으로 전달할 수 있는 강력한 기능을 제공합니다. 위에서 알아본 것처럼, 데이터 구조체를 정의하고 해당 데이터를 템플릿으로 렌더링하는 방법을 숙지하면, 웹 어플리케이션 개발에 유용하게 활용할 수 있을 것입니다.

이상으로 Go에서 템플릿 데이터를 전달하는 방법에 대해 알아보았습니다. 감사합니다.

참고 자료