CloudPass LogoCloud Pass
AWSGoogle CloudMicrosoftCiscoCompTIADatabricks
Certifications
AWSGoogle CloudMicrosoftCiscoCompTIADatabricks
Microsoft AZ-204
Microsoft AZ-204

Practice Test #3

50개 문제와 100분 시간 제한으로 실제 시험을 시뮬레이션하세요. AI 검증 답안과 상세 해설로 학습하세요.

50문제100분700/1000합격 점수
기출 문제 보기

AI 기반

3중 AI 검증 답안 및 해설

모든 답안은 3개의 최고 AI 모델로 교차 검증하여 최고의 정확도를 보장합니다. 선택지별 상세 해설과 심층 문제 분석을 제공합니다.

GPT Pro
Claude Opus
Gemini Pro
선택지별 상세 해설
심층 문제 분석
3개 모델 합의 정확도

기출 문제

1
문제 1

사용자 계약을 저장해야 합니다. 계약이 완료된 후 어디에 저장해야 합니까?

Azure Storage queue는 완료된 계약을 나타내는 경량 작업 항목을 유지하여 다운스트림 구성 요소가 이를 비동기로 처리할 수 있게 하는 데 가장 적합합니다. durable하고 비용이 낮으며 Azure Functions 트리거와 잘 통합됩니다. 메시지 크기 제한 때문에 전체 서명 문서가 아니라 계약 metadata(ID, 타임스탬프, blob URL)를 저장하는 데 사용하고, 처리의 분리와 확장성을 유지하십시오.

Azure Event Hubs는 고처리량 event streaming 및 telemetry 수집(예: IoT, 로그)에 최적화되어 있습니다. 이는 구성된 시간 범위 동안 event를 보존하며, 개별 작업을 처리하는 competing workers가 아니라 partitions/consumer groups를 통해 소비됩니다. “나중에 처리하기 위해 완료된 계약 저장”에는 streaming analytics pipeline을 구축하는 경우가 아니라면 일반적으로 잘못된 추상화입니다.

Azure Service Bus topic은 여러 subscription과 고급 messaging 기능(sessions, transactions, dead-lettering, duplicate detection)을 지원하는 publish/subscribe를 제공합니다. 여러 독립 시스템이 반응해야 하는 경우 계약 완료 event에 사용할 수 있습니다. 그러나 단순히 나중에 처리하기 위한 완료된 계약 작업 항목을 저장하는 목적이라면, 일반적으로 Storage queues에 비해 더 복잡하고 비용도 더 듭니다.

Azure Event Grid topic은 push delivery 및 event filtering을 사용하여 event 알림을 handler(Functions, WebHooks, Service Bus 등)로 라우팅하기 위한 것입니다. 완료된 계약을 저장하는 메커니즘이나 작업 queue로 설계된 것이 아닙니다. Event Grid는 “계약 완료”를 여러 subscriber에게 브로드캐스트해야 할 때 적절하지만, 여전히 계약 자체는 다른 곳에 저장하고/또는 작업을 enqueue해야 합니다.

문제 분석

핵심 개념: 이 문제는 나중에 처리하기 위해 완료된 “사용자 계약” 아티팩트를 유지하는 데 어떤 Azure messaging/eventing 서비스가 적절한지 평가합니다. AZ-204에서 이러한 선택지는 서로 다른 messaging 패턴에 매핑됩니다: queue 기반 작업 분산(Storage queues), 엔터프라이즈 messaging(Service Bus), 고처리량 telemetry streaming(Event Hubs), 그리고 event routing(Event Grid). 이들 중 어느 것도 Blob Storage 또는 Cosmos DB와 같은 장기 문서 저장소는 아니므로, 의도는 일반적으로 보관용 저장이 아니라 “비동기 처리를 위해 완료된 계약을 저장”하는 것입니다. A가 정답인 이유: Azure Storage queue는 완료된 계약을 나타내는 작은 메시지(예: 계약 ID, 사용자 ID, 타임스탬프, 그리고 서명된 문서가 저장된 위치를 가리키는 포인터/URL)를 유지하는 가장 단순하고 비용 효율적인 방법입니다. 이는 durable한 at-least-once delivery를 제공하며 웹/API 계층을 다운스트림 프로세서(Functions/WebJobs/worker services)와 분리합니다. 이는 급증하는 부하를 완화하고 producer와 consumer의 독립적인 확장을 가능하게 함으로써 Azure Well-Architected Framework의 reliability 및 performance 원칙과 부합합니다. 주요 기능 / 모범 사례: Storage queues는 고가용성이며, visibility timeout, poison message 처리(dequeue count를 통해), 그리고 Azure Functions 트리거를 지원합니다. 메시지는 작게 유지하고(최대 약 64 KB), 실제 계약 문서는 다른 곳(일반적으로 Blob Storage)에 저장하며 queue에는 metadata/포인터만 넣으십시오. managed identity/SAS를 적절히 사용하고, 저장 시 암호화(기본값) 및 네트워크 격리를 위한 private endpoints를 고려하십시오. 일반적인 오해: “계약 완료”가 event처럼 들리기 때문에 Event Grid와 Event Hubs를 선택하는 경우가 많습니다. 그러나 이러한 서비스는 durable한 작업 항목 저장소나 competing consumers를 위한 것이 아니라 event 배포/streaming을 위한 것입니다. Service Bus topics는 강력하지만, 고급 엔터프라이즈 기능(sessions, transactions, duplicate detection, ordered delivery, 독립 subscription을 가진 여러 subscriber)이 필요한 경우가 아니라면 일반적으로 과한 선택입니다. 시험 팁: 시나리오가 “나중에 작업 수행” 또는 “버퍼링 후 비동기 처리”라면 Queue를 떠올리십시오(단순하고 저비용이면 Storage queue, 고급 엔터프라이즈 요구 사항이면 Service Bus queue/topic). “어떤 일이 발생했음을 여러 시스템에 알림”이라면 Event Grid를 떠올리십시오. “대규모 streaming 데이터 수집”이라면 Event Hubs를 떠올리십시오.

