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

Practice Test #5

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

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

AI 기반

3중 AI 검증 답안 및 해설

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

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

기출 문제

1
문제 1
(2개 선택)

Azure messaging services를 사용할 솔루션을 개발하고 있습니다. 솔루션이 publish-subscribe 모델을 사용하고 지속적인 polling의 필요성을 제거하도록 해야 합니다. 목표를 달성하는 두 가지 가능한 방법은 무엇입니까? 각 정답은 완전한 솔루션을 제시합니다. 참고: 각 정답 선택은 1점의 가치가 있습니다.

Service Bus는 Topics 및 Subscriptions를 통해 publish-subscribe를 지원합니다. Topic으로 전송된 message는 여러 Subscriptions로 복사될 수 있어 fan-out이 가능합니다. dead-letter queues, duplicate detection, ordered processing을 위한 sessions, transactions와 같은 durable enterprise messaging 기능을 제공합니다. Azure Functions/Logic Apps triggers를 사용하면 consumer는 지속적인 polling logic을 구현하지 않고도 message를 처리할 수 있습니다.

Event Hubs는 고처리량 event streaming(telemetry ingestion)에 최적화되어 있으며 partitions와 consumer groups를 사용합니다. 여러 consumer groups가 동일한 stream을 읽을 수는 있지만, business messaging에 사용되는 전형적인 pub-sub broker 패턴은 아니며, 소비는 일반적으로 partition에서 pull 기반으로 읽는 방식입니다. push 기반 pub-sub notifications보다는 streaming pipeline(Stream Analytics, Spark)에 가장 적합합니다.

Event Grid는 event-driven architecture를 위해 설계된 완전관리형 event routing service입니다. publisher가 event를 게시하면 Event Grid가 이를 subscriber(webhooks, Azure Functions, Logic Apps 등)에게 retries 및 선택적 dead-lettering과 함께 push하는 publish-subscribe 모델을 사용합니다. 이 push 전달 모델은 consumer가 변경 사항을 polling할 필요를 제거하며 reactive integration에 이상적입니다.

Queue(Azure Storage Queues 등)는 competing consumers를 사용하는 point-to-point messaging을 구현합니다. 각 message는 일반적으로 단일 consumer에 의해 처리됩니다. 기본적인 publish-subscribe fan-out 모델을 제공하지 않습니다. Queue는 triggers와 함께 사용할 때 강한 결합을 줄이고 polling을 줄일 수는 있지만, 여러 subscriber가 동일한 message를 수신하는 pub-sub 요구 사항은 충족하지 않습니다.

문제 분석

핵심 개념: 이 문제는 Azure messaging 패턴, 특히 publish-subscribe (pub-sub) 모델과 지속적인 polling을 피하는 event-driven 전달을 테스트합니다. Azure에서 pub-sub는 publisher가 broker에 message/event를 보내고, 여러 독립적인 subscriber가 subscription/handler를 통해 이를 수신하는 것을 의미합니다. 정답인 이유: Azure Service Bus (A)는 Topics 및 Subscriptions를 통해 pub-sub를 지원합니다. publisher는 Topic에 message를 보내고, 각 Subscription은 자체 복사본을 수신하여 여러 consumer로 fan-out할 수 있습니다. consumer는 application code에서 polling하는 대신 push와 유사한 메커니즘(예: Service Bus-triggered Azure Functions)을 사용하여 message를 받을 수 있습니다. Azure Event Grid (C)는 reactive architecture를 위해 구축된 기본 event routing service입니다. 이 서비스는 subscriber(webhooks, Azure Functions, Logic Apps, Service Bus 등)에게 push 전달 및 retry를 통해 event를 전달하므로, consumer가 변경 사항을 polling할 필요가 없습니다. 주요 기능 / 모범 사례: - Service Bus Topics/Subscriptions: durable messaging, at-least-once delivery, dead-lettering, sessions(ordering), duplicate detection, subscription에 대한 filters/actions, 그리고 transactions를 제공합니다. enterprise messaging 보장과 service 간 decoupling이 필요할 때 사용합니다. - Event Grid: push 기반 event distribution, 많은 Azure source(Storage, Resource Groups 등)와의 기본 통합, filtering, 고급 routing, 그리고 Storage로의 dead-lettering을 포함한 managed retries를 제공합니다. event notification 및 reactive workflow에 사용합니다. Azure Well-Architected Framework 관점에서 둘 다 producer/consumer를 decouple하고 불필요한 polling을 피함으로써 Reliability와 Performance Efficiency를 향상시킵니다. 일반적인 오해: - Event Hubs (B)는 종종 pub-sub로 오해됩니다. 이는 주로 고처리량 telemetry/stream ingestion용이며 partitioned consumer groups를 사용합니다. 전통적인 pub-sub messaging보다는 “streaming”에 더 가깝고, 일반적으로 push 전달보다는 consumer가 partition에서 읽어야 하므로(종종 polling/reading으로 인식됨) 적합하지 않습니다. - Queue (D) (예: Storage Queue)는 pub-sub가 아니라 point-to-point(competing consumers)입니다. 하나의 message는 여러 subscriber에게 fan-out되는 것이 아니라 하나의 consumer에 의해 처리됩니다. 시험 팁: - 문제에서 “publish-subscribe”와 “multiple subscribers”를 언급하면 Service Bus Topics 또는 Event Grid를 떠올리십시오. - “event notifications”와 “push to handlers”를 강조하면 Event Grid가 가장 적합합니다. - “enterprise messaging, workflows, ordering, dead-lettering, transactions”를 강조하면 Service Bus가 가장 적합합니다. - “telemetry, logs, millions of events/sec, streaming analytics”를 강조하면 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분 이내에 시작되어야 합니다. 사진 처리를 시작하는 프로세스를 설계해야 합니다. 솔루션: Azure Storage account를 BlockBlobStorage storage account로 변환합니다. 이 솔루션이 목표를 충족합니까?

