12월 21, 2025
31 분 읽기

주니어 클라우드 엔지니어 GCP 인터뷰 질문: 완벽 가이드

interview
career-advice
job-search
entry-level
주니어 클라우드 엔지니어 GCP 인터뷰 질문: 완벽 가이드
MB

Milad Bonakdar

작성자

주니어 클라우드 엔지니어 직군을 위해 Compute Engine, Cloud Storage, VPC, IAM 및 핵심 Google Cloud 개념을 다루는 종합적인 인터뷰 질문으로 필수적인 GCP 기본 사항을 마스터하세요.


소개

Google Cloud Platform(GCP)은 컴퓨팅, 스토리지, 네트워킹, 빅 데이터 및 머신 러닝 기능을 제공하는 포괄적인 클라우드 컴퓨팅 서비스 모음입니다. 주니어 클라우드 엔지니어로서 클라우드 인프라를 구축하고 관리하려면 핵심 GCP 서비스에 대한 기본적인 지식이 필요합니다.

이 가이드에서는 Compute Engine, Cloud Storage, VPC 및 IAM에 중점을 둔 주니어 GCP 클라우드 엔지니어를 위한 필수 면접 질문을 다룹니다.


GCP Compute Engine

1. Google Compute Engine은 무엇이며 주요 사용 사례는 무엇입니까?

답변: Compute Engine은 Google 데이터 센터에서 실행되는 확장 가능한 가상 머신을 제공합니다.

주요 기능:

  • 사용자 정의 또는 미리 정의된 머신 유형
  • 영구 디스크 및 로컬 SSD
  • 비용 절감을 위한 선점형 VM
  • 유지 관리를 위한 라이브 마이그레이션
  • 글로벌 로드 밸런싱

사용 사례:

  • 웹 호스팅
  • 애플리케이션 서버
  • 배치 처리
  • 고성능 컴퓨팅
# VM 인스턴스 생성
gcloud compute instances create my-instance \
  --zone=us-central1-a \
  --machine-type=e2-medium \
  --image-family=debian-11 \
  --image-project=debian-cloud

# 인스턴스 목록 표시
gcloud compute instances list

# 인스턴스에 SSH 접속
gcloud compute ssh my-instance --zone=us-central1-a

# 인스턴스 중지
gcloud compute instances stop my-instance --zone=us-central1-a

희소성: 매우 흔함 난이도: 쉬움


2. 영구 디스크와 로컬 SSD의 차이점을 설명하세요.

답변:

기능영구 디스크로컬 SSD
내구성데이터가 독립적으로 유지됨VM이 중지되면 데이터 손실됨
성능좋음우수함 (낮은 지연 시간)
크기최대 64TB최대 9TB
사용 사례부트 디스크, 데이터 스토리지임시 캐시, 스크래치 공간
비용낮음높음
스냅샷지원됨지원되지 않음

예시:

# 영구 디스크가 있는 VM 생성
gcloud compute instances create my-vm \
  --boot-disk-size=50GB \
  --boot-disk-type=pd-ssd

# 로컬 SSD가 있는 VM 생성
gcloud compute instances create my-vm \
  --local-ssd interface=NVME

희소성: 흔함 난이도: 쉬움-중간


GCP Cloud Storage

3. Cloud Storage의 서로 다른 스토리지 클래스는 무엇입니까?

답변: Cloud Storage는 다양한 액세스 패턴에 대해 여러 클래스를 제공합니다.

클래스사용 사례가용성최소 기간비용
Standard자주 액세스됨99.95%없음가장 높음
Nearline< 월 1회99.9%30일낮음
Coldline< 분기 1회99.9%90일매우 낮음
Archive< 연 1회99.9%365일가장 낮음
# 버킷 생성
gsutil mb -c STANDARD -l us-central1 gs://my-bucket

# 파일 업로드
gsutil cp myfile.txt gs://my-bucket/

# 객체 목록 표시
gsutil ls gs://my-bucket/

# 파일 다운로드
gsutil cp gs://my-bucket/myfile.txt ./

# 스토리지 클래스 변경
gsutil rewrite -s NEARLINE gs://my-bucket/myfile.txt

희소성: 매우 흔함 난이도: 쉬움-중간


GCP VPC (Virtual Private Cloud)

4. VPC는 무엇이며 주요 구성 요소는 무엇입니까?

답변: VPC는 GCP 리소스에 대한 연결을 제공하는 가상 네트워크입니다.

주요 구성 요소:

Loading diagram...