2
문제 2

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 사진을 관리하기 위한 software as a service (SaaS) 서비스를 개발합니다. 사용자는 사진을 web service에 업로드하고, 그러면 web service가 사진을 Azure Storage Blob storage에 저장합니다. storage account 유형은 General-purpose V2입니다. 사진이 업로드되면, 이미지의 mobile-friendly 버전을 생성하고 저장하도록 처리되어야 합니다. 이미지의 mobile-friendly 버전을 생성하는 프로세스는 1분 이내에 시작되어야 합니다. 사진 처리를 시작하는 프로세스를 설계해야 합니다. 솔루션: Blob storage events에서 사진 처리를 트리거합니다. 이 솔루션이 목표를 충족합니까?

예. Blob storage events는 업로드와 같은 blob 변경에 대해 event-driven 방식으로 반응하도록 설계되었으므로, 사진이 저장된 직후 처리를 시작할 수 있습니다. 이 접근 방식은 거의 실시간이며, 1분 이내에 처리를 시작해야 하는 요구 사항에 적합합니다. 또한 새 파일을 찾기 위해 storage account를 polling하는 방식의 지연과 비효율성을 피할 수 있습니다.

아니요는 틀렸습니다. Blob storage events는 blob이 생성되거나 업데이트될 때 후속 서비스를 빠르게 알리도록 특별히 설계되었습니다. 요구 사항은 전체 이미지 변환이 그 시간 내에 완료되어야 한다는 것이 아니라, 프로세스가 1분 이내에 시작되어야 한다는 것입니다. polling 또는 scheduled 방식은 이 요구 사항을 충족하지 못할 수 있지만, Blob storage의 event-based trigger는 이를 충족합니다.

문제 분석

핵심 개념: 이 문제는 Blob이 업로드된 후 Azure Blob storage events를 사용하여 후속 처리를 빠르게 시작할 수 있는지 여부를 테스트합니다. Azure에서 blob-created events는 거의 실시간으로 발생하므로 event-driven 이미지 처리 워크플로에 적합합니다. 정답인 이유: Blob storage events에서 사진 처리를 트리거하는 것은 요구 사항을 충족합니다. blob events는 업로드가 발생한 직후, 일반적으로 1분 이내에 subscriber에게 알리도록 설계되었기 때문입니다. 따라서 mobile-friendly 이미지 버전을 생성하는 것과 같은 asynchronous 처리를 시작하는 데 적합합니다. 주요 기능: Blob storage는 Azure event-driven 패턴과 통합되므로 애플리케이션이 새 blob이 생성될 때 자동으로 반응할 수 있습니다. 이렇게 하면 polling 지연을 피하고 불필요한 compute 사용을 줄일 수 있습니다. 이는 Azure에서 image-processing pipeline에 일반적으로 사용되는 설계입니다. 일반적인 오해: 흔한 실수는 polling 메커니즘, scheduled job 또는 blob scan을 선택하는 것인데, 이러한 방식은 처리를 충분히 빠르게 시작하지 못할 수 있습니다. 또 다른 오해는 이 문제가 특정 compute service를 요구한다고 생각하는 것입니다. 이 문제는 단지 프로세스를 어떻게 시작할지를 묻고 있으며, blob events는 그 요구를 충족합니다. 시험 팁: 요구 사항에 storage 변경 후 처리가 빠르게 시작되어야 한다고 명시되어 있으면, polling보다 event-based trigger를 우선 고려하십시오. Azure Storage blob 업로드의 경우, Blob storage events는 후속 작업을 시작하기 위한 표준적인 거의 실시간 메커니즘입니다.

3
문제 3

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 정답이 둘 이상 있을 수 있고, 다른 문제 세트에는 정답이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 전 세계에 위치한 2,000개의 매장에서 point-of-sale (POS) 디바이스 데이터를 수집하기 위한 Azure 솔루션을 개발하고 있습니다. 단일 디바이스는 24시간마다 2 megabytes (MB)의 데이터를 생성할 수 있습니다. 각 매장 위치에는 데이터를 전송하는 디바이스가 1개에서 5개까지 있습니다. 디바이스 데이터는 Azure Blob storage에 저장해야 합니다. 디바이스 데이터는 디바이스 식별자를 기준으로 상관관계가 지정되어야 합니다. 향후 추가 매장이 개점할 것으로 예상됩니다. 디바이스 데이터를 수신하기 위한 솔루션을 구현해야 합니다. 솔루션: Azure Service Bus를 프로비저닝합니다. correlation filter를 사용하여 디바이스 데이터를 수신하도록 topic을 구성합니다. 이 솔루션이 목표를 충족합니까?

'예'라고 답하는 것은 잘못되었습니다. 이는 Service Bus를 디바이스 telemetry 수집 서비스로 과대평가하기 때문입니다. correlation filter는 메시지를 subscription으로 라우팅하는 데 도움이 될 수 있지만, 안전한 디바이스별 연결, throttling 패턴, IoT 프로토콜 지원과 같은 디바이스 규모 수집 요구 사항을 본질적으로 해결하지는 못합니다. 또한 전 세계의 많은 매장과 향후 성장을 강조하는 이 시나리오는 고 fan-in 이벤트 수집과 Blob storage로의 손쉬운 저장(routing 또는 Capture를 통해)을 위해 설계된 IoT Hub 또는 Event Hubs와 더 잘 부합합니다. 따라서 제안된 Service Bus topic 접근 방식은 의도된 목표를 완전히 충족하지 못합니다.

