Terraform 신입 기술면접

Terraform 신입 · 취준 (0~1년) 프레임워크 5문항 조회수 31 · 2026-08-04 (화) 13:21:53
1 Terraform 기본 개념
Easy

Q. Terraform이 무엇이고, 어떤 문제를 해결하기 위해 사용하는지 설명해주세요.

인프라를 코드로 관리하는 방식과 수동 구성의 차이점을 생각해보세요.

A. 모범답안

Terraform은 HashiCorp에서 만든 Infrastructure as Code(IaC) 도구로, 인프라를 코드로 정의하고 관리할 수 있게 해줍니다. 클라우드 리소스를 수동으로 클릭해서 생성하는 대신, 코드로 선언하여 자동화하고 버전 관리할 수 있습니다. 여러 클라우드 제공자(AWS, Azure, GCP 등)를 하나의 도구로 관리할 수 있는 멀티 클라우드 지원이 특징입니다. 인프라의 일관성을 유지하고, 재사용 가능하며, 협업이 용이한 환경을 제공합니다.

핵심 포인트
  • • Infrastructure as Code(IaC) 도구
  • • 인프라를 코드로 선언하고 자동화
  • • 멀티 클라우드 지원으로 다양한 제공자 통합 관리
답변에 넣으면 좋은 키워드
Infrastructure as Code IaC 선언적 멀티 클라우드 자동화 프로비저닝
실무에서는

여러 환경(개발, 스테이징, 프로덕션)에 동일한 인프라를 일관되게 배포할 때 사용됩니다.

Follow-up 질문

Terraform과 같은 IaC 도구를 사용하지 않고 인프라를 수동으로 관리할 때 발생할 수 있는 문제점은 무엇일까요?

2 Terraform 핵심 구성요소
Easy

Q. Terraform의 Provider는 무엇이며, 왜 필요한지 설명해주세요.

Terraform이 실제 클라우드 서비스와 통신하기 위해 필요한 것이 무엇인지 생각해보세요.

A. 모범답안

Provider는 Terraform이 특정 클라우드 서비스나 API와 상호작용할 수 있도록 해주는 플러그인입니다. AWS, Azure, GCP 같은 클라우드 제공자뿐만 아니라 GitHub, Datadog 같은 다양한 서비스를 지원합니다. Provider는 각 서비스의 API를 추상화하여 Terraform 코드로 리소스를 생성, 수정, 삭제할 수 있게 합니다. terraform 블록에서 required_providers를 선언하고, provider 블록에서 인증 정보와 리전 등을 설정합니다. terraform init 명령을 실행하면 필요한 Provider 플러그인이 자동으로 다운로드됩니다.

핵심 포인트
  • • 클라우드 서비스 API와 상호작용하는 플러그인
  • • 다양한 서비스 제공자 지원
  • • terraform init으로 자동 다운로드
답변에 넣으면 좋은 키워드
Provider 플러그인 API terraform init required_providers 인증
실무에서는

AWS에서 EC2 인스턴스를 생성하면서 동시에 Datadog에 모니터링을 설정할 때 각각의 Provider를 사용합니다.

Follow-up 질문

하나의 Terraform 프로젝트에서 여러 개의 Provider를 동시에 사용할 수 있나요? 어떤 상황에서 그렇게 할까요?

3 Terraform State
Medium

Q. Terraform State 파일이 무엇이고, 왜 중요한지 설명해주세요.

Terraform이 현재 인프라 상태를 어떻게 추적하고 변경사항을 파악하는지 생각해보세요.

A. 모범답안

State 파일(terraform.tfstate)은 Terraform이 관리하는 실제 인프라의 현재 상태를 저장하는 JSON 형식의 파일입니다. Terraform은 코드에 선언된 원하는 상태와 State 파일의 현재 상태를 비교하여 어떤 변경이 필요한지 계획(plan)을 수립합니다. State 파일에는 리소스 ID, 속성값, 의존성 정보 등이 포함되어 있어 인프라를 정확히 관리할 수 있습니다. 팀 협업 시에는 로컬이 아닌 원격 백엔드(S3, Terraform Cloud 등)에 State를 저장하여 동시 수정을 방지하고 일관성을 유지합니다. State 파일에는 민감한 정보가 포함될 수 있어 보안 관리가 필요합니다.