"예"라고 답하는 것은 잘못되었습니다. storage account 유형을 변환해도 event-driven pipeline이 생성되지 않으며 처리가 1분 이내에 시작된다고 보장하지도 않습니다. Premium BlockBlobStorage는 blob 읽기/쓰기 성능을 향상시킬 수 있지만, 업로드를 감지하고 처리 로직을 호출하는 메커니즘을 제공하지는 않습니다. 누락된 구성 요소는 event/trigger service(예: Event Grid)와 처리를 시작할 compute 대상(예: Azure Functions)입니다. 따라서 이 변경만으로는 처리를 빠르게 시작한다는 목표를 충족할 수 없습니다.

GPv2 storage account를 BlockBlobStorage account로 변경하는 것은 업로드 후 이미지 처리를 시작하기 위한 어떤 trigger도 구현하지 않습니다. 요구 사항은 1분 이내에 처리를 시작하는 것이며, 이는 blob 생성 events를 compute(예: Azure Function를 트리거하는 Event Grid)에 연결하여 달성합니다. BlockBlobStorage는 주로 blob workload에 대한 성능 계층과 특성을 변경할 뿐, eventing 또는 orchestration 동작을 변경하지 않습니다. 따라서 이 솔루션은 처리가 어떻게 시작되는지를 다루지 않으므로 목표를 충족하지 않습니다.

문제 분석

핵심 개념: 이 문제는 blob이 Azure Storage에 업로드될 때 거의 실시간으로 처리를 트리거하는 방법과, storage account 유형을 변경하는 것이 event-driven 처리 지연 시간에 영향을 주는지를 테스트합니다. 정답인 이유: General-purpose v2 (GPv2) storage account를 BlockBlobStorage (Premium) account로 변환하는 것만으로는 1분 이내에 이미지 처리를 시작하기 위한 event trigger를 생성하거나 가속하지 않습니다. 요구 사항은 업로드 후 처리 workflow를 빠르게 시작하는 것이며, 이는 일반적으로 eventing (Azure Event Grid) 또는 messaging (Storage queues/Service Bus)과 compute (Azure Functions/WebJobs)를 사용하여 달성합니다. storage account 성능 계층/유형은 blob 작업의 throughput/latency를 향상시킬 수는 있지만, 자동으로 “처리 시작” 메커니즘을 제공하지는 않습니다. 주요 기능 / 구성: - Azure Event Grid + BlobCreated events를 사용하여 Azure Functions를 트리거(거의 실시간, 일반적으로 수 초) - Azure Functions Blob trigger (polling 기반이며, plan/runtime에 따라 지연이 있을 수 있고 Event Grid만큼 결정적이지 않음) - Storage queues 또는 Service Bus를 사용하여 업로드와 처리를 분리하고 안정적인 처리를 보장 - GPv2는 Event Grid 통합을 지원하므로 eventing을 위해 account 유형을 변경할 필요가 없음 일반적인 오해: - Premium/BlockBlobStorage account 유형이 자동으로 workflow를 트리거하거나 trigger 지연 시간을 줄인다고 가정하는 것. - storage 성능 특성(IOPS/throughput)과 event notification/trigger 메커니즘을 혼동하는 것. - Event Grid를 사용하려면 account 유형을 변경해야 한다고 믿는 것. GPv2는 이미 이를 지원합니다. 시험 팁: - 빠른 event-driven blob 처리 시작(BlobCreated → Function/Logic App)에는 Event Grid를 사용하세요. - storage account 유형 변경은 workflow triggering이 아니라 성능/비용에 영향을 줍니다. - “X 시간 이내에 시작” 요구 사항에는 가능하면 polling trigger보다 push-based events (Event Grid)를 선호하세요.

3
문제 3

Shipping Logic App을 보안해야 합니다. 무엇을 사용해야 합니까?

Azure App Service Environment (ASE)는 VNet 내부에서 Azure App Service 리소스(Web Apps, API Apps, 일부 Function App 시나리오)를 호스팅하기 위한 격리되고 전용된 environment를 제공합니다. 그러나 Azure Logic Apps를 보안하거나 호스팅하는 표준 메커니즘은 아닙니다. ASE를 선택하는 것은 응시자가 “보안 호스팅”을 “ASE”와 동일시할 때 흔히 하는 실수이지만, Logic Apps는 VNet 삽입을 위해 ISE를 사용합니다.

Integration Service Environment (ISE)가 정답인 이유는 이것이 VNet에 배포되는 전용 single-tenant Logic Apps runtime이기 때문입니다. 이는 private network access, 더 엄격한 inbound/outbound 제어, 그리고 VNet 및 on-prem 리소스에 대한 보안 연결을 가능하게 합니다. “Logic App을 보안하라” 또는 “VNet에서 Logic Apps를 실행하라”와 같은 시험 표현에서는 ISE가 대표적인 솔루션입니다.