이 솔루션은 목표를 충족하지 않습니다. Azure Service Bus topic은 전 세계에 분산된 수천 개 디바이스의 telemetry를 수집하는 데 가장 적합한 선택이 아니기 때문입니다. correlation filter는 디바이스 식별자 속성을 기준으로 메시지를 라우팅할 수 있지만, Service Bus에는 디바이스별 ID, 디바이스 인증, telemetry에 최적화된 수집 패턴과 같은 IoT 전용 기능이 부족합니다. Azure에서는 일반적으로 IoT Hub(또는 Capture가 포함된 Event Hubs)를 사용하여 대규모로 디바이스 데이터를 수신한 다음 Blob storage에 저장합니다. 따라서 correlation filter가 있는 Service Bus topic을 사용하는 것은 이 시나리오에 적절한 수집 설계가 아닙니다.

문제 분석

핵심 개념: 이 문제는 Azure Blob storage에 저장되기 전에 디바이스 식별자를 기준으로 라우팅/상관관계 지정되어야 하는 대규모 디바이스 telemetry에 적합한 Azure 수집 서비스를 선택하는지를 평가합니다. 정답인 이유: correlation filter가 있는 Azure Service Bus topic은 대규모 디바이스 telemetry 수집이 아니라 엔터프라이즈 메시징 패턴(애플리케이션 간 명령/이벤트)과 subscription 기반 라우팅을 위해 설계되었습니다. correlation filter는 속성(예: deviceId)을 기준으로 메시지를 라우팅할 수 있지만, Service Bus는 전 세계에 분산된 수천 개 디바이스를 위한 권장 진입점이 아니며, 디바이스 ID 관리, 디바이스별 연결 패턴 또는 telemetry에 최적화된 수집을 기본적으로 제공하지 않습니다. 향후 성장까지 고려한 글로벌 규모의 POS/IoT 스타일 디바이스 데이터의 경우, Azure IoT Hub(또는 순수 스트리밍용 Event Hubs)가 일반적인 수집 계층이며, 이후 데이터는 routing, capture 또는 다운스트림 처리를 통해 Blob Storage에 저장됩니다. 주요 기능 / 구성: - Service Bus Topics/Subscriptions: pub-sub 메시징, 메시지 속성에 대한 correlation filter, 순서가 보장된 처리를 위한 sessions. - IoT Hub: 디바이스별 ID, 디바이스 인증, device-to-cloud telemetry, Blob/Storage endpoint로의 message routing. - Event Hubs: 고처리량 이벤트 수집; Event Hubs Capture는 Azure Blob Storage/ADLS에 자동으로 쓸 수 있습니다. 일반적인 오해: - “correlation filter”를 “대규모 디바이스 상관관계 지정”과 동일시하는 것: 이는 메시지를 subscription으로 라우팅할 뿐이며 IoT 디바이스 관리나 telemetry 수집 최적화를 제공하지 않습니다. - Service Bus를 IoT 수집 서비스로 사용하는 것: Service Bus는 대규모 디바이스 fan-in이 아니라 애플리케이션 메시징 신뢰성과 워크플로에 최적화되어 있습니다. - Blob storage 요구 사항이 Service Bus를 의미한다고 믿는 것: storage는 sink이며, 핵심은 올바른 수집 서비스를 선택하는 것입니다. 시험 팁: - 디바이스가 관련되어 있고 디바이스별 ID/인증 및 확장 가능한 device-to-cloud 수집이 필요한 경우 IoT Hub를 우선 고려하세요. - 고처리량 스트리밍 수집에는 Event Hubs를 우선 고려하고, Blob/ADLS에 저장하려면 Capture를 사용하세요. - 원시 telemetry 수집보다는 엔터프라이즈 메시징(명령, 워크플로, 서비스 분리)에 Service Bus를 사용하세요.

4
문제 4

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 명시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 Azure 솔루션을 개발합니다. Azure Resource Manager에서 특정 resource group에 대한 virtual machine (VM) 액세스 권한을 부여해야 합니다. Azure Resource Manager access token을 획득해야 합니다. 솔루션: X.509 certificate를 사용하여 VM을 Azure Resource Manager에 인증합니다. 이 솔루션이 목표를 충족합니까?

"예"라고 답하는 것은 올바르지 않습니다. X.509 certificate를 사용하여 VM을 Azure Resource Manager에 인증하는 것은 예상되는 VM workload identity 패턴이 아니기 때문입니다. certificate는 service principal(app registration)의 credential로 사용할 수 있지만, 그러려면 Azure AD application을 만들고 관리해야 하며, VM에 private key를 설치하고 보호하고, rotation/expiry도 처리해야 합니다. 반면 managed identity를 사용하면 VM은 secret을 저장하지 않고 IMDS를 통해 token을 획득한 다음, 필요한 resource group 범위로 지정된 RBAC assignment를 사용할 수 있습니다. 따라서 이 맥락에서 certificate 기반 솔루션은 목표를 충족하는 것으로 간주되지 않습니다.

X.509 certificate는 Azure VM이 안전하고 credential이 필요 없는 방식으로 ARM access token을 획득하는 표준 메커니즘이 아닙니다. 권장되는 접근 방식은 VM에서 managed identity를 활성화하고 Azure Instance Metadata Service에서 OAuth 2.0 token을 요청한 다음, Azure RBAC를 사용하여 해당 identity에 특정 resource group에 대한 액세스 권한을 부여하는 것입니다. certificate 기반 인증은 일반적으로 Azure AD app registration(service principal)에 적용되며, VM에서 certificate lifecycle 및 private key를 관리해야 합니다. 이 시나리오는 특히 VM에 resource group에 대한 액세스 권한을 부여하고 ARM token을 획득하는 것에 관한 것이므로, managed identity가 의도된 솔루션이며 certificate 접근 방식은 목표를 충족하지 않습니다.

문제 분석

