0Pricing
Helm Academy · 강의

define으로 부분 템플릿 정의하기

재사용 가능한 이름 있는 템플릿 블록을 선언합니다.

define으로 부분 템플릿 정의하기은(는) CoddyKit의 무료 Helm Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Helm Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Helm Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

왜 반복해서 작성합니까

같은 레이블과 이름이 차트의 모든 매니페스트에 복사됩니다. 명명된 템플릿을 사용하면 해당 블록을 한 번만 작성하고 어디서든 재사용할 수 있습니다.

define 동작 알아보기

define 동작으로 재사용 가능한 블록을 선언합니다. 이 동작은 템플릿 텍스트의 한 부분에 이름을 붙일 뿐, 자체적으로는 아무것도 렌더링하지 않습니다.

{{- define "mychart.labels" -}}
app: my-app
{{- end -}}

define 블록의 구성

모든 define은 이름 문자열로 시작하고 end로 끝납니다. 두 요소 사이에 있는 내용이 호출자가 가져오는 본문입니다.

{{- define "NAME" -}}
  ...body...
{{- end -}}

명명 규칙이 중요한 이유

이름은 전체 차트에서 전역적으로 사용되므로 충돌을 피하려면 차트 이름을 접두사로 붙이십시오. 점을 사용하는 chart.purpose 형식이 관례입니다.

{{- define "mychart.selectorLabels" -}}
app.kubernetes.io/name: mychart
{{- end -}}

부분 템플릿이 있는 위치

관례상 모든 define 블록은 templates/_helpers.tpl에 작성합니다. 맨 앞의 밑줄은 Helm이 이 파일 자체로는 매니페스트를 출력하지 않는다는 뜻입니다.

밑줄로 시작하는 파일은 특별합니다

밑줄로 시작하는 templates 디렉터리의 파일은 Kubernetes 객체로 렌더링되지 않습니다. 다른 템플릿에서 사용할 부분 템플릿과 도우미만 담습니다.

define은 출력을 만들지 않습니다

부분 템플릿을 정의하면 이름으로 등록될 뿐입니다. 다른 템플릿이 해당 부분 템플릿을 실제로 호출하기 전까지는 렌더링된 YAML에 아무것도 나타나지 않습니다.

부분 템플릿에서 점 사용하기

부분 템플릿 안에서는 .Release.Name과 같은 컨텍스트를 읽을 수 있지만, 호출자가 해당 범위를 전달한 경우에만 가능합니다. 범위 전달은 곧 다루겠습니다.

{{- define "mychart.name" -}}
{{ .Release.Name }}
{{- end -}}

여러 부분 템플릿, 하나의 파일

_helpers.tpl에 원하는 만큼 define 블록을 쌓을 수 있습니다. 관련된 도우미를 함께 묶어 파일을 쉽게 살펴볼 수 있게 하십시오.

{{- define "mychart.name" -}}
my-app
{{- end -}}
{{- define "mychart.fullname" -}}
my-app-prod
{{- end -}}

부분 템플릿으로 더 큰 차트 만들기

차트가 커질수록 부분 템플릿은 중복된 레이블과 이름을 서로 일치하게 유지합니다. 도우미를 한 번만 변경하면 이를 사용하는 모든 매니페스트가 함께 업데이트됩니다.

정의는 작업의 절반일 뿐입니다

define만 작성하면 아무 동작도 하지 않습니다. 다음 단계는 include 또는 template을 사용해 실제 매니페스트에 삽입하는 것이며, 다음 레슨에서 이를 다룹니다.

빠른 확인

define 블록을 추가했는데 렌더링된 출력이 비어 있습니다. 이유가 무엇입니까?

부분 템플릿 정의 요약

define으로 재사용 가능한 블록을 선언하고, 이름을 chart.purpose로 지정하며, _helpers.tpl에 저장하는 방법을 배웠습니다. 다음에는 이들을 호출하겠습니다. 🧩

자주 묻는 질문

“define으로 부분 템플릿 정의하기” 강의는 무료인가요?

네 — “define으로 부분 템플릿 정의하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Helm Academy 강의 전체를 잠금 해제할 수 있습니다. Helm Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“define으로 부분 템플릿 정의하기”에서 뭘 배우나요?

재사용 가능한 이름 있는 템플릿 블록을 선언합니다. 브라우저에서 직접 실행하는 실습 코드로 Helm Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Helm Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Helm Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“define으로 부분 템플릿 정의하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Helm Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Helm Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. define으로 부분 템플릿 정의하기
  2. template 및 include로 부분 템플릿 삽입하기
  3. 표준 Fullname 및 Labels 도우미
  4. 이름 있는 템플릿에 범위 전달하기
← Helm Academy(으)로 돌아가기