구성 요소:

  1. 서브넷: 지역 IP 범위
  2. 방화벽 규칙: 트래픽 제어
  3. 경로: 트래픽 경로 정의
  4. VPC 피어링: VPC 연결
  5. Cloud VPN: 온프레미스와 연결
# VPC 생성
gcloud compute networks create my-vpc \
  --subnet-mode=custom

# 서브넷 생성
gcloud compute networks subnets create my-subnet \
  --network=my-vpc \
  --region=us-central1 \
  --range=10.0.1.0/24

# 방화벽 규칙 생성 (SSH 허용)
gcloud compute firewall-rules create allow-ssh \
  --network=my-vpc \
  --allow=tcp:22 \
  --source-ranges=0.0.0.0/0

희소성: 매우 흔함 난이도: 중간


5. GCP에서 방화벽 규칙은 어떻게 작동합니까?

답변: 방화벽 규칙은 들어오고 나가는 트래픽을 제어합니다.

특성:

  • 상태 저장 (반환 트래픽 자동 허용)
  • 네트워크 또는 특정 인스턴스에 적용
  • 우선 순위 기반 (0-65535, 낮을수록 우선 순위 높음)
  • 기본값: 나가는 트래픽 허용, 들어오는 트래픽 거부

규칙 구성 요소:

  • 방향 (수신/송신)
  • 우선 순위
  • 작업 (허용/거부)
  • 소스/대상
  • 프로토콜 및 포트
# HTTP 트래픽 허용
gcloud compute firewall-rules create allow-http \
  --network=my-vpc \
  --allow=tcp:80 \
  --source-ranges=0.0.0.0/0 \
  --target-tags=web-server

# 내부 통신 허용
gcloud compute firewall-rules create allow-internal \
  --network=my-vpc \
  --allow=tcp:0-65535,udp:0-65535,icmp \
  --source-ranges=10.0.0.0/8

# 특정 트래픽 거부
gcloud compute firewall-rules create deny-telnet \
  --network=my-vpc \
  --action=DENY \
  --rules=tcp:23 \
  --priority=1000

희소성: 매우 흔함 난이도: 중간


GCP IAM

6. GCP에서 IAM 역할 및 권한을 설명하세요.

답변: IAM은 누가 어떤 리소스에서 무엇을 할 수 있는지 제어합니다.

주요 개념:

  • 구성원: 사용자, 서비스 계정 또는 그룹
  • 역할: 권한 모음
  • 정책: 구성원을 역할에 바인딩

역할 유형:

  1. 기본: 소유자, 편집자, 뷰어 (넓은 범위)
  2. 사전 정의: 서비스별 (예: Compute Admin)
  3. 사용자 정의: 사용자 정의 권한
# 사용자에게 역할 부여
gcloud projects add-iam-policy-binding my-project \
  --member=user:[email protected] \
  --role=roles/compute.instanceAdmin.v1

# 서비스 계정에 역할 부여
gcloud projects add-iam-policy-binding my-project \
  --member=serviceAccount:[email protected] \
  --role=roles/storage.objectViewer

# IAM 정책 목록 표시
gcloud projects get-iam-policy my-project

# 역할 제거
gcloud projects remove-iam-policy-binding my-project \
  --member=user:[email protected] \
  --role=roles/compute.instanceAdmin.v1

모범 사례:

  • 가능하면 사전 정의된 역할을 사용하세요.
  • 최소 권한 원칙을 따르세요.
  • 애플리케이션에 서비스 계정을 사용하세요.
  • 권한을 정기적으로 감사하세요.

희소성: 매우 흔함 난이도: 중간


GCP 핵심 개념

7. GCP 리전과 영역은 무엇입니까?

답변:

리전:

  • 지리적 위치 (예: us-central1, europe-west1)
  • 여러 영역을 포함
  • 독립적인 장애 도메인
  • 지연 시간, 규정 준수, 비용에 따라 선택

영역:

  • 리전 내의 격리된 위치
  • 단일 장애 도메인
  • 고가용성을 위해 여러 영역에 배포
Loading diagram...

예시:

# 리전 목록 표시
gcloud compute regions list

# 영역 목록 표시
gcloud compute zones list

# 특정 영역에 인스턴스 생성
gcloud compute instances create my-vm \
  --zone=us-central1-a

희소성: 매우 흔함 난이도: 쉬움


8. 서비스 계정은 무엇이며 언제 사용합니까?

답변: 서비스 계정은 애플리케이션 및 VM을 위한 특별한 계정입니다.