핵심 개념: 이 문제는 Azure VM에서 실행되는 workload에 대해 Azure Resource Manager (ARM) access token을 획득하는 방법과, Azure AD identity 및 Azure RBAC를 사용하여 해당 workload에 범위가 지정된 권한(예: 특정 resource group)을 부여하는 방법을 테스트합니다. 정답인 이유: X.509 certificate 자체를 사용하는 것은 Azure VM이 ARM에 인증하여 token을 획득하는 권장되거나 의도된 방법이 아닙니다. VM-to-ARM 액세스의 표준 접근 방식은 managed identity(system-assigned 또는 user-assigned)를 사용하는 것이며, 이를 통해 VM에 secret/certificate를 저장하지 않고 Azure Instance Metadata Service (IMDS)에서 token을 요청할 수 있습니다. 그런 다음 필요한 resource group 범위로 해당 managed identity에 Azure RBAC role assignment를 부여합니다. 따라서 제안된 certificate 기반 접근 방식은 이 시나리오에서 명시된 목표를 충족하지 않습니다. 주요 기능 / 구성: - VM의 workload identity를 위한 Azure resource용 managed identity(system-assigned 또는 user-assigned). - Azure Instance Metadata Service (IMDS) token endpoint: http://169.254.169.254/metadata/identity/oauth2/token. - resource group 수준으로 범위가 지정된 Azure RBAC role assignment(최소 권한). - Azure AD app registration 및 certificate credential은 일반적으로 service principal에 사용되며, 기본적인 VM workload identity 패턴으로 사용되지는 않습니다. 일반적인 오해: - Azure compute에서 ARM으로의 비대화형 인증에 certificate가 기본/필수 방법이라고 가정하는 것. - “certificate가 있는 service principal”(app registration credential)과 “VM identity”(managed identity), 그리고 token 획득 방식의 차이를 혼동하는 것. - 목표에 특정 resource group에 대한 액세스 권한 부여가 포함되어 있으며, 이는 managed identity에 대한 RBAC assignment를 통해 가장 깔끔하게 수행된다는 점을 간과하는 것. 시험 팁: - Azure VM이 ARM 또는 다른 Azure service를 호출해야 할 때는 Azure resource용 Managed Identity를 우선적으로 사용하십시오. - 권한을 제한하려면 RBAC scope(subscription/resource group/resource)를 사용하고, managed identity에 role을 할당하십시오. - certificate는 Azure AD app registration(service principal)과 함께 일반적으로 사용되지만, VM에서 credential 관리 부담을 초래합니다. - VM에서 ARM token을 획득할 때는 IMDS가 일반적인 token 획득 메커니즘임을 기억하십시오.

5
문제 5

귀하는 microservice architecture를 사용하는 e-commerce 솔루션을 개발하고 있습니다. 솔루션의 여러 부분 간에 transactional message를 통신하기 위한 communication backplane을 설계해야 합니다. 메시지는 first-in-first-out (FIFO) 순서로 전달되어야 합니다. 무엇을 사용해야 합니까?

Azure Storage Queue는 단순한 asynchronous processing을 위한 기본적이고 비용 효율적인 queue입니다. 높은 scale과 durability를 지원하지만, enterprise message broker는 아니며 Service Bus sessions와 같은 transactional messaging capabilities 및 strict ordering controls를 제공하지 않습니다. ordering은 retries 및 visibility timeouts 같은 요소의 영향을 받을 수 있으므로, 요구 사항이 microservices 간의 FIFO transactional messaging을 명시적으로 요구할 때는 최선의 선택이 아닙니다.

Azure Event Hubs는 high-throughput event ingestion 및 streaming(telemetry, logs, clickstreams)에 최적화되어 있습니다. partitions와 consumer groups를 지원하며, ordering은 partition 내에서만 보장될 뿐 microservices를 위한 transactional FIFO message queue로 보장되지는 않습니다. 또한 reliable inter-service communication에 기대되는 per-message dead-letter queues, request/command semantics, transactional receive/complete patterns 같은 전형적인 broker 기능도 부족합니다.

Azure Service Bus는 microservices 간의 transactional하고 신뢰할 수 있는 messaging을 위한 올바른 선택입니다. durable queues와 topics, dead-lettering, duplicate detection, scheduled messages, transactions를 제공합니다. FIFO를 위해 Sessions를 활성화하고 SessionId를 설정하면 해당 session 내에서 메시지가 순서대로 처리됩니다. 이는 ordered command processing이 필요한 enterprise integration 및 microservice backplane을 위한 표준 Azure service입니다.

Azure Event Grid는 reactive architectures를 위한 event routing service이며 handlers(Functions, WebHooks, Service Bus 등)로 push delivery를 제공합니다 (publish/subscribe). 이는 event notification을 위해 설계되었으며 transactional message processing용이 아닙니다. delivery는 at-least-once이고 ordering은 보장되지 않으므로, microservices 전반의 transactional messages에 대한 strict FIFO 요구 사항을 충족하지 못합니다.

문제 분석

