어떤 Terraform 면접 질문을 예상해야 하나요?
작성자 Aaron Cao · 업데이트

질문은 크게 네 가지로 나뉩니다. 핵심 워크플로(init, plan, apply, destroy), 상태(원격 백엔드, 잠금, 민감한 값), 코드 구조(모듈, 변수, 워크스페이스, 프로바이더), 그리고 드리프트, 도중에 실패한 apply, 수동으로 만든 리소스 가져오기 같은 시나리오입니다. 면접관은 각 선택의 근거를 평가합니다.
면접관이 가장 먼저 확인하는 Terraform 기본기는 무엇인가요?
대부분의 Terraform 면접은 워크플로로 시작해 그 내부에서 일어나는 일로 빠르게 넘어갑니다. 메모 없이 수명 주기를 설명할 수 있어야 합니다. terraform init은 프로바이더를 다운로드하고 백엔드를 구성하며, terraform plan은 원하는 구성과 상태 파일 및 실제 리소스를 비교한 뒤 수행할 작업을 출력합니다. terraform apply는 그 계획을 실행하고, terraform destroy는 구성이 관리하는 항목을 제거합니다. 첫 번째 후속 질문은 거의 항상 plan과 apply가 왜 별도 단계인지이며, 답은 검토와 안전입니다. 변경 전에 계획을 살펴보고 승인하고 저장할 수 있습니다.
- 프로바이더. AWS, Azure, Google Cloud, Kubernetes 같은 API와 통신하는 플러그인입니다. 후속 질문: 프로바이더 버전을 왜 고정하나요?
- 리소스와 데이터 소스. 리소스는 Terraform이 생성하고 소유하는 대상이며, 데이터 소스는 Terraform이 관리하지 않는 기존 대상을 읽습니다.
- 변수, 로컬 값, 출력. 입력값, 계산된 값, 외부로 내보내는 값입니다. 후속 질문: 비밀 정보가 계획 출력에 나타나지 않게 하려면 어떻게 하나요?
- 의존성 그래프. Terraform은 리소스 간 참조를 바탕으로 작업 순서를 정합니다.
depends_on은 그래프가 파악할 수 없는 의존성에 사용됩니다.
각 명령이 무엇을 읽고 쓰는지 설명하세요. plan은 읽기 전용이고 apply는 인프라와 상태를 모두 변경한다고 말하는 지원자는 이미 이 모델을 이해하고 있음을 보여 준 것입니다.
어떤 상태 및 모듈 질문을 준비해야 하나요?
상태가 중요하다는 사실은 알지만 면접관이 자신의 이해가 닿는 경계를 파고들 것 같다고 느낄 수 있습니다. 타당한 예상이므로 이 섹션에서는 그 경계에 이르는 질문과 완전한 답변에 들어가야 할 내용을 다룹니다.
- 상태는 어디에 저장되며 로컬에 두면 왜 안 되나요? 객체 스토리지 버킷, Terraform Cloud, 데이터베이스 같은 원격 백엔드는 팀이 공유하는 단일 진실 공급원을 제공합니다. 후속 질문은 잠금입니다. 두 사람이 동시에 apply하면 상태가 손상되므로 잠금을 지원하는 백엔드는 두 번째 실행을 거부합니다.
- 상태 파일에는 무엇이 들어 있나요? 민감하다고 여길 수 있는 값을 포함한 리소스 속성이 들어 있습니다. 상태는 비밀 자료로 취급하고 저장 시 암호화하며 접근을 통제해야 한다고 답하세요.
- 모듈. 모듈은 자체 입력과 출력을 갖는 재사용 가능한 리소스 집합입니다. 면접관은 모듈 버전을 관리하는 방법, 모든 일을 처리하려는 모듈을 피하는 방법, 루트 모듈이 하위 모듈을 조합하는 방법을 묻습니다.
- 워크스페이스와 별도 구성의 차이. 워크스페이스를 사용하면 하나의 구성에 여러 상태 파일을 둘 수 있습니다. 함정에 빠진 답은 워크스페이스를 전체 환경 전략으로 보는 것입니다. 프로덕션에는 단순히 워크스페이스를 전환하는 대신 자체 구성, 백엔드, 자격 증명을 두는 편이 일반적입니다.
- 삭제 없이 리팩터링하기. 리소스 이름을 바꾸면 Terraform은 해당 리소스를 삭제하고 다시 만들려고 합니다.
moved블록과terraform state mv가 존재한다는 사실과 각각의 용도를 알아야 합니다.
여기서 모든 답변에 적용할 좋은 원칙은 해당 관행이 방지하는 실패를 명시하는 것입니다. 잠금은 동시 작업으로 인한 손상을 막고, 원격 상태는 노트북마다 상태가 달라지는 일을 막으며, 버전 고정은 일상적인 apply 중 예기치 않은 업그레이드를 방지합니다.
시나리오 질문은 어떻게 진행되나요?
시니어급 면접에서는 정의 대신 상황을 제시합니다. 대표적인 예로, 핀테크 기업의 인프라 역할에 지원한 플랫폼 엔지니어에게 누군가 클라우드 콘솔에서 보안 그룹을 수동으로 변경했고 다음 계획에 아무도 예상하지 못한 차이가 나타나 팀이 적용을 불안해한다는 상황을 줍니다. 좋은 답변은 이를 드리프트라고 명명하고, plan이 실제 상태를 새로 고치면서 이미 이를 드러냈다고 설명하며, 수동 변경을 유지할지 되돌릴지 결정한 다음 구성과 현실을 일치시키거나 선언된 상태를 복원하도록 적용합니다. 면접관이 확인하려는 것은 명령이 아니라 판단입니다.
그 밖에 자주 나오는 시나리오는 도중에 실패한 apply와 그 이후의 상태 모습, Terraform 도입 전에 생성된 리소스를 terraform import로 관리 범위에 넣는 방법, 여러 엔지니어가 있는 팀에서 풀 리퀘스트마다 계획을 실행하고 apply는 한 번만 실행되도록 저장소·백엔드·CI를 구성하는 방법, 변수의 비밀 정보를 대신 어디에서 가져와야 하는지, 리소스 동작을 바꾸는 프로바이더 업그레이드입니다. 모든 경우에 제약 조건을 말하고, 메커니즘을 선택하며, 그 비용을 설명하세요.
이런 답변은 미리 소리 내어 말해 봤을 때 더 수월하게 잘할 수 있습니다. 모의 면접 모드는 후속 질문이 포함된 시나리오 질문을 진행하며, 다른 직무 및 도구별 질문 모음은 직무 및 주제별 면접 질문에서 확인할 수 있습니다.
AI 면접 도우미가 Terraform 면접에 도움이 될 수 있나요?
대화형 면접에서는 도움이 될 수 있지만 한계를 분명히 밝혀야 합니다. SubcueAI의 네이티브 macOS 및 Windows 데스크톱 앱은 시스템 오디오와 마이크를 캡처하고 로컬 오버레이에 짧은 제안을 표시합니다. 따라서 면접관이 상태 잠금이 무엇을 방지하는지 물으면 설명하는 동안 그 메커니즘을 바로 확인할 수 있습니다. 브라우저 확장 프로그램의 사이드 패널은 Chrome 또는 Edge의 브라우저 탭 통화에서 같은 기능을 수행하며, 회의 탭의 오디오만 캡처합니다. 봇이 통화에 참여하지 않고 회의 페이지에 아무것도 삽입되지 않습니다. 설정 단계는 튜토리얼 페이지에 있습니다.
도움이 되지 않는 경우는 감독되는 평가, 화면이 녹화되는 상황, 회사 관리 노트북, 관찰받으며 HCL을 작성하는 실시간 과제입니다. SubcueAI 창립자 Aaron Cao는 이미 아는 내용을 떠올리게 하는 도구이지 지식을 대신하는 도구가 되는 것이 설계 목표가 아니라고 설명합니다. 그래서 이 도우미는 사용자의 이력서와 고유한 표현 방식을 바탕으로 작동합니다. 명확한 사용 한계는 탐지 가능성 주제 모음에 정리되어 있습니다.