VNet service endpoint는 VNet의 identity를 지원되는 Azure PaaS 서비스(Azure Storage 또는 Azure SQL 등)로 확장하여 traffic이 Azure backbone에 머물도록 하고 해당 VNet으로 액세스를 제한할 수 있게 합니다. 그러나 Logic App endpoint 자체를 보안하거나 Logic Apps runtime을 VNet에 배치하지는 않습니다. 이는 종속성을 보안하는 데는 유용하지만 Logic App hosting plane을 보안하는 것은 아닙니다.

Azure AD B2B integration은 외부 identity(guest users)와 협업하고 Azure AD를 사용하여 애플리케이션에 대한 액세스를 관리하는 데 사용됩니다. 이는 사용자에 대한 authentication/authorization를 다루며 network isolation이나 Logic App runtime 보안을 다루지 않습니다. identity control도 중요하지만, B2B는 일반적으로 “Shipping Logic App을 보안하라”에 내포된 private VNet deployment와 traffic 제어를 제공하지 않습니다.

문제 분석

핵심 개념: 이 문제는 Azure Logic App을 public internet으로부터 격리하고 private network access를 활성화하여 보안하는 방법을 테스트합니다. Logic Apps(특히 Logic Apps (Consumption))의 경우, 전용의 network-isolated environment에서 workflow를 실행하는 주요 방법은 Integration Service Environment (ISE)입니다. 정답인 이유: Integration Service Environment (ISE)는 Azure virtual network (VNet)에 삽입되는 Logic Apps runtime의 전용 single-tenant deployment입니다. 이를 통해 Shipping Logic App이 private하게 액세스될 수 있고 public internet을 거치지 않고도 VNet(또는 연결된 network)의 리소스에 도달할 수 있습니다. 시험 시나리오에서 “Logic App을 보안한다”는 것은 일반적으로 network isolation, private endpoints/VNet integration, 그리고 inbound/outbound traffic 제어를 의미하며, ISE는 이를 위해 설계된 Logic Apps 전용 솔루션입니다. 주요 기능 / 모범 사례: - Network isolation: ISE는 VNet에 배포되어 private IP addressing과 더 엄격한 traffic path 제어를 가능하게 합니다. - Enterprise connectivity: VNet에 연결된 리소스(SQL, SAP, VPN/ExpressRoute를 통한 on-prem)와 잘 작동하며 integration account artifact를 지원합니다. - Governance and compliance: Single-tenant isolation은 더 엄격한 compliance 요구 사항을 충족하는 데 도움이 되며 Azure Well-Architected Framework의 security pillar(network segmentation, 최소 노출)와도 부합합니다. - Predictable performance: 전용 capacity(Consumption과는 다른 가격 책정)는 mission-critical shipping workflow에 중요할 수 있습니다. 일반적인 오해: - App Service Environment (ASE)는 App Service app(web apps, APIs, 일부 경우 functions)을 호스팅하기 위한 것이며 Logic Apps runtime용이 아닙니다. Logic App을 private environment로 “이동”시키지 않습니다. - VNet service endpoints는 VNet에서 특정 Azure PaaS 서비스(예: Storage, SQL)로의 액세스를 보안하지만, Logic Apps를 VNet에 배치하거나 Logic App의 inbound endpoint를 보안하지는 않습니다. - Azure AD B2B는 외부 사용자를 위한 identity collaboration이며 Logic Apps에 대한 network isolation을 제공하지 않습니다. 시험 팁: - 질문이 VNet 수준 제어로 Logic App을 보안/격리하는 것에 관한 것이라면 ISE(Logic Apps 전용)를 떠올리십시오. - 질문이 VNet에서 downstream service(Storage/SQL)에 대한 액세스를 보안하는 것에 관한 것이라면 service endpoints 또는 private endpoints를 떠올리십시오. - 항상 서비스를 올바른 isolation construct에 매핑하십시오: ASE = App Service, ISE = Logic Apps.

4
문제 4

DRAG DROP - Contoso, Ltd.는 Azure API Management (APIM)를 사용하여 고객에게 API를 제공합니다. 이 API는 JWT token으로 사용자를 인증합니다. APIM gateway에 대한 response caching을 구현해야 합니다. caching 메커니즘은 지정된 location의 데이터에 액세스하는 클라이언트의 user ID를 감지하고, 해당 user ID에 대해 response를 cache해야 합니다. 정책 파일에 다음 정책을 추가해야 합니다: ✑ 감지된 사용자 ID를 저장하기 위한 set-variable policy ✑ cache-lookup-value policy ✑ cache-store-value policy ✑ user profile 정보로 response body를 업데이트하기 위한 find-and-replace policy 정책을 어느 policy section에 추가해야 합니까? 답하려면 적절한 section을 올바른 정책에 끌어다 놓으십시오. 각 section은 한 번, 여러 번 또는 전혀 사용되지 않을 수 있습니다. 내용을 보려면 창 사이의 분할 막대를 끌거나 스크롤해야 할 수 있습니다. 참고: 각 정답 선택에는 1점이 부여됩니다. Select and Place:

파트 1:

Policy: Set-variable, Policy 섹션: ______