핵심 개념: 이 문제는 microservices에서 communication backplane으로 사용되는 Azure messaging services를 테스트하며, 특히 first-in-first-out (FIFO) 전달이 필요한 transactional messaging을 요구합니다. Azure에서 서비스 간의 신뢰할 수 있고 순서가 보장되는 transactional messaging을 위해 설계된 서비스는 Azure Service Bus (queues/topics)이며, 특히 sessions를 사용할 때 그렇습니다. 정답인 이유: Azure Service Bus는 microservice architecture에 필요한 enterprise messaging pattern을 지원합니다: durable message storage, competing consumers, dead-lettering, duplicate detection, scheduled delivery, 그리고—이 문제에서 특히 중요한—message sessions (SessionId)를 사용할 때의 FIFO ordering입니다. queue 또는 subscription에서 sessions를 활성화하면, Service Bus는 session 내에서 ordered processing을 보장하고 주어진 session은 한 번에 하나의 consumer만 처리하도록 하여 해당 message stream의 FIFO semantics를 유지합니다. Service Bus는 또한 transactions (transaction scope 내에서 send/complete/defer/dead-letter)도 지원하므로, “transactional messages” 요구 사항과 일치합니다. 주요 기능 및 best practices: point-to-point command에는 Service Bus Queue를 사용하고, pub-sub events/commands에는 Topic/Subscription model을 사용합니다. FIFO ordering(세션별)을 달성하려면 Sessions를 활성화하고 partitioning strategy를 설계해야 합니다: ordering boundary를 나타내는 SessionId(예: OrderId 또는 CustomerId)를 선택하십시오. poison messages를 위해 retry policies, max delivery count, dead-letter queues를 구성하십시오. 예측 가능한 latency와 dedicated resources를 위해 Premium tier를 고려하십시오. Standard도 sessions를 지원하지만, 중요한 backplane에는 Premium이 자주 권장됩니다. 이는 Azure Well-Architected Framework의 reliability principles(durable messaging, backpressure, failure isolation)와 일치합니다. 흔한 오해: Storage Queues는 더 단순하고 저렴하지만, Service Bus sessions와 같은 방식의 strict FIFO guarantees를 제공하지 않으며 많은 enterprise messaging 기능(transactions across operations, topics/subscriptions, advanced dead-lettering controls)도 부족합니다. Event Hubs는 high-throughput telemetry streaming용이지 transactional command messaging용이 아닙니다. Event Grid는 at-least-once delivery를 사용하는 event routing용이며 FIFO guarantee가 없습니다. 시험 팁: “transactional messaging,” “FIFO,” “commands,” “microservices backplane,” 또는 “enterprise messaging”을 보면 Azure Service Bus를 떠올리십시오. “telemetry/streaming”이 언급되면 Event Hubs, “Azure resource events에 반응”이 언급되면 Event Grid, “basic features를 갖춘 simple queueing”이 언급되면 Storage Queues를 떠올리십시오.

이동 중에도 모든 문제를 풀고 싶으신가요?

Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.

6
문제 6

HOTSPOT - App Service on Linux에 web app을 배포할 계획입니다. App Service plan을 만듭니다. web app이 포함된 custom Docker image를 만들어 Azure Container Registry에 push합니다. container 내부에서 생성되는 console logs에 실시간으로 액세스해야 합니다. Azure CLI 명령을 어떻게 완성해야 합니까? 답하려면 답안 영역에서 적절한 옵션을 선택하세요. 참고: 각 정답 선택에는 1점이 부여됩니다. Hot Area:

파트 1:

az webapp log ______ --name Contosoweb --resource-group ContosoDevRG

올바른 동사는 `config`입니다: `az webapp log config --name Contosoweb --resource-group ContosoDevRG`. container console log에 실시간으로 액세스하려면 먼저 App Service app에서 logging을 활성화/구성해야 합니다. `config` subcommand는 logging을 켜고 대상(예: filesystem)을 선택하는 데 사용됩니다. 다른 선택지가 틀린 이유: - `download`는 기존 log file을 archive로 다운로드하는 데 사용되며, logging을 활성화하지는 않습니다. - `show`는 현재 logging configuration을 표시하며, 설정을 변경하지는 않습니다. - `tail`은 log를 stream하지만, logging이 이미 활성화/구성되어 있다고 가정합니다. AZ-204에서는 일반적인 흐름을 기억하세요: logging 구성(`az webapp log config ...`) 후 stream(`az webapp log tail ...`)합니다.

파트 2:

______ filesystem

정답은 값이 `filesystem`인 `--docker-container-logging`, 즉 `--docker-container-logging filesystem`입니다. custom Docker image를 사용하는 Linux의 App Service에서 “container 내부에서 생성된 console logs”는 일반적으로 container의 stdout/stderr 출력을 의미합니다. App Service는 이를 Docker container logging을 통해 제공합니다. 이를 `filesystem`으로 설정하면 로그가 App Service file system에 저장되어 스트리밍 및 다운로드할 수 있습니다. 다른 선택지가 틀린 이유: - `--web-server-logging`은 container의 console output이 아니라 platform web server/proxy layer의 HTTP access logs용입니다. - `--application-logging`은 주로 App Service application logging용이며(역사적으로 built-in runtimes와 더 관련이 있음), custom containers의 경우 명시적인 container logging flag가 시험과 관련된 선택입니다. 이 구성은 app의 runtime output이 관찰 가능하도록 보장하여 operational excellence를 지원합니다.

파트 3:

az ______ log ______ --name ContosoWeb --resource-group ContosoDevRG

올바른 리소스는 `webapp`입니다: `az webapp log ... --name ContosoWeb --resource-group ContosoDevRG`. 이미지가 Azure Container Registry (ACR)에 저장되어 있더라도, 필요한 로그는 Azure App Service에서 호스팅되는 실행 중인 워크로드에 의해 생성됩니다. 따라서 `az webapp` command group을 사용하여 App Service web app 리소스의 로그를 관리하고 스트리밍합니다. 다른 선택지가 틀린 이유: - `acr` command는 registry와 image를 관리합니다 (build, import, list tags 등). ACR은 다른 곳에서 실행 중인 container에 대한 runtime console log를 제공하지 않습니다. - `aks` command는 Kubernetes cluster와 workload를 관리합니다. 이 시나리오는 명시적으로 Linux의 App Service를 사용하며, AKS가 아닙니다. 시험 문제에서는 항상 코드가 실행되는 위치(App Service)와 artifact가 저장되는 위치(ACR)를 구분해야 합니다. Logging/streaming은 runtime host를 대상으로 합니다.

파트 4:

az webapp log ______ --name ContosoWeb --resource-group ContosoDevRG

올바른 하위 명령은 `tail`입니다: `az webapp log tail --name ContosoWeb --resource-group ContosoDevRG`. `tail`은 App Service app의 로그를 실시간으로 스트리밍하며, 이는 컨테이너 내부에서 생성된 console logs에 “실시간으로” 액세스해야 한다는 요구 사항과 일치합니다. 이것은 Azure portal에서 “Log stream”을 사용하는 것과 동일한 CLI 방식입니다. 다른 선택지가 틀린 이유: - `config`는 logging을 구성하지만 출력을 스트리밍하지는 않습니다. - `download`는 누적된 로그를 파일로 가져오며(오프라인 분석에 유용), 실시간 스트리밍은 아닙니다. - `show`는 현재 logging 구성을 표시합니다. 실무에서는 filesystem에 대한 container logging을 활성화한 다음(`az webapp log config ... --docker-container-logging filesystem`), `az webapp log tail ...`을 실행하여 컨테이너가 실행되는 동안 stdout/stderr를 모니터링함으로써 빠른 troubleshooting 및 incident response를 지원합니다.