특성:

  • 사람이 아님
  • 애플리케이션에서 사용
  • IAM 역할을 가질 수 있음
  • 인증을 위한 키를 생성할 수 있음

사용 사례:

  • Cloud Storage에 액세스하는 VM 인스턴스
  • GCP API를 호출하는 애플리케이션
  • CI/CD 파이프라인
  • 프로젝트 간 액세스
# 서비스 계정 생성
gcloud iam service-accounts create my-sa \
  --display-name="내 서비스 계정"

# 서비스 계정에 역할 부여
gcloud projects add-iam-policy-binding my-project \
  --member=serviceAccount:[email protected] \
  --role=roles/storage.objectViewer

# VM에 연결
gcloud compute instances create my-vm \
  [email protected] \
  --scopes=cloud-platform

희소성: 흔함 난이도: 쉬움-중간


서버리스 및 메시징

9. Cloud Pub/Sub은 무엇이며 언제 사용합니까?

답변: Cloud Pub/Sub은 비동기 통신을 위한 완전 관리형 메시징 서비스입니다.

주요 개념:

  • 토픽: 메시지가 전송되는 명명된 리소스
  • 구독: 메시지 스트림을 나타내는 명명된 리소스
  • 게시자: 토픽에 메시지 전송
  • 구독자: 구독에서 메시지 수신

아키텍처:

Loading diagram...

기본 작업:

# 토픽 생성
gcloud pubsub topics create my-topic

# 구독 생성
gcloud pubsub subscriptions create my-subscription \
  --topic=my-topic \
  --ack-deadline=60

# 메시지 게시
gcloud pubsub topics publish my-topic \
  --message="Hello, World!"

# 메시지 가져오기
gcloud pubsub subscriptions pull my-subscription \
  --auto-ack \
  --limit=10

게시자 예제 (Python):

from google.cloud import pubsub_v1
import json

# 게시자 클라이언트 생성
publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path('my-project', 'my-topic')

# 메시지 게시
def publish_message(data):
    message_json = json.dumps(data)
    message_bytes = message_json.encode('utf-8')
    
    # 속성으로 게시
    future = publisher.publish(
        topic_path,
        message_bytes,
        event_type='order_created',
        user_id='123'
    )
    
    print(f'게시된 메시지 ID: {future.result()}')

# 효율성을 위한 배치 게시
def publish_batch(messages):
    futures = []
    for message in messages:
        message_bytes = json.dumps(message).encode('utf-8')
        future = publisher.publish(topic_path, message_bytes)
        futures.append(future)
    
    # 모든 메시지가 게시될 때까지 대기
    for future in futures:
        future.result()

구독자 예제 (Python):

from google.cloud import pubsub_v1

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path('my-project', 'my-subscription')

def callback(message):
    print(f'수신된 메시지: {message.data.decode("utf-8")}')
    print(f'속성: {message.attributes}')
    
    # 메시지 처리
    try:
        process_message(message.data)
        message.ack()  # 성공적인 처리 확인
    except Exception as e:
        print(f'메시지 처리 오류: {e}')
        message.nack()  # 부정 확인 (재시도)

# 구독
streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)

print(f'{subscription_path}에서 메시지 수신 대기 중...')

try:
    streaming_pull_future.result()
except KeyboardInterrupt:
    streaming_pull_future.cancel()

구독 유형:

1. 풀 구독:

# 구독자가 필요할 때 메시지를 가져옴
gcloud pubsub subscriptions create pull-sub \
  --topic=my-topic

2. 푸시 구독:

# Pub/Sub이 HTTPS 엔드포인트로 메시지를 푸시
gcloud pubsub subscriptions create push-sub \
  --topic=my-topic \
  --push-endpoint=https://myapp.example.com/webhook

사용 사례:

  • 이벤트 기반 아키텍처
  • 마이크로서비스 통신
  • 스트림 처리 파이프라인
  • IoT 데이터 수집
  • 비동기 작업 처리

모범 사례:

  • 필터링을 위해 메시지 속성 사용
  • 멱등성 메시지 처리 구현
  • 적절한 승인 마감일 설정
  • 실패한 메시지에 대한 데드 레터 토픽 사용
  • 구독 백로그 모니터링

희소성: 흔함 난이도: 중간


10. Cloud Functions는 무엇이며 어떻게 배포합니까?

답변: Cloud Functions는 이벤트 기반 애플리케이션을 구축하기 위한 서버리스 실행 환경입니다.