Set-variable는 Inbound 섹션에 배치해야 합니다. 캐싱 결정이 이루어지기 전에 요청 범위 데이터(감지된 사용자 identity)를 도출하고 유지해야 하기 때문입니다. Inbound는 APIM이 들어오는 요청 헤더(Authorization: Bearer <JWT> 포함)에 접근할 수 있고, JWT claims(예: sub, oid, upn)를 파싱하여 안정적인 사용자 식별자를 계산할 수 있는 위치입니다. Inbound에서 사용자 ID를 변수에 저장하면, 이후의 Inbound policies(예: cache-lookup-value)가 "{location}:{userId}"와 같은 cache key를 구성할 수 있습니다. 이를 Outbound까지 기다리면 이미 backend를 호출한 뒤이므로, backend 호출을 피하기 위해 cache를 사용하는 목적을 달성할 수 없습니다. Outbound는 주로 응답 변환과 후처리를 위한 것이며, 요청 기반 routing/caching 결정을 위한 곳이 아닙니다.

파트 2:

Policy: Cache-lookup-value, Policy section: ______

Cache-lookup-value는 backend로 request를 전달하기 전에 cache를 확인하는 것이 목적이므로 Inbound section에 속합니다. cache-lookup-value가 항목을 찾으면 APIM은 cached payload를 즉시 반환하고 backend 호출을 건너뛸 수 있으며, 이것이 gateway caching의 주요 성능 이점입니다. cache lookup을 outbound에 배치하면 너무 늦습니다. backend가 이미 호출된 후이므로 backend load나 latency를 줄일 수 없습니다. Inbound lookup은 또한 request context(location parameter/path + JWT에서 추출한 user ID variable)로부터 cache key를 구성할 수 있도록 보장합니다. 이것은 보안 측면에서도 중요합니다. 사용자별 caching은 어떤 response도 생성되기 전에 적용되어야 하며, 그래야 사용자 간 response가 섞이는 것을 방지할 수 있습니다.

파트 3:

Policy: Cache-store-value, Policy 섹션: ______

Cache-store-value는 Outbound 섹션에 배치해야 합니다. 일반적으로 backend가 응답을 생성한 후(그리고 캐시된 콘텐츠에 반영되어야 하는 outbound 변환 이후)에 응답을 캐시하려고 하기 때문입니다. Outbound는 client에 반환될 최종 응답 body/status/headers를 캡처하는 올바른 단계입니다. Inbound에 저장하면 아직 캐시할 backend 응답이 없습니다. 또한 outbound 수정 후 캐싱하면 일관성이 보장됩니다. 즉, 캐시된 표현이 client가 실제로 받는 내용과 일치합니다(예: user profile 정보를 주입하거나 필드를 정규화한 후). 이 접근 방식은 동일한 user/location 조합에 대해 반복적인 backend 호출을 줄여 Performance Efficiency pillar를 지원합니다.

파트 4:

Policy: Find-and-replace, Policy 섹션: ______

Find-and-replace는 response body transformation policy이므로 Outbound 섹션에 적용해야 합니다. 요구 사항에서 user profile information으로 response body를 업데이트하라고 명시하고 있으며, 이는 response가 존재한 후에만 가능하고 의미가 있습니다. Inbound policies는 request가 backend로 전송되기 전에 request에 대해 동작하므로 response body를 수정하기에 적절한 위치가 아닙니다. Outbound에서는 APIM이 response payload를 읽고 다시 쓸 수 있습니다(예: placeholder token을 user-specific profile data로 교체). 또한 이를 outbound에서 수행하면 cache-store-value를 통해 캐시하는 내용에 transformed content를 포함할 수 있으므로, 동일한 user/location에 대한 후속 요청은 backend logic을 다시 실행하지 않고 entirely from cache로 제공될 수 있습니다.

5
문제 5

HOTSPOT - Contoso, Ltd.에서 근무하고 있습니다. 다음 XML markup을 사용하여 API Policy object를 정의합니다:


  ("bodySize"))
 
 
 
 
 

다음 각 문장에 대해, 문장이 참이면 Yes를 선택하세요. 그렇지 않으면 No를 선택하세요. 참고: 각 정답 선택에는 1점이 부여됩니다. Hot Area:

파트 1:

XML 세그먼트는 policy의 <inbound> 섹션에 속합니다.

예. 들어오는 요청을 검사하는 policy(예: 요청 본문 크기 확인)와 요청 URL을 다시 쓰거나 정규화하는 policy(예: 특정 API version 세그먼트 유지)는 요청이 backend로 전송되기 전에 적용됩니다. 이것이 바로 <inbound> 섹션의 용도입니다. APIM에서 <inbound>는 요청 유효성 검사, header/query/path 조작, 그리고 routing 결정에 적합한 위치입니다. 반면 <outbound>는 backend에서 돌아오는 응답을 변환하는 데 사용되며, <backend>는 APIM이 요청을 어떻게 전달할지 구성하는 데 사용됩니다(예: set-backend-service). 일반적으로 요청 payload 크기를 검증하는 용도로는 사용되지 않습니다. <on-error>는 오류가 발생한 후에만 실행됩니다. 따라서 요청 본문 크기를 평가하고/하거나 요청 path를 다시 쓰는 XML 세그먼트는 <inbound>에 속합니다.

파트 2:

body size가 >256k이면 오류가 발생합니다.