7
문제 7

DRAG DROP - Azure Blob storage를 사용하기 위한 애플리케이션을 개발하고 있습니다. Azure Blob storage가 change feeds를 포함하도록 구성했습니다. 스토리지 계정의 복사본을 다른 region에 만들어야 합니다. 데이터는 현재 스토리지 계정에서 새 스토리지 계정으로 스토리지 서버 간에 직접 복사되어야 합니다. 다른 region에 스토리지 계정의 복사본을 만들고 데이터를 복사해야 합니다. 어떤 순서로 작업을 수행해야 합니까? 답하려면 작업 목록의 모든 작업을 답 영역으로 이동하고 올바른 순서로 정렬하세요. 선택 후 배치:

파트 1:

아래 이미지에서 올바른 답을 선택하세요.

question-image

정답 A (통과)가 적절한 이유는 프롬프트와 나열된 작업을 통해 올바른 작업 순서를 결정할 수 있기 때문입니다. 올바른 순서: 1) Resource Manager template를 export합니다. 2) storage account 이름과 region을 변경하여 template를 수정합니다. 3) 새 template deployment를 생성합니다. 4) target region에 새 storage account를 생성하기 위해 template를 deploy합니다. 5) AzCopy를 사용하여 데이터를 새 storage account로 복사합니다. 이것이 올바른 이유: ARM template를 export하면 기존 storage account의 구성을 캡처하여 일관되게 다시 만들 수 있습니다. deployment 전에 이름(전역적으로 고유해야 함)과 location(target region)을 변경해야 합니다. Azure에서 “create a deployment”는 “deploy”보다 앞서며, 이는 수정된 template를 사용하여 deployment를 시작하는 워크플로를 반영합니다. 마지막으로 AzCopy는 service-to-service Blob copy에 사용되며, 이는 client machine을 거치지 않고 storage server 간에 직접 데이터가 복사되어야 한다는 요구 사항을 충족합니다. 다른 어떤 순서도 IaC 기반 account 생성과 server-side data copy 요구 사항을 모두 충족하지 않습니다.

8
문제 8

DRAG DROP - 당신은 microservices 솔루션을 개발하고 있습니다. 이 솔루션을 multinode Azure Kubernetes Service (AKS) cluster에 배포할 계획입니다. 다음 기능이 포함된 솔루션을 배포해야 합니다: ✑ reverse proxy 기능 ✑ 구성 가능한 트래픽 라우팅 ✑ 사용자 지정 인증서를 사용한 TLS 종료 어떤 구성 요소를 사용해야 합니까? 답하려면 적절한 구성 요소를 올바른 요구 사항에 끌어다 놓으세요. 각 구성 요소는 한 번, 여러 번 또는 전혀 사용되지 않을 수 있습니다. 내용을 보려면 창 사이의 분할 막대를 끌거나 스크롤해야 할 수도 있습니다. 참고: 각 정답 선택에는 1점이 부여됩니다. 선택 및 배치:

파트 1:

솔루션을 배포합니다.

예. AKS에서 custom certificate를 사용하여 reverse proxy, configurable routing, 그리고 TLS termination을 포함한 솔루션을 배포하려면, Ingress Controller(일반적으로 Helm 또는 manifests를 통한 NGINX Ingress Controller)를 배포하고 microservices에 대한 Kubernetes Ingress 리소스를 정의해야 합니다. Ingress 규칙은 여러 backend services로의 host/path 기반 라우팅을 제공하여 configurable traffic routing 요구 사항을 충족합니다. custom certificate를 사용한 TLS termination의 경우, certificate와 private key를 포함하는 Kubernetes TLS secret(type kubernetes.io/tls)을 생성한 다음, Ingress spec의 tls 아래에서 해당 secret을 참조합니다. 이렇게 하면 ingress 계층에서 HTTPS가 종료되고 내부 services로 HTTP가 전달됩니다(또는 구성된 경우 다시 암호화됨). 이것은 AKS에서 이러한 요구 사항을 위한 표준 Kubernetes 패턴입니다.

파트 2:

클러스터 및 외부 IP addressing을 확인합니다.

예. type이 LoadBalancer인 Kubernetes Service를 사용하여 Ingress Controller를 노출하면, AKS는 Azure와 통합되어 Azure Load Balancer를 프로비저닝하고 public IP address를 할당합니다. kubectl get svc -A(또는 ingress namespace 내에서)를 사용하고 프로비저닝이 완료되면 EXTERNAL-IP 필드를 확인하여 클러스터 서비스와 외부 IP를 볼 수 있습니다. Azure에서는 AKS 클러스터와 연결된 node resource group(MC_*)에서 생성된 Public IP resource와 Load Balancer도 확인할 수 있습니다. 이는 ingress entry point가 외부에서 도달 가능한 IP를 가진 service로 표현되므로, 클러스터 및 외부 IP addressing을 확인해야 한다는 요구 사항을 직접적으로 지원합니다.

파트 3:

여러 microservices로 라우팅되는 단일 public IP endpoint를 구현합니다.

예. 여러 microservices로 라우팅되는 단일 public IP endpoint는 Ingress Controller + Ingress rules가 정확히 제공하는 기능입니다. public IP는 ingress controller 앞단에 있는 LoadBalancer service에 연결됩니다. 그 단일 IP에서(그리고 일반적으로 단일 DNS name에서) ingress controller는 host header 및/또는 URL path를 기반으로 서로 다른 Kubernetes services로 Layer 7 routing을 수행합니다(예: /api는 한 service로, /orders는 다른 service로). 이는 외부 노출을 통합하고, 필요한 public IP와 load balancer의 수를 줄이며, ingress traffic 제어를 위한 best practices와도 부합합니다. 각 service를 자체 LoadBalancer로 노출하는 대안은 “single public IP endpoint” 요구 사항을 충족하지 못하며, 일반적으로 비용 효율성도 떨어지고 관리도 더 어렵습니다.

