0Pricing
Terraform Infrastructure as Code · 강의

Terraform 내장 함수

문자열 조작, 목록 처리, 형 변환 등을 위한 다양한 Terraform 내장 함수를 살펴보고 구성을 개선합니다.

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

동적 구성 활용하기

Terraform의 내장 함수는 구성 파일 안에서 직접 값을 처리하고 변환할 수 있도록 도와주는 작은 프로그램과 같습니다.

이를 사용하면 동적이고 재사용 가능하며 더 지능적인 인프라 정의를 만들 수 있습니다.

  • 데이터 변환: 문자열, 숫자 또는 목록을 변경합니다.
  • 값 계산: 계산이나 논리 검사를 수행합니다.
  • 동적 콘텐츠 생성: 리소스 이름이나 태그를 즉석에서 만듭니다.

텍스트 변환

문자열 함수는 텍스트를 조작할 때 필수적입니다. 기본적인 함수인 upper()와 lower()는 문자열의 대소문자를 변경합니다.

이 함수들은 이름 지정 규칙을 표준화하거나 특정 요구 사항에 맞출 때 유용합니다.

variable "region_code" {
  type    = string
  default = "us-east-1"
}

output "upper_region" {
  value = upper(var.region_code)
}

output "lower_example" {
  value = lower("AWS_REGION")
}

문자열 연결과 분할

join() 함수는 지정한 구분 기호를 사용하여 목록의 요소를 하나의 문자열로 결합합니다. 반대로 split()은 구분 기호를 기준으로 문자열을 여러 부분 문자열의 목록으로 나눕니다.

이 함수들은 데이터를 구문 분석하거나 복잡한 이름을 구성할 때 유용합니다.

variable "tags_list" {
  type    = list(string)
  default = ["web", "frontend", "prod"]
}

output "joined_tags" {
  value = join(",", var.tags_list)
}

output "split_string" {
  value = split("-", "server-01-app")
}

구성에서 수학 계산하기

숫자 함수는 기본적인 수학 연산을 수행하는 데 도움이 됩니다. ceil()은 올림하고, floor()는 내림하며, min()/max()는 집합에서 최솟값과 최댓값을 찾습니다.

리소스 수를 계산하거나 규모를 정할 때 유용합니다.

variable "instance_ratio" {
  type    = number
  default = 3.7
}

output "rounded_up_instances" {
  value = ceil(var.instance_ratio)
}

output "rounded_down_instances" {
  value = floor(var.instance_ratio)
}

output "smallest_val" {
  value = min(10, 5, 12, 8)
}

목록 다루기

목록은 항목이 정렬된 컬렉션입니다. length()와 같은 함수는 목록에 포함된 항목 수를 알려 주고, element()는 숫자 인덱스(0부터 시작)를 사용하여 항목을 가져옵니다.

반복하거나 특정 항목을 선택할 때 유용합니다.

variable "zones" {
  type    = list(string)
  default = ["us-east-1a", "us-east-1b", "us-east-1c"]
}

output "num_zones" {
  value = length(var.zones)
}

output "first_zone" {
  value = element(var.zones, 0)
}

키-값 데이터 처리

맵은 데이터를 키-값 쌍으로 저장합니다. lookup()은 지정한 키에 해당하는 값을 가져오며, 키를 찾지 못했을 때 사용할 기본값을 선택적으로 지정할 수 있습니다. merge()는 여러 맵을 하나의 맵으로 결합합니다.

메타데이터나 리소스 태그를 관리할 때 적합합니다.

variable "server_info" {
  type = map(string)
  default = {
    name = "backend-server"
    env  = "dev"
  }
}

variable "additional_info" {
  type = map(string)
  default = {
    owner = "team-a"
  }
}

output "server_name" {
  value = lookup(var.server_info, "name", "unknown")
}

output "merged_map" {
  value = merge(var.server_info, var.additional_info)
}

데이터 형식 변경

리소스 인수에는 특정 데이터 형식의 값(예: 숫자가 아닌 문자열)이 필요한 경우가 있습니다. tostring() 및 tonumber()와 같은 형식 변환 함수가 이를 도와줍니다.

구성의 서로 다른 부분이 호환되도록 합니다.

variable "port_number" {
  type    = number
  default = 8080
}

output "port_as_string" {
  value = tostring(var.port_number)
}

output "string_to_number" {
  value = tonumber("123") + 7
}

함수 활용

복잡한 데이터 변환을 수행하려면 기본 제공 함수를 결합하거나 중첩할 수 있습니다. 다음 예제에서는 변수를 결합하고, 그중 하나를 대문자로 변환하며, 형식이 올바른지 확인하여 리소스 이름을 구성합니다.

variable "env" {
  type    = string
  default = "dev"
}

variable "service" {
  type    = string
  default = "app"
}

variable "instance_id" {
  type    = number
  default = 1
}

output "resource_name" {
  value = join("-", [
    upper(var.env),
    var.service,
    tostring(var.instance_id)
  ])
}

권장 방법

함수를 사용할 때는 명확성과 유지 관리 편의성을 고려해야 합니다.

  • 읽기 쉽게 작성하기: 코드 이해가 어려워진다면 함수를 지나치게 중첩하지 마세요.
  • 변수 사용하기: 복잡한 중간 결과를 지역 변수에 저장하면 더 읽기 쉬워집니다.
  • terraform console으로 테스트하기: 구성에 함수를 추가하기 전에 함수의 출력을 빠르게 확인해 보세요.

함수 도전 과제

테라폼의 기본 제공 함수가 함께 작동하는 방식을 제대로 이해했는지 테스트해 보겠습니다.

함수 학습 완료

테라폼의 강력한 기본 제공 함수를 살펴보았습니다!

이제 문자열, 숫자, 컬렉션 및 형식 변환 함수를 사용하여 구성을 동적이고 유연하게 만드는 방법을 이해하셨을 것입니다. 이러한 도구는 효율적이고 재사용 가능한 코드형 인프라를 작성하는 데 필수적입니다.

자주 묻는 질문

“Terraform 내장 함수” 강의는 무료인가요?

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

“Terraform 내장 함수”에서 뭘 배우나요?

문자열 조작, 목록 처리, 형 변환 등을 위한 다양한 Terraform 내장 함수를 살펴보고 구성을 개선합니다. 브라우저에서 직접 실행하는 실습 코드로 Terraform Infrastructure as Code을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Terraform Infrastructure as Code을(를) 시작하는 데 경험이 필요한가요?

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

“Terraform 내장 함수” 강의는 얼마나 걸리나요?

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

이 Terraform Infrastructure as Code 강의에서 코드를 작성하고 실행할 수 있나요?

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

이 강의의 모든 강의

  1. `for_each`와 `count`로 반복문 사용
  2. Terraform 내장 함수
  3. 조건식과 스플랫 표현식
  4. 중첩 구성용 동적 블록
← Terraform Infrastructure as Code(으)로 돌아가기