아니요. 256 KB를 초과하는 body size가 정책이 해당 제한을 명시적으로 적용하지 않는 한 자동으로 오류를 발생시키지는 않습니다(예: max-size와 함께 validate-content를 사용하거나, size가 임계값을 초과할 때 오류 응답을 반환하는 choose/when 사용). APIM에는 request body를 읽거나 buffering할 때의 실질적인 제한과 고려 사항이 있지만, 단순히 "bodySize"와 같은 변수를 참조하는 것(코드 조각에서 암시된 것처럼) 자체가 256 KB에서 오류를 발생시키지는 않습니다. 오류는 구성된 제한을 초과하는 body를 읽으려고 시도할 때, buffering이 필요하지만 불가능할 때, 또는 validation policy가 request를 거부하도록 구성된 경우에 발생합니다. 시험에서는 (a) 계산된 값/변수와 (b) 적용 정책을 구분하세요. 256 KB에 연결된 명시적인 reject/return-response/validate-content 규칙이 없다면, 256 KB를 초과하는 것만으로는 오류가 발생한다고 보장되지 않습니다.

파트 3:

요청이 http://contoso.com/api/9.2/인 경우, policy는 더 높은 버전을 유지합니다.

예. http://contoso.com/api/9.2/와 같은 요청에서, 버전을 비교하고 더 높은 버전을 유지하도록 설계된 policy는 더 낮은 버전(예: 9.1 또는 9.0)과 비교할 때 9.2를 유지합니다. 이는 일반적인 APIM 패턴입니다. 즉, path에서 버전 세그먼트를 추출하고, 이를 구성되었거나 예상된 버전과 비교한 다음, 그에 따라 rewrite 또는 route합니다. APIM policy expressions에서는 버전을 비교하는 방식에 주의해야 합니다. policy가 숫자/semantic parsing을 사용하는 경우(예: Version type으로 변환하거나 major/minor 정수로 분리), 9.2는 9.1보다 더 높은 버전으로 올바르게 평가됩니다. 문자열을 단순 비교하는 방식을 사용하면 일부 경우 결과가 잘못될 수 있습니다(예: "9.10"과 "9.2"). 그러나 이 문장은 특히 9.2에 대해 policy가 더 높은 버전을 유지한다고 말하고 있으며, 이는 이러한 policy의 의도된 동작과 일치합니다. 따라서 주어진 시나리오에서 policy는 더 높은 버전을 유지하며, 9.2가 유지됩니다.

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

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

6
문제 6
(2개 선택)

단일 signaling server가 오디오 및 시각적 alarm의 시작과 중지를 트리거하는 hazard notification system을 만들고 있습니다. alarm을 publish하기 위해 Azure Service Bus를 구현합니다. 각 alarm controller는 transaction의 일부로 alarm signal을 수신하기 위해 Azure Service Bus를 사용합니다. audit 목적을 위해 alarm event를 기록해야 합니다. 각 transaction record에는 활성화된 alarm type에 대한 정보가 포함되어야 합니다. reply trail auditing solution을 구현해야 합니다. 어떤 두 가지 작업을 수행해야 합니까? 각 정답은 solution의 일부를 나타냅니다. 참고: 각 정답 선택에는 1점이 부여됩니다.

정답입니다. ReplyToSessionId는 Service Bus session을 사용할 때 request/reply pattern을 위해 설계되었습니다. ReplyToSessionId를 원래 hazard message의 SessionId로 설정하면, 모든 reply/audit/ack message를 올바른 session(논리적 conversation)으로 다시 라우팅할 수 있습니다. 이는 순서 있고 그룹화된 처리를 지원하며 동일한 session context에 연결된 감사 가능한 transaction trail을 더 쉽게 구축할 수 있게 합니다.

오답입니다. DeliveryCount는 Service Bus가 해당 message를 몇 번 전달했는지(abandon/lock expiry 이후의 재전달 포함)를 나타내는 system-managed property입니다. application이 할당하도록 설계되지 않았으며, correlation이나 auditing을 위한 안정적인 식별자도 아닙니다. 또한 MessageId를 DeliveryCount에 매핑하는 것은 의미적으로도 잘못되었고 지원되지 않습니다.

오답입니다. SequenceNumber는 message가 enqueue될 때 Service Bus에 의해 할당되며 sender 관점에서 read-only입니다. SequenceNumber를 SessionId로 설정할 수 없습니다. 또한 SequenceNumber는 queue/topic별 값이며 entity 전반에서 이식 가능한 business correlation identifier가 아니므로 audit/reply trail 설계에 적합하지 않습니다.

정답입니다. CorrelationId는 workflow 전반에서 관련 message를 연결하기 위한 표준 property입니다. downstream message(예: audit event)의 CorrelationId를 원래 hazard message의 MessageId로 설정하면 안정적인 application-defined transaction identifier를 제공할 수 있습니다. 이를 통해 component와 message entity 전반에서 신뢰할 수 있는 audit query와 end-to-end tracing이 가능해집니다.

오답입니다. DeliveryCount는 system-controlled이며 business correlation이 아니라 delivery attempt를 반영합니다. 설령 SequenceNumber를 DeliveryCount에 매핑할 수 있다고 해도(그래서는 안 됩니다), 의미 있는 audit trail은 생성되지 않습니다. DeliveryCount는 retry에 따라 변경되며 원래 transaction이나 alarm type activation을 고유하게 식별하지 않습니다.