9
문제 9

당신은 웹사이트를 개발합니다. 웹사이트를 Azure에서 호스팅할 계획입니다. 웹사이트가 게시된 후 높은 트래픽을 경험할 것으로 예상합니다. 비용을 최소화하면서도 웹사이트가 계속 사용 가능하고 응답성을 유지하도록 해야 합니다. 웹사이트를 배포해야 합니다. 어떻게 해야 합니까?

오답입니다. 단일 virtual machine은 App Service나 VM Scale Sets처럼 스스로 “자동으로 scale”할 수 없습니다. VM의 크기를 조정(scale up)할 수는 있지만, 이는 중단을 유발하며 일반적인 autoscale 패턴이 아닙니다. 높은 트래픽의 경우 일반적으로 scale out(여러 instance)과 load balancing이 필요하지만, 이 옵션은 이를 제공하지 않습니다. 또한 운영 오버헤드(patching, 구성, 가용성)도 증가합니다.

오답입니다. Shared App Service tier는 dev/test용으로 설계되었으며 상당한 제한이 있습니다. 이 문제에서 특히 중요한 점은 Shared tier가 autoscale을 지원하지 않는다는 것입니다. 수동으로 scale할 수 있다고 하더라도, Shared는 리소스가 제한적이며 높은 트래픽의 프로덕션 워크로드용이 아닙니다. Shared를 선택하면 부하 시 응답성과 가용성이 저하될 위험이 있어 요구 사항을 위반하게 됩니다.

부분적으로는 가능하지만 최선은 아닙니다. VM Scale Sets는 CPU 기반으로 scale out할 수 있고 높은 트래픽을 처리할 수 있지만, load balancer/Application Gateway, VM image 관리, patching, monitoring, resiliency를 포함한 전체 웹 호스팅 스택도 함께 설계해야 합니다. 이러한 추가 운영 복잡성과 관리 비용 때문에 일반적인 웹사이트 시나리오에서는 보통 App Service보다 비용 효율성이 떨어집니다.

정답입니다. App Service Standard tier는 autoscale을 지원하므로 여러 instance로 scale out하여 트래픽 급증 중에도 앱의 응답성을 유지하고, 다시 scale in하여 비용을 줄일 수 있습니다. 또한 기본 제공 load balancing, 관리형 플랫폼 운영, 그리고 프로덕션 기능(예: deployment slots)을 제공합니다. 이는 탄력적 scaling과 줄어든 관리 오버헤드를 통해 가용성/응답성 요구 사항을 충족하면서 비용을 최소화합니다.

문제 분석

핵심 개념: 이 문제는 높은 트래픽이 예상되는 웹 앱에 대해, 가용성/응답성을 유지하면서 비용을 최소화할 수 있는 올바른 Azure compute 호스팅 모델을 선택하는지를 평가합니다. 핵심 서비스는 autoscale을 지원하는 Azure App Service (PaaS)와 IaaS 옵션(VMs/VM Scale Sets)입니다. 정답이 맞는 이유: Standard tier의 Azure App Service는 CPU, memory 또는 HTTP queue length와 같은 메트릭을 기반으로 autoscale(scale out/in)을 지원합니다. 이는 부하가 증가할 때 instance를 추가하고 부하가 감소할 때 instance를 제거함으로써 “게시 후 높은 트래픽”에 직접 대응하고, 비용을 최적화합니다. 또한 App Service는 instance 전반에 걸친 기본 제공 load balancing, 관리되는 OS/runtime patching, 그리고 App Service plan 내의 고가용성을 제공합니다. VMs를 실행하고 관리하는 것과 비교하면, App Service는 운영 오버헤드를 줄이고 Azure Well-Architected Framework(Operational Excellence, Reliability, Cost Optimization)에 부합합니다. 주요 기능 및 모범 사례: - Standard tier(이상)는 Azure Monitor Autoscale을 통한 autoscale 규칙을 지원합니다. - Scale out은 더 많은 instance를 추가하고, scale up은 SKU를 변경합니다. 트래픽 급증의 경우 일반적으로 scale out이 주요 수단입니다. - 기본 제공 플랫폼 기능: health monitoring, deployment slots(Standard+), 통합 load balancing. - 비용 최적화: 과도한 프로비저닝을 방지하기 위해 최소/최대 instance 수와 scale 규칙을 구성하고, 예측 가능한 피크에 대해서는 scheduled scaling을 고려합니다. 흔한 오해: - “Shared tier + autoscale”은 더 저렴해 보일 수 있지만, Shared는 autoscale을 지원하지 않으며 dev/test용의 리소스 제약이 있습니다. - “autoscale이 있는 단일 VM”은 유효한 접근 방식이 아닙니다. autoscale에는 여러 instance(VM Scale Sets) 또는 instance를 추가할 수 있는 PaaS가 필요합니다. - VM Scale Sets도 scale할 수 있지만, OS patching, web server 구성, 그리고 종종 외부 load balancer/application gateway까지 관리해야 하므로 일반적인 웹 앱에서는 보통 더 높은 운영 비용과 복잡성이 발생합니다. 시험 팁: AZ-204에서는 요구 사항이 IaaS(custom OS, 특수 networking, legacy dependencies)를 강제하지 않는 한 웹 앱에는 기본적으로 App Service를 선택하세요. 기억할 점: autoscale에는 적격 tier가 필요합니다(App Service의 경우 Standard 이상). 문제가 웹 호스팅에 대해 관리 오버헤드와 비용 최소화를 강조한다면, autoscale이 있는 App Service가 일반적으로 가장 적합합니다.

10
문제 10
(2개 선택)