핵심 포인트
  • • 실제 인프라의 현재 상태를 저장하는 파일
  • • 원하는 상태와 현재 상태를 비교하여 변경사항 파악
  • • 원격 백엔드 사용으로 팀 협업과 동시 수정 방지
답변에 넣으면 좋은 키워드
State terraform.tfstate 원격 백엔드 동시성 상태 추적 plan
실무에서는

여러 개발자가 동일한 인프라를 관리할 때 S3 백엔드와 DynamoDB 락을 사용하여 State 충돌을 방지합니다.

Follow-up 질문

State 파일을 Git에 커밋하지 말아야 하는 이유는 무엇일까요?

4 Terraform 워크플로우
Medium

Q. Terraform의 기본 워크플로우인 init, plan, apply의 각 단계가 무엇을 하는지 설명해주세요.

각 명령어가 실행되는 순서와 각 단계에서 일어나는 작업을 생각해보세요.

A. 모범답안

terraform init은 작업 디렉토리를 초기화하는 명령으로, Provider 플러그인을 다운로드하고 백엔드를 설정하며 모듈을 가져옵니다. terraform plan은 현재 State와 코드를 비교하여 어떤 변경이 일어날지 실행 계획을 미리 보여주며, 실제 인프라는 변경하지 않습니다. terraform apply는 plan에서 확인한 변경사항을 실제로 적용하여 인프라를 생성, 수정, 삭제하고 State 파일을 업데이트합니다. apply 실행 전에 plan을 먼저 확인하는 것이 모범 사례이며, apply 시 자동으로 plan이 다시 실행되어 최종 확인을 요청합니다.

핵심 포인트
  • • init: 초기화 및 Provider 다운로드
  • • plan: 변경사항 미리보기 (인프라 변경 없음)
  • • apply: 실제 인프라 변경 및 State 업데이트
답변에 넣으면 좋은 키워드
terraform init terraform plan terraform apply 워크플로우 실행 계획 State 업데이트
실무에서는

프로덕션 배포 전 plan 결과를 팀원들과 리뷰하고 승인받은 후 apply를 실행하여 안전하게 인프라를 변경합니다.

Follow-up 질문

terraform destroy 명령은 언제 사용하며, 실행 시 주의할 점은 무엇일까요?

5 Terraform 리소스와 데이터소스
Medium

Q. Terraform의 Resource와 Data Source의 차이점을 설명해주세요.

인프라를 생성하는 것과 기존 정보를 조회하는 것의 차이를 생각해보세요.

A. 모범답안

Resource는 Terraform이 생성하고 관리하는 인프라 구성요소로, resource 블록으로 정의하며 실제로 리소스를 생성, 수정, 삭제합니다. 예를 들어 aws_instance 리소스는 새로운 EC2 인스턴스를 생성합니다. Data Source는 기존에 존재하는 리소스나 정보를 읽기 전용으로 조회하는 것으로, data 블록으로 정의하며 인프라를 변경하지 않습니다. 예를 들어 data aws_ami는 기존 AMI 정보를 조회하여 EC2 생성 시 사용할 수 있습니다. Data Source는 Terraform 외부에서 관리되는 리소스 정보를 참조하거나, 동적으로 값을 가져올 때 유용합니다.

핵심 포인트
  • • Resource: 인프라를 생성/관리하는 구성요소
  • • Data Source: 기존 리소스 정보를 읽기 전용으로 조회
  • • Data Source는 인프라를 변경하지 않음
답변에 넣으면 좋은 키워드
Resource Data Source resource 블록 data 블록 읽기 전용 조회
실무에서는

기존 VPC ID를 Data Source로 조회하여 새로운 서브넷이나 보안 그룹을 생성할 때 사용합니다.

Follow-up 질문

어떤 상황에서 Data Source를 사용하는 것이 유용할까요? 구체적인 예시를 들어주세요.

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!