오답입니다. SequenceNumber는 enqueue 시점에 Service Bus에 의해 할당되며 sender가 MessageId로 설정할 수 없습니다. 개념적으로도 MessageId는 application identifier인 반면, SequenceNumber는 entity-specific ordering identifier입니다. 여러 entity/component에 걸친 auditing에 SequenceNumber를 사용하는 것은 취약하며 의도된 pattern도 아닙니다.

문제 분석

핵심 개념: 이 문제는 transaction processing에서 end-to-end traceability(audit/reply trail)를 위한 Azure Service Bus messaging pattern을 테스트합니다. Service Bus에서는 일반적으로 system-managed property를 덮어쓰려고 하기보다 message metadata를 사용하여 관련 message(command, processing, reply/audit event)를 상호 연관시킵니다. 두 가지 핵심 property는 CorrelationId(메시지 전반에 걸친 business operation 추적용)와 ReplyToSessionId(session 사용 시 reply를 올바른 session으로 라우팅하기 위한 용도)입니다. 정답이 맞는 이유: 단일 signaling server가 alarm command를 publish하고 여러 alarm controller가 이를 “transaction의 일부로” 수신합니다(PeekLock + complete/abandon 및/또는 순서 있고 그룹화된 처리를 위한 session 사용이 일반적입니다). 또한 audit를 위해 alarm event를 기록해야 하며, 각 transaction record에는 alarm type이 포함되어야 합니다. 견고한 reply/audit trail에는 (1) audit record를 원래 alarm command와 연결하는 안정적인 식별자와 (2) session이 사용될 때 reply/audit message를 올바른 논리적 conversation으로 라우팅하는 결정적인 방법이 필요합니다. 작업 D는 outgoing message의 CorrelationId를 원래 hazard message의 MessageId로 설정합니다. MessageId는 application-defined이고 안정적이므로 transaction의 루트 식별자로 이상적입니다. 이를 후속 message(audit event, acknowledgement, stop/start confirmation)의 CorrelationId에 복사하면, 로그와 message trace를 조회하여 모든 record를 initiating alarm에 안정적으로 연결할 수 있습니다. 작업 A는 ReplyToSessionId를 원래 message의 SessionId로 설정합니다. session이 사용되면 SessionId는 관련 message를 그룹화하고 순서 있는 처리를 강제합니다. ReplyToSessionId는 session을 사용하는 request/reply pattern을 위해 특별히 의도된 property입니다. responder는 requester의 session을 대상으로 하는 reply를 보낼 수 있으므로, 대규모 환경에서도 올바른 라우팅과 correlation이 가능합니다. 주요 기능/모범 사례: 분산 추적에는 MessageId/CorrelationId를 사용하고, session 기반 request/reply에는 SessionId/ReplyToSessionId를 사용합니다. audit data(alarm type 등)는 message body 또는 custom application property에 유지하고, system property를 잘못 사용하지 마십시오. 일반적인 오해: SequenceNumber와 DeliveryCount는 system-managed runtime property이며 application이 할당하도록 설계되지 않았습니다. 이들은 delivery/lock renewal마다 변경되며 auditing을 위한 안정적인 식별자가 아닙니다. 시험 팁: Service Bus의 경우: MessageId는 app-set이고, CorrelationId는 tracing용이며, SessionId는 session을 활성화하고, ReplyToSessionId는 session 기반 reply를 지원합니다. SequenceNumber와 DeliveryCount는 read-only/system-controlled이며 business correlation key로 사용되지 않습니다.

7
문제 7

DRAG DROP - 귀하는 Azure Blob GPv1 Premium storage account를 사용하는 기존 애플리케이션을 유지 관리하고 있습니다. 3개월이 지난 데이터는 거의 사용되지 않습니다. 3개월 이내의 데이터는 즉시 사용할 수 있어야 합니다. 1년이 지난 데이터는 저장되어야 하지만 즉시 사용할 수 있을 필요는 없습니다. 마지막으로 수정된 지 1년이 지난 blob 데이터를 archive storage로 이동하는 lifecycle management rule을 지원하도록 account를 구성해야 합니다. 어떤 세 가지 작업을 순서대로 수행해야 합니까? 답하려면 작업 목록에서 적절한 작업을 답안 영역으로 이동하고 올바른 순서로 배열하십시오. 선택 및 배치:

파트 1:

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

question-image

나이에 따라 blobs를 이동하기 위한 Lifecycle management에는 GPv2 storage account가 필요합니다. GPv1 account는 Lifecycle rules를 사용하기 전에 먼저 GPv2로 업그레이드해야 합니다. 업그레이드 후 account의 기본 access tier를 Cool로 설정하면 3개월이 지난 데이터가 더 낮은 비용으로 즉시 사용 가능한 상태로 유지되며, 이후 Lifecycle management를 통해 1년이 지난 blobs를 Archive로 이동할 수 있습니다. GPv1 accounts는 직접 GPv2로 업그레이드할 수 있으므로 새로운 Standard GPv2 account를 만들고 데이터를 복사할 필요는 없습니다.

8
문제 8

HOTSPOT - Azure Service Bus를 Event Grid 통합으로 구성해야 합니다. 어떤 Azure Service Bus 설정을 사용해야 합니까? 답하려면, 답안 영역에서 적절한 옵션을 선택하세요. 참고: 각 정답 선택에는 1점이 부여됩니다. Hot Area:

파트 1:

Tier ______