클라이언트에게 Azure API Management 관리형 웹 서비스를 제공합니다. 백엔드 웹 서비스는 HTTP Strict Transport Security (HSTS)를 구현합니다. 백엔드 서비스에 대한 모든 요청에는 유효한 HTTP authorization header가 포함되어야 합니다. 인증 정책을 사용하여 Azure API Management 인스턴스를 구성해야 합니다. 사용할 수 있는 두 가지 정책은 무엇입니까? 각 정답은 완전한 솔루션을 제시합니다. 참고: 각 정답 선택에는 1점이 부여됩니다.

Basic Authentication이 정답인 이유는 Basic scheme을 사용하여 HTTP Authorization header에 자격 증명을 명시적으로 전송하기 때문입니다. Azure API Management에서 authentication-basic 정책은 백엔드 인증을 위해 설계되었으며 outbound request에 필요한 header를 추가합니다. 이는 백엔드에 대한 모든 요청에 유효한 Authorization header가 포함되어야 한다는 요구 사항을 직접 충족합니다. token 기반 방식보다 덜 현대적이긴 하지만, 백엔드가 Basic auth를 허용하는 경우 여전히 완전하고 지원되는 솔루션입니다.

Digest Authentication은 문제에서 묻는 방식의 백엔드 인증에 대해 지원되는 APIM 인증 정책 옵션이 아닙니다. HTTP Digest가 프로토콜 수준에서는 Authorization-header 기반 scheme이기는 하지만, Azure API Management는 이 시나리오에서 Basic Authentication 또는 OAuth client credentials에 상응하는 내장 인증 정책을 제공하지 않습니다. 따라서 시험에서 기대하는 유효한 APIM 정책 답변 중 하나가 아닙니다. 이 시험은 일반적인 HTTP 인증 방식이 아니라 실제 APIM 정책 기능에 초점을 둡니다.

Certificate Authentication이 오답인 이유는 client certificate가 HTTP Authorization header가 아니라 TLS handshake 중에 제시되기 때문입니다. 문제는 백엔드에 대한 모든 요청에 유효한 HTTP Authorization header가 포함되어야 한다고 명시하고 있으며, mutual TLS만으로는 이 조건을 충족하지 않습니다. HSTS도 이를 바꾸지 않습니다. HSTS는 HTTPS만 강제할 뿐 HTTP header에 대해서는 아무것도 말하지 않기 때문입니다. certificate 기반 인증은 연결을 보호할 수는 있지만, 명시된 header 요구 사항에 대한 완전한 답은 아닙니다.

OAuth Client Credential Grant가 정답인 이유는 APIM이 사용자 컨텍스트 없이 자체적으로 OAuth 2.0 access token을 획득한 다음, 해당 token을 HTTP Authorization header에 Bearer token으로 전송할 수 있기 때문입니다. 이는 보호된 API를 위한 표준 서비스 간 패턴이며 일반적으로 Microsoft Entra ID와 함께 사용됩니다. 이는 각 백엔드 요청에 유효한 Authorization header가 포함되어야 한다는 요구 사항을 완전히 충족합니다. APIM에서는 백엔드와 identity provider에 따라 authentication-managed-identity 또는 OAuth 관련 정책 패턴을 통해 이를 구현합니다.

문제 분석

핵심 개념: 이 문제는 APIM이 인증이 필요한 백엔드를 호출할 때 사용하는 Azure API Management 인증 정책에 관한 것입니다. 핵심 요구 사항은 각 백엔드 요청에 유효한 HTTP Authorization header가 포함되어야 한다는 것이며, 이는 해당 header를 명시적으로 채우는 방식들을 가리킵니다. 정답인 이유: Basic Authentication과 OAuth Client Credential Grant는 모두 백엔드로 HTTP Authorization header에 자격 증명을 전송하는 APIM 지원 방식입니다. Basic Authentication은 Basic 자격 증명이 포함된 Authorization header를 전송하고, OAuth Client Credential Grant는 access token을 획득하여 Authorization: Bearer <token>으로 전송합니다. 주요 특징: Basic Authentication은 간단하며 username과 password를 사용해 Authorization header를 직접 설정합니다. OAuth Client Credential Grant는 표준 서비스 간 OAuth 2.0 흐름이며, 일반적으로 Microsoft Entra ID 또는 다른 authorization server와 함께 사용되어 백엔드 API용 bearer token을 획득합니다. 일반적인 오해: HSTS는 인증 정책 선택과 관련이 없습니다. HSTS는 HTTPS 사용만 강제하며 identity 또는 authorization를 제공하지 않습니다. Certificate authentication은 TLS handshake 중에 mutual TLS를 사용하며, 그 자체로는 HTTP Authorization header를 생성하지 않으므로 명시된 요구 사항을 충족하지 않습니다. 시험 팁: 문제에서 백엔드에 HTTP Authorization header가 필요하다고 명시하면, 실제로 해당 header를 생성하는 정책을 우선 고려하십시오. client certificate와 같은 transport-layer authentication과 HTTP header로 전달되는 application-layer authentication을 구분하십시오.

다른 모의고사

Practice Test #1

50 문제·100분·합격 700/1000

Practice Test #2

50 문제·100분·합격 700/1000

Practice Test #4

50 문제·100분·합격 700/1000

Practice Test #5

50 문제·100분·합격 700/1000
← 모든 Microsoft AZ-204 문제 보기

지금 학습 시작하기

Cloud Pass를 다운로드하고 모든 Microsoft AZ-204 기출 문제를 풀어보세요.

Get it on Google PlayDownload on the App Store
Cloud PassCloud Pass

IT 자격증 문제풀이 앱

Get it on Google PlayDownload on the App Store

자격증

AWSGCPMicrosoftCiscoCompTIADatabricks

법률

FAQ개인정보 처리방침서비스 약관

회사

문의하기계정 삭제

© Copyright 2026 Cloud Pass, All rights reserved.

이동 중에도 모든 문제를 풀고 싶으신가요?

앱 받기

Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.