💡 핵심 요약 (Executive Summary)
본 가이드는 golang goTemplate 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.
📑 Table of Contents
문법
조건문
go
{{- if $Booleans }}
{{- else if and $Booleans ( not $Booleans ) }}
{{- else }}
{{- end }}
//$Booleans1 또는 $Booleans2
{{- if or $Booleans1 $Booleans2 }}
{{- end }}
반복문
go
{{ range .Array }}
{{ end }} // 해당 값이 배열일 경우 foreach
기초함수
go
// go Data는 최상위 맵으로 구성된다. 맵의 키로 값 접근
{{ .DATA }}
// 템플릿 블록 선언
{{ define "slack.main.title" }}
{{ end }}
// define된 템플릿 블록 출력
{{ template "slack.main.title" . }}
// 최상위 범위의 컨텍스트(context)**를 저장. 블록 내에서도 참조 가능
{{ $root := . }}
// Array
{{ index .AAA 3 }} // 배열의 값 접근
{{ len .Array }} // 해당 값이 배열일 경우 길이 리턴, String일 경우 글자수 리턴
// Map
{{ index .AAA "B-B" "C" }} //.AAA["B-B"]["C"]
{{ .AAA.BB.C }} //.AAA.BB.C
// 공백 제거
{{ .Text -}} // 우로 존제하는 Space(공백) 제거
{{- .Text }} // 좌로 존재하는 Space(공백) 제거
// 주석처리
{{/* 주석 */}}
문자열 함수
go
# convert String to Base64 encrypt
$String | b64enc
# 쌍따옴표 삽입 (String 형으로 인식되어야하는 경우)
$value | quote
# 읽어온 Map|Array 밸류를 Yaml Template 형태로 변환
toYaml $yamlValue
# 주로 toYaml과 함께 사용됨. $n회 들여쓰기
$value | nindent $n
Examples
go
// 1. map
// data
{
"JSON_MAP": {
"alertname": "High CPU usage",
"team": "blue",
"zone": "eu01"
}
}
// action
{{ .JSON_MAP }}
// result
>> map[alertname:High CPU usage team:blue zone:eu-1]
// 2. array
// data
{
"JSON_ARR": [{"a":1},{"b":2},{"c":3},{"d":4}]
}
// action
{{ .JSON_ARR }}
// result
>> [map[a:1] map[b:2] map[c:3] map[d:4]]
공식문서
Leave a Reply