정답: Standard. Azure Service Bus와 Event Grid 통합은 Standard 및 Premium namespace에서 지원되지만, Basic에서는 지원되지 않습니다. Basic tier는 의도적으로 제한되어 있으며(예: 더 적은 기능 및 통합 기능), Event Grid 이벤트를 사용할 수 없습니다. Standard는 AZ-204에서 일반적으로 출제되는 Event Grid 통합 기능 세트를 지원하는 최소 tier입니다. 왜 Premium이 아닌가요? Premium도 Event Grid 통합을 지원하지만, 문제는 어떤 설정을 사용해야 하는지를 묻고 있습니다. 전용 리소스, 예측 가능한 지연 시간, 더 높은 처리량 또는 VNet/private endpoint에 대한 요구 사항이 없다면 Premium은 필요하지 않습니다. 시험 문제에서는 기술 요구 사항을 충족하는 가장 저렴한 tier를 선택하세요. 왜 Basic이 아닌가요? Basic에는 필요한 통합 기능이 없으므로, Basic namespace에서는 Service Bus 이벤트가 Event Grid로 전송되도록 구성할 수 없습니다.

파트 2:

RBAC 역할 ______

정답: Contributor. Azure Service Bus를 Event Grid 통합으로 구성하려면 Event Grid 구독을 생성하거나 관리하고, 경우에 따라 리소스 구성을 업데이트해야 합니다. 이는 ARM 리소스에 대한 Azure RBAC가 적용되는 management-plane 작업입니다. Contributor 역할은 리소스(Event Grid 구독 포함)를 생성하고 관리할 수 있지만, 다른 사용자에게 액세스 권한을 부여할 수는 없습니다. 왜 Owner가 아닌가요? Owner도 Contributor 권한에 역할 할당 기능이 추가된 것이므로 가능하지만, 필요한 것보다 더 많은 권한입니다. 시험에서는 일반적으로 최소 권한 원칙을 기대하므로, 역할 할당이 필요하지 않은 경우 Contributor가 선호됩니다. 왜 Azure Service Bus Data Owner/Data Receiver가 아닌가요? 이들은 messaging 작업(send/receive/manage entities via the Service Bus data plane)에 사용되는 data-plane 역할입니다. Event Grid 구독을 생성하거나 ARM 수준의 통합 설정을 관리할 수 있는 권한을 제공하지 않으므로, 통합을 구성하기에는 충분하지 않습니다.

9
문제 9

Azure SQL Database 인스턴스에 연결하는 Azure function을 개발하고 있습니다. 이 function은 Azure Storage queue에 의해 트리거됩니다. 다음 메시지와 함께 다수의 System.InvalidOperationException 보고를 받았습니다: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. 예외를 방지해야 합니다. 무엇을 해야 합니까?

정답입니다. host.json에서 batchSize를 줄이면 Functions host 인스턴스당 동시에 가져와 처리하는 queue 메시지 수가 감소합니다. 이는 동시에 시도되는 SQL connection 수를 직접 줄여 client connection pool의 고갈을 방지하고 InvalidOperationException timeout을 피하게 합니다. 이는 load leveling 모범 사례에 부합하는 application-level throttling/back-pressure 제어입니다.

오답입니다. Event Hubs로 변환하면 trigger source는 바뀌지만 SQL connection pool 고갈을 본질적으로 방지하지는 않습니다. Event Hubs 처리도 높은 병렬성(partitions, prefetch, 여러 동시 events)을 가질 수 있으므로, 동시성과 connection 사용을 명시적으로 제어하지 않으면 여전히 SQL connections에 과부하를 줄 수 있습니다. 이는 pooling에 대한 표적 수정이 아니라 재설계입니다.

오답입니다. Premium plan으로 이동하면 사용 가능한 compute가 증가하고 더 적극적으로 scale out될 수 있어, 동시 실행 수가 증가하면서 pool 고갈 가능성이 더 커질 수 있습니다. Premium은 동시성을 조정하고/하거나 SQL capacity를 늘리는 경우 도움이 될 수 있지만, 그 자체만으로는 너무 많은 동시 SQL connections라는 근본 원인을 해결하지 못합니다.

오답입니다. Azure Storage queue triggers에 대해 지원되는 function.json binding type 값으로 queueScaling은 없습니다. scaling 동작은 Functions runtime에 의해 관리되며 주로 host.json과 hosting plan을 통해 구성됩니다. binding type을 변경하는 것은 queue-trigger scaling이나 동시성을 제어하는 방법이 아닙니다.

문제 분석