트리거:

  • HTTP 요청
  • Cloud Pub/Sub 메시지
  • Cloud Storage 이벤트
  • Firestore 이벤트
  • Firebase 이벤트

HTTP 함수 예제:

# main.py
import functions_framework
from flask import jsonify

@functions_framework.http
def hello_http(request):
    """HTTP Cloud Function"""
    request_json = request.get_json(silent=True)
    
    if request_json and 'name' in request_json:
        name = request_json['name']
    else:
        name = 'World'
    
    return jsonify({
        'message': f'Hello, {name}!',
        'status': 'success'
    })

Pub/Sub 함수 예제:

import base64
import json
import functions_framework

@functions_framework.cloud_event
def process_pubsub(cloud_event):
    """Pub/Sub 메시지에 의해 트리거됨"""
    # 메시지 디코딩
    message_data = base64.b64decode(cloud_event.data["message"]["data"]).decode()
    message_json = json.loads(message_data)
    
    print(f'메시지 처리 중: {message_json}')
    
    # 메시지 처리
    result = process_data(message_json)
    
    return result

Storage 함수 예제:

import functions_framework

@functions_framework.cloud_event
def process_file(cloud_event):
    """Cloud Storage 객체 생성에 의해 트리거됨"""
    data = cloud_event.data
    
    bucket = data["bucket"]
    name = data["name"]
    
    print(f'파일 {name}이(가) {bucket}에 업로드됨')
    
    # 파일 처리
    process_uploaded_file(bucket, name)

배포:

# HTTP 함수 배포
gcloud functions deploy hello_http \
  --runtime=python39 \
  --trigger-http \
  --allow-unauthenticated \
  --entry-point=hello_http \
  --region=us-central1

# Pub/Sub 함수 배포
gcloud functions deploy process_pubsub \
  --runtime=python39 \
  --trigger-topic=my-topic \
  --entry-point=process_pubsub \
  --region=us-central1

# Storage 함수 배포
gcloud functions deploy process_file \
  --runtime=python39 \
  --trigger-resource=my-bucket \
  --trigger-event=google.storage.object.finalize \
  --entry-point=process_file \
  --region=us-central1

# 환경 변수로 배포
gcloud functions deploy my_function \
  --runtime=python39 \
  --trigger-http \
  --set-env-vars DATABASE_URL=...,API_KEY=...

# 특정 메모리 및 시간 초과로 배포
gcloud functions deploy my_function \
  --runtime=python39 \
  --trigger-http \
  --memory=512MB \
  --timeout=300s

요구 사항 파일:

# requirements.txt
functions-framework==3.*
google-cloud-storage==2.*
google-cloud-pubsub==2.*
requests==2.*

로컬에서 테스트:

# Functions Framework 설치
pip install functions-framework

# 로컬에서 실행
functions-framework --target=hello_http --port=8080

# curl로 테스트
curl -X POST http://localhost:8080 \
  -H "Content-Type: application/json" \
  -d '{"name": "Alice"}'

모니터링:

# 로그 보기
gcloud functions logs read hello_http \
  --region=us-central1 \
  --limit=50

# 함수 세부 정보 보기
gcloud functions describe hello_http \
  --region=us-central1

모범 사례:

  • 함수를 작고 집중적으로 유지
  • 구성에 환경 변수 사용
  • 적절한 오류 처리 구현
  • 적절한 시간 초과 값 설정
  • 디버깅에 Cloud Logging 사용
  • 콜드 스타트 시간 최소화

희소성: 매우 흔함 난이도: 쉬움-중간


CLI 및 도구

11. 일반적인 gcloud CLI 명령 및 구성을 설명하세요.

답변: gcloud CLI는 GCP 리소스를 관리하기 위한 기본 도구입니다.

초기 설정:

# gcloud SDK 설치 (macOS)
curl https://sdk.cloud.google.com | bash
exec -l $SHELL

# 초기화 및 인증
gcloud init

# 로그인
gcloud auth login

# 기본 프로젝트 설정
gcloud config set project my-project-id

# 기본 리전/영역 설정
gcloud config set compute/region us-central1
gcloud config set compute/zone us-central1-a

구성 관리:

# 구성 목록 표시
gcloud config configurations list

# 새 구성 생성
gcloud config configurations create dev-config

# 구성 활성화
gcloud config configurations activate dev-config

# 속성 설정
gcloud config set account [email protected]
gcloud config set project dev-project

# 현재 구성 보기
gcloud config list

# 속성 해제
gcloud config unset compute/zone

서비스별 일반적인 명령:

Compute Engine:

# 인스턴스 목록 표시
gcloud compute instances list

# 인스턴스 생성
gcloud compute instances create my-vm \
  --machine-type=e2-medium \
  --zone=us-central1-a

# 인스턴스에 SSH 접속
gcloud compute ssh my-vm --zone=us-central1-a

# 인스턴스 중지/시작
gcloud compute instances stop my-vm --zone=us-central1-a
gcloud compute instances start my-vm --zone=us-central1-a

# 인스턴스 삭제
gcloud compute instances delete my-vm --zone=us-central1-a

Cloud Storage:

# 버킷 목록 표시
gsutil ls

# 버킷 생성
gsutil mb -l us-central1 gs://my-bucket

# 파일 업로드
gsutil cp myfile.txt gs://my-bucket/

# 파일 다운로드
gsutil cp gs://my-bucket/myfile.txt ./

# 디렉토리 동기화
gsutil -m rsync -r ./local-dir gs://my-bucket/remote-dir

# 버킷 라이프사이클 설정
gsutil lifecycle set lifecycle.json gs://my-bucket

IAM:

# IAM 정책 목록 표시
gcloud projects get-iam-policy my-project

# IAM 바인딩 추가
gcloud projects add-iam-policy-binding my-project \
  --member=user:[email protected] \
  --role=roles/viewer

# 서비스 계정 생성
gcloud iam service-accounts create my-sa \
  --display-name="내 서비스 계정"

# 키 생성 및 다운로드
gcloud iam service-accounts keys create key.json \
  [email protected]

Kubernetes Engine:

# 클러스터 목록 표시
gcloud container clusters list

# 자격 증명 가져오기
gcloud container clusters get-credentials my-cluster \
  --zone=us-central1-a

# 클러스터 생성
gcloud container clusters create my-cluster \
  --num-nodes=3 \
  --zone=us-central1-a

유용한 플래그:

# 출력 형식 지정
gcloud compute instances list --format=json
gcloud compute instances list --format=yaml
gcloud compute instances list --format="table(name,zone,status)"

# 결과 필터링
gcloud compute instances list --filter="zone:us-central1-a"
gcloud compute instances list --filter="status=RUNNING"

# 결과 제한
gcloud compute instances list --limit=10

# 결과 정렬
gcloud compute instances list --sort-by=creationTimestamp

도움이 되는 명령:

# 도움말 보기
gcloud help
gcloud compute instances create --help

# 프로젝트 정보 보기
gcloud projects describe my-project

# 사용 가능한 리전/영역 목록 표시
gcloud compute regions list
gcloud compute zones list

# 할당량 보기
gcloud compute project-info describe \
  --project=my-project

# API 활성화
gcloud services enable compute.googleapis.com

# 활성화된 API 목록 표시
gcloud services list --enabled

모범 사례:

  • 다양한 환경에 대한 구성 사용
  • 기본 프로젝트 및 리전 설정
  • 스크립팅에 --format 사용
  • 결과를 좁히기 위해 --filter 사용
  • 명령 완성 활성화
  • gcloud SDK를 최신 상태로 유지

희소성: 매우 흔함 난이도: 쉬움-중간


결론

주니어 GCP 클라우드 엔지니어 면접을 준비하려면 핵심 서비스 및 클라우드 개념을 이해해야 합니다. 다음 사항에 집중하세요.

  1. Compute Engine: VM 인스턴스, 머신 유형, 디스크
  2. Cloud Storage: 스토리지 클래스, 버킷, 라이프사이클
  3. VPC: 네트워킹, 서브넷, 방화벽 규칙
  4. IAM: 역할, 권한, 서비스 계정
  5. 핵심 개념: 리전, 영역, 프로젝트

GCP Console 및 gcloud CLI를 사용하여 직접 경험을 쌓으세요. 행운을 빕니다!

Newsletter subscription

실제로 효과가 있는 주간 커리어 팁

최신 인사이트를 받은 편지함으로 직접 받아보세요

Decorative doodle

다음 면접은 이력서 하나로 결정됩니다

몇 분 만에 전문적이고 최적화된 이력서를 만드세요. 디자인 기술은 필요 없습니다—입증된 결과만 있으면 됩니다.

내 이력서 만들기

이 게시물 공유

6초를 최대한 활용하세요

채용 담당자는 평균적으로 6~7초만 이력서를 훑어봅니다. 우리의 검증된 템플릿은 즉시 주목을 끌고 계속 읽게 하도록 설계되었습니다.