핵심 개념: 이 문제는 Azure Functions의 queue-trigger 동시성과 이것이 Azure SQL Database connection pooling에 미치는 하위 영향에 대한 이해를 평가합니다. 이 예외는 너무 많은 동시 실행이 SQL connections을 열려고 시도하여 pool이 고갈되었고, 그 결과 .NET SQL client가 timeout 전에 pool에서 connection을 가져오지 못했음을 나타냅니다(기본 max pool size는 connection string당 일반적으로 100입니다). A가 정답인 이유: Azure Storage queue triggers의 경우, runtime은 메시지를 batch로 가져와 처리할 수 있으며 여러 function invocation을 동시에 실행할 수 있습니다. 각 invocation이 SQL connection을 열거나(또는 필요 이상으로 오래 유지하면) 높은 동시성으로 인해 사용 가능한 pooled connections 수를 빠르게 초과하여 “Timeout expired… max pool size was reached.”가 발생할 수 있습니다. host.json에서 batchSize를 줄이면 host 인스턴스당 동시에 가져와 처리하는 메시지 수가 줄어들어, 동시에 필요한 SQL connection 수요가 감소하고 pool 고갈을 방지할 수 있습니다. 이는 downstream capacity에 맞게 ingestion concurrency를 제한하는 전형적인 back-pressure/throttling 해결 방법입니다. 주요 기능 / 모범 사례: - host.json의 queue 설정(batchSize, 그리고 흔히 newBatchThreshold / maxDequeueCount)은 Functions host가 queue를 얼마나 적극적으로 비우는지 제어합니다. - 효율적인 connection 관리 사용: 늦게 열고 빨리 닫기, connections dispose, async I/O 선호. (하지만 이 문제는 예외를 방지하기 위해 무엇을 해야 하는지 묻고 있으므로, 여기서는 동시성 제한이 직접적인 제어 수단입니다.) - Azure Well-Architected Framework(Performance Efficiency + Reliability)에 부합: database가 과부하되지 않도록 throttling과 load leveling을 적용합니다. 흔한 오해: - plan을 상향(Premium)하면 동시성이 증가할 수 있으며, 동시성을 제어하거나 SQL capacity/pool sizing을 늘리지 않으면 문제가 더 악화될 수 있습니다. - 트리거를 전환(Event Hubs)한다고 해서 connection pool 고갈이 본질적으로 해결되지는 않습니다. ingestion semantics는 바뀌지만 여전히 높은 병렬 처리를 유발할 수 있습니다. - queueScaling은 Storage queue triggers에 대한 유효한 function.json type이 아닙니다. scaling은 binding type을 변경해서가 아니라 host/runtime에 의해 제어됩니다. 시험 팁: serverless에서 SQL connection pool 고갈이 보이면 다음을 떠올리세요: (1) trigger/host 수준에서 동시성 줄이기, (2) connections이 dispose되도록 보장하기, (3) pool size 증가 또는 managed identity/connection resiliency 사용 고려, (4) database를 적절히 scale. queue-triggered Functions의 경우, host.json의 batch/concurrency 설정이 AZ-204에서 주로 평가되는 핵심 제어 수단입니다.

10
문제 10

HOTSPOT - 팀을 위한 개발 환경을 구성하고 있습니다. Azure Marketplace에서 최신 Visual Studio 이미지를 Azure subscription에 배포합니다. 개발 환경에는 조직 전반의 애플리케이션 개발을 지원하기 위해 여러 software development kits (SDKs) 및 third-party 구성 요소가 필요합니다. 개발 팀을 위해 배포된 virtual machine (VM)을 설치하고 사용자 지정합니다. 사용자 지정된 VM은 새 팀원의 개발 환경을 프로비저닝할 수 있도록 저장되어야 합니다. 향후 프로비저닝을 위해 사용자 지정된 VM을 저장해야 합니다. 어떤 도구 또는 서비스를 사용해야 합니까? 답하려면, 답안 영역에서 적절한 옵션을 선택하세요. 참고: 각 정답 선택에는 1점이 부여됩니다. Hot Area:

파트 1:

VM을 일반화합니다. ______

정답: B. Visual Studio command prompt. Windows VM을 이미지로 캡처하기 전에 일반화하려면 Sysprep를 실행해야 합니다(일반적으로: %WINDIR%\System32\Sysprep\Sysprep.exe with /generalize /oobe /shutdown). Visual Studio Marketplace 이미지에서는 VM 내부에서 로컬 OS 도구/명령을 사용하여 이를 실행합니다. “Visual Studio command prompt” 옵션은 VM 로컬에서 필요한 일반화 명령을 실행하는 것을 의미합니다. 다른 선택지가 틀린 이유: A. Azure PowerShell은 캡처 단계(중지/할당 해제, 이미지 생성)를 자동화할 수 있지만, OS 자체를 일반화하지는 않습니다. Sysprep는 guest 내부에서 실행해야 합니다. C. Azure Migrate는 서버를 Azure로 평가하고 마이그레이션하는 용도이며, 재사용 가능한 dev 이미지를 준비/캡처하는 용도가 아닙니다. D. Azure Backup은 복원을 위한 recovery point를 생성하지만, 새 VM 프로비저닝에 적합한 일반화된 이미지는 생성하지 않습니다.

파트 2:

이미지를 저장합니다. ______

정답: A. Azure Blob Storage. VM 이미지(특히 unmanaged/VHD 기반 아티팩트)는 Azure Blob Storage의 page blob으로 저장됩니다. managed images 또는 Azure Compute Gallery를 사용하는 경우에도, VHD의 기본 저장 기술은 여전히 Azure Storage 개념을 기반으로 하며, Blob Storage는 이미지 VHD를 저장하는 데 적절한 서비스입니다. 다른 선택지가 틀린 이유: B. Azure Data Lake Storage는 big data analytics 워크로드와 hierarchical namespace에 최적화되어 있으며, VM 이미지 VHD의 표준 대상은 아닙니다. C. Azure File Storage는 SMB/NFS file share를 제공하며, OS disk/이미지 VHD 저장을 위한 page blob은 제공하지 않습니다. D. Azure Table Storage는 NoSQL key/attribute 저장소이며 VM 이미지 바이너리를 저장할 수 없습니다.

다른 모의고사

Practice Test #1

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

Practice Test #2

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

Practice Test #3

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

Practice Test #4

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를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.