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

Practice Test #1

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

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

AI 기반

3중 AI 검증 답안 및 해설

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

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

기출 문제

1
문제 1

참고: 이 문제는 동일한 시나리오를 제시하는 일련의 문제 중 일부입니다. 시리즈의 각 문제에는 제시된 목표를 충족할 수 있는 고유한 솔루션이 포함되어 있습니다. 일부 문제 세트에는 둘 이상의 올바른 솔루션이 있을 수 있지만, 다른 문제 세트에는 올바른 솔루션이 없을 수도 있습니다. 이 섹션의 문제에 답한 후에는 해당 문제로 돌아갈 수 없습니다. 따라서 이러한 문제는 검토 화면에 표시되지 않습니다. 귀하는 Azure Storage blob 데이터를 처리하기 위한 HTTP 트리거 Azure Function app을 개발합니다. 이 app은 blob의 output binding을 사용하여 트리거됩니다. 이 app은 4분 후에도 계속 timeout됩니다. 이 app은 blob 데이터를 처리해야 합니다. app이 timeout되지 않고 blob 데이터를 처리하도록 해야 합니다. 솔루션: Durable Function async pattern을 사용하여 blob 데이터를 처리합니다. 이 솔루션이 목표를 충족합니까?

예. Durable Functions는 HTTP 트리거 Azure Function의 일반적인 실행 시간 범위를 초과하는 장시간 실행 처리에 적절한 솔루션입니다. async pattern을 사용하면 function이 status URL과 함께 즉시 반환되고, orchestration은 백그라운드에서 blob 데이터 처리를 계속할 수 있습니다. 이렇게 하면 4분 timeout 문제를 피하면서도 blob 처리 작업이 안정적으로 완료되도록 보장할 수 있습니다.

아니요는 올바르지 않습니다. 제안된 솔루션은 제시된 목표를 충족하기 때문입니다. Durable Functions는 일반적인 HTTP 트리거 function이 timeout되는 이러한 유형의 장시간 실행 비동기 워크플로를 위해 정확히 설계되었습니다. HTTP 요청을 실제 처리와 분리함으로써 timeout을 방지하면서 blob 데이터가 끝까지 처리되도록 할 수 있습니다.

문제 분석

핵심 개념: 이 문제는 장시간 실행되는 blob 처리에 대해 Azure Function 실행 timeout을 방지하는 것과 관련이 있습니다. 표준 HTTP 트리거 function에서는 긴 작업이 실행 제한을 초과할 수 있으며, 특히 Consumption plan에서는 처리 완료 전에 요청이 timeout될 수 있습니다. Durable Functions는 HTTP 트리거 function이 orchestration을 시작하고 즉시 반환할 수 있도록 하는 async pattern을 제공하며, 실제 blob 처리는 백그라운드에서 안정적으로 계속됩니다. 정답인 이유: Durable Functions async pattern은 일반적인 HTTP 요청/응답 시간 내에 완료될 수 없는 장시간 실행 작업을 위해 특별히 설계되었습니다. HTTP starter function은 호출자에게 status endpoint를 반환하고, orchestration은 원래 HTTP 연결을 계속 열어 둘 필요 없이 blob 처리 작업을 조정합니다. 이렇게 하면 blob 데이터가 처리되도록 보장하면서도 app이 4분 후 timeout되는 것을 방지할 수 있습니다. 주요 기능: - HTTP 요청을 장시간 실행되는 처리 작업과 분리합니다. - orchestration 및 activity functions를 사용하여 durable state와 진행 상황을 관리합니다. - 안정적인 실행, checkpointing 및 status tracking을 지원합니다. - 작업이 일반적인 Azure Functions timeout 제한을 초과할 때 일반적으로 사용됩니다. 일반적인 오해: 흔한 실수는 function timeout을 늘리는 것이 항상 최선의 해결책이라고 가정하는 것입니다. HTTP 트리거 functions의 경우 클라이언트 연결 및 플랫폼 제한 때문에 긴 동기식 처리는 여전히 좋지 않은 설계입니다. Durable Functions는 HTTP 요청 자체를 더 오래 실행되게 만드는 것이 아니라, 장시간 실행 작업이 비동기적으로 수행되도록 패턴을 변경합니다. 시험 팁: 문제에서 장시간 처리 중 timeout되는 HTTP 트리거 Azure Function이 언급되면, Durable Functions async pattern을 강력한 솔루션으로 고려하십시오. 특히 HTTP 요청을 계속 열어 두지 않고도 작업을 안정적으로 완료하는 것이 목표일 때 적합합니다. 이는 hosting plan이나 timeout 설정을 단순히 변경하는 것과 구분해야 하며, 그러한 변경은 HTTP timeout 제약을 완전히 해결하지 못할 수 있습니다.

2
문제 2

HOTSPOT - 음식 배달 비용을 결제하는 데 사용되는 web service가 있습니다. 이 web service는 데이터 저장소로 Azure Cosmos DB를 사용합니다. 사용자가 tip 금액을 설정할 수 있도록 하는 새 기능을 추가할 계획입니다. 새 기능에서는 Cosmos DB의 document에 tip이라는 속성이 반드시 존재하고 숫자 값을 포함해야 합니다. web service를 사용하는 기존 website와 mobile app이 많이 있으며, 이들은 한동안 tip 속성을 설정하도록 업데이트되지 않을 것입니다. trigger를 어떻게 완성해야 합니까? 참고: 각 정답 선택에는 1점이 부여됩니다. Hot Area:

파트 1:

var r = ______

정답: C (getContext().getRequest();). Cosmos DB JavaScript trigger에서는 request object를 통해 현재 작업(create/replace)에 접근합니다. pre-trigger의 경우, request.getBody() 및 request.setBody()를 사용하여 기록될 document를 읽고 수정합니다. 이것이 write가 커밋되기 전에 tip property가 존재하고 numeric인지 확인하는 데 정확히 필요한 방식입니다. 다른 선택지가 틀린 이유: - A (__.value();)는 Cosmos DB trigger API 호출이 아닙니다. - B (__.readDocument('item');)는 들어오는 document를 수정하는 trigger에 적절한 패턴이 아닙니다. 기존 document를 읽는 것은 stored procedure에서 더 일반적이거나 관련 데이터를 가져와야 할 때 사용되며, 제시된 선택지는 표준 trigger 호출 시그니처가 아닙니다. - D (getContext().getResponse();)는 주로 작업 후 response를 구성하기 위한 post-trigger에서 사용되며, persistence 전에 필수 property를 강제하는 용도가 아닙니다.

파트 2:

if (______) {

trigger는 tip 속성이 존재하고 숫자 값을 포함하는지 확인해야 합니다. Option C는 tip이 숫자가 아니거나 null인지 올바르게 확인하며, 이는 유효하지 않은 값을 처리하고 trigger가 0과 같은 기본 숫자 값을 할당할 수 있게 합니다. Option A는 속성이 누락되었는지만 확인하며 tip이 존재하지만 숫자가 아닌 경우를 처리하지 못하므로 요구 사항을 충족하지 않습니다. Options B와 D는 이 시나리오의 Cosmos DB JavaScript triggers에서 유효하지 않은 API 또는 패턴을 사용합니다.

파트 3:

r.______

정답: A (setBody(i);). pre-trigger에서는 들어오는 document를 수정한 후(예: i.tip이 없을 때 i.tip = 0 추가), request.setBody(i)를 사용하여 업데이트된 document를 request pipeline에 다시 써야 합니다. 이렇게 해야 Cosmos DB가 수정된 버전의 document를 저장합니다. 다른 선택지가 틀린 이유: - B (setValue(i);)는 request body를 업데이트하기 위한 Cosmos DB trigger method가 아닙니다. - C (upsertDocument(i);)와 D (replaceDocument(i);)는 일반적으로 stored procedure에서 사용되는 document write operation이며(때로는 trigger에서 side effect 용도로도 사용됨), 현재 생성/교체 중인 document를 수정하는 올바른 메커니즘이 아닙니다. 이를 사용하면 의도하지 않은 추가 write, RU consumption, 그리고 잠재적인 recursion/complexity를 유발할 수도 있습니다. 들어오는 document의 field를 강제/정규화하기 위한 시험에서 기대하는 패턴은 request.setBody()입니다.

3
문제 3

DRAG DROP - 귀하는 주문을 처리하기 위해 Azure Function을 사용하는 software as a service (SaaS) 회사의 개발자입니다. 현재 Azure Function은 Azure Storage queue에 의해 트리거되는 Azure Function app에서 실행됩니다. 귀하는 Kubernetes-based Event Driven Autoscaling (KEDA)을 사용하여 Azure Function을 Kubernetes로 마이그레이션할 준비를 하고 있습니다. Azure Function에 대해 Kubernetes Custom Resource Definitions (CRD)을 구성해야 합니다. 어떤 CRD를 구성해야 합니까? 답하려면 적절한 CRD 유형을 올바른 위치로 끌어다 놓으십시오. 각 CRD 유형은 한 번, 여러 번 또는 전혀 사용되지 않을 수 있습니다. 내용을 보려면 창 사이의 분할 막대를 끌거나 스크롤해야 할 수 있습니다. 참고: 각 정답 선택에는 1점이 부여됩니다. 선택하여 배치:

파트 1:

Azure Function 코드는 어떤 CRD 유형에 속합니까?

Azure Function 코드는 KEDA CRD에 속하지 않습니다. KEDA CRD(예: ScaledObject, ScaledJob, TriggerAuthentication, ClusterTriggerAuthentication)는 autoscaling 규칙과 authentication 메커니즘을 설명하며, application 코드는 설명하지 않습니다. Azure Function을 Kubernetes로 마이그레이션할 때 function 코드는 container image(Functions runtime 및 function binaries 포함)로 패키징되고, Deployment(또는 패턴에 따라 Job/CronJob 가능)와 같은 표준 Kubernetes 리소스를 사용하여 배포됩니다. 그런 다음 KEDA는 해당 Deployment를 대상으로 scale합니다. 따라서 질문이 “Azure Function 코드는 어떤 CRD 유형에 속하는가”를 묻는 것이라면, 올바른 해석은 그것이 KEDA CRD에 전혀 속하지 않는다는 것입니다. 그것은 container image와 Kubernetes workload 리소스에 속합니다. 이것은 흔한 시험 함정입니다: KEDA는 autoscaler이지 application packaging 메커니즘이 아닙니다.

파트 2:

Polling interval은 어떤 CRD type에 속합니까?

Polling interval은 KEDA ScaledObject(또는 ScaledJob) CRD에서 구성됩니다. Azure Storage Queues와 같은 event source의 경우, KEDA는 external system에 metric(예: queue length)을 조회하기 위해 polling loop를 사용합니다. pollingInterval 설정은 KEDA가 trigger source를 얼마나 자주 확인하는지를 제어합니다. 이는 responsiveness와 external system의 cost/load에 직접적인 영향을 줍니다. KEDA에서 ScaledObject는 scale target(예: Deployment)을 하나 이상의 trigger에 바인딩하고 pollingInterval, cooldownPeriod, minReplicaCount, maxReplicaCount와 같은 scaling 관련 parameter를 포함하는 CRD입니다. TriggerAuthentication은 credentials/auth configuration을 제공하기 위한 용도일 뿐이며 polling behavior를 정의하지 않습니다. 따라서 polling interval은 ScaledObject configuration에 속합니다.

파트 3:

Azure Storage connection string은 어떤 CRD type에 속합니까?

Azure Storage connection string은 KEDA authentication configuration을 통해 처리되며, 일반적으로 Kubernetes Secret을 참조하는 TriggerAuthentication(또는 ClusterTriggerAuthentication)을 사용합니다. KEDA trigger는 Azure Storage에 액세스하기 위해 connection information이 필요하지만, best practice는 secret을 ScaledObject manifest에 직접 포함하지 않는 것입니다. 대신 connection string을 Kubernetes Secret에 저장한 다음, 해당 secret을 참조하도록 TriggerAuthentication을 구성합니다(예: secretTargetRef). 그런 다음 ScaledObject trigger가 authentication object를 참조합니다. 이 접근 방식은 security best practice 및 Azure Well-Architected Framework(비밀 보호, credential rotation, 최소 노출)에 부합합니다. 많은 KEDA의 Azure Storage Queue 예제에서 trigger metadata에는 queueName이 포함되고, credential은 TriggerAuthentication을 통해 제공됩니다. 따라서 connection string은 scaling rule 자체가 아니라 authentication CRD 경로에 속합니다.

4
문제 4

DRAG DROP - 데이터 저장소로 Azure Cosmos DB를 사용하는 웹사이트의 새 페이지를 개발하고 있습니다. 이 기능은 다음 형식의 문서를 사용합니다:

{
  "name": "John",
  "city": "Seattle"
}

새 페이지의 데이터를 특정 순서로 표시해야 합니다. 페이지에 대해 다음 쿼리를 만듭니다:

SELECT*
FROM People p
ORDER BY p.name, p.city DESC

쿼리를 지원하도록 Cosmos DB 정책을 구성해야 합니다. 정책을 어떻게 구성해야 합니까? 답하려면 적절한 JSON 세그먼트를 올바른 위치로 끌어다 놓으세요. 각 JSON 세그먼트는 한 번, 여러 번 또는 전혀 사용되지 않을 수 있습니다. 내용을 보려면 창 사이의 분할 막대를 끌거나 스크롤해야 할 수 있습니다. 참고: 각 정답 선택에는 1점이 부여됩니다. 선택하여 배치하세요:

파트 1:

아래 이미지에서 정답을 선택하세요.

question-image

정답 indexing policy는 "compositeIndexes" 속성을 사용합니다. Cosmos DB는 여러 필드에 대한 ORDER BY에 composite index를 요구하기 때문입니다. 이 query는 기본적으로 p.name을 ascending으로, 그리고 p.city를 명시적으로 descending으로 정렬하므로, composite index는 정확히 그 순서대로 [{"path":"/name","order":"ascending"},{"path":"/city","order":"descending"}]여야 합니다. 현재 이미지는 /name을 descending으로 표시하고 있으며, 이는 작성된 query를 지원하지 않습니다. "orderBy" 및 "sortOrder" 같은 옵션은 Cosmos DB에서 유효한 indexing policy 속성 이름이 아닙니다.

5
문제 5

HOTSPOT - 항공사를 위한 티켓 예약 시스템을 개발하고 있습니다. 애플리케이션의 스토리지 솔루션은 다음 요구 사항을 충족해야 합니다: ✑ 최소 99.99% 가용성을 보장하고 낮은 지연 시간을 제공해야 합니다. ✑ 지역화된 네트워크 중단 또는 기타 예기치 않은 장애가 발생하더라도 예약을 수락해야 합니다. ✑ 초과 예약 또는 동일한 좌석을 여러 여행자에게 판매하는 일을 최소화하기 위해 예약이 제출된 정확한 순서대로 예약을 처리해야 합니다. ✑ 최대 5초 허용 범위 내에서 동시 및 순서가 뒤바뀐 예약을 허용해야 합니다. Azure South-Central US region에 airlineResourceGroup이라는 리소스 그룹을 프로비저닝합니다. 앱을 지원하기 위해 SQL API Cosmos DB account를 프로비저닝해야 합니다. Azure CLI 명령을 어떻게 완성해야 합니까? 답하려면, 답안 영역에서 적절한 옵션을 선택하십시오. 참고: 각 정답 선택에는 1점이 부여됩니다. Hot Area:

파트 1:

consistencyLevel = ______

Bounded staleness는 시간 기반 허용 오차 윈도우를 명시적으로 지원하면서도 ordering guarantees를 유지하는 유일한 옵션입니다. Bounded staleness에서는 reads가 writes보다 최대 K versions 또는 T 시간(여기서는 5초)만큼 뒤처질 수 있지만, clients는 out-of-order updates를 절대 보지 않습니다(consisent prefix와 bounded lag를 함께 제공합니다). 이는 최대 5초의 허용 오차 윈도우를 허용하면서 예약을 순서대로 처리해야 한다는 요구 사항과 일치합니다. Strong consistency (A)는 가장 엄격한 ordering/linearizability를 제공하지만, 일반적으로 replicas 간 coordination/quorum이 필요하므로 multi-region 시나리오에서 latency를 증가시키고 availability를 낮출 수 있습니다. 또한 명시된 허용 오차 윈도우와도 맞지 않습니다(필요 이상으로 엄격함). Consistent prefix (C)는 순서를 보존하지만 staleness를 제한하지 않으므로 “최대 5초” 요구 사항을 보장할 수 없습니다. Eventual consistency (B)는 가장 약한 guarantees를 제공하며 out-of-order results를 반환할 수 있어 overbooking 위험이 있고 sequencing 요구 사항을 위반합니다.

파트 2:

az cosmosdb create \ --name $name \ ______ \ --resource-group $resourceGroupName \ --max-interval 5 \

요구 사항은 SQL API Cosmos DB account를 프로비저닝하라고 명시적으로 말하며, Azure CLI에서는 --kind 'GlobalDocumentDB'로 생성합니다. 이 옵션은 Core (SQL) API account 유형을 선택합니다. --enable-automatic-failover true는 복원력을 향상시키지만 API kind를 지정하지 않으므로 이 빈칸에는 맞지 않습니다. --kind 'MongoDB'는 잘못된 API이며, virtual network 활성화는 account 유형 요구 사항과 관련이 없습니다.

파트 3:

--locations ______ \ --default-consistency-level = $consistencylevel

99.99% 가용성을 달성하고 지역화된 장애를 허용하려면 Cosmos DB account를 여러 region에 배포해야 합니다. --locations ‘southcentralus=0 eastus=1 westus=2’ 옵션은 명시적인 failover priority(0이 가장 높은 priority)와 함께 multi-region replication을 구성합니다. 이는 낮은 latency(구성에 따라 client가 더 가까운 region에서 읽을 수 있음)와 높은 가용성(service가 region을 사용할 수 없을 때 fail over 가능)을 지원합니다. Option D (--locations ‘southcentralus=0’)는 single-region이며 일반적으로 multi-region 구성과 관련된 99.99% 가용성 기대치를 충족하지 못하고, “지역화된 network outage가 발생하더라도 reservation을 수락”해야 한다는 요구 사항도 충분히 강력하게 만족하지 못합니다. Options A와 B는 failover priority 없이 하나의 region만 지정하며 multi-region footprint를 설정하지 않습니다. bounded staleness (max interval 5) 및 automatic failover와 함께 사용할 때, multi-region locations가 latency를 낮게 유지하면서 reliability 및 availability 요구 사항을 가장 잘 충족합니다.

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

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

6
문제 6

HOTSPOT - Azure Storage Queues를 사용하는 애플리케이션을 개발하고 있습니다. 다음 코드가 있습니다:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse
    (CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

CloudQueue queue = queueClient.GetQueueReference("appqueue");
await queue.CreateIfNotExistsAsync();

CloudQueueMessage peekedMessage = await queue.PeekMessageAsync();
if (peekedMessage != null)
{
    Console.WriteLine("peek한 메시지는 다음과 같습니다: {0}", peekedMessage.AsString);
}
CloudQueueMessage message = await queue.GetMessageAsync();

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

파트 1:

이 코드는 queue의 lock duration을 구성합니다.

아니요. 이 코드는 queue message lock/visibility duration을 구성하지 않습니다. Azure Storage Queues에서 “lock” 개념은 visibility timeout으로 구현됩니다. 즉, GetMessageAsync()를 호출하면 message는 일정 기간 동안 보이지 않게 되어 다른 consumer가 동시에 처리하지 못합니다. 그러나 이 duration은 표시된 코드에서 구성되지 않습니다. GetMessageAsync()에는 visibilityTimeout(그리고 경우에 따라 server timeout)을 지정할 수 있는 overload가 있지만, parameterless 호출은 해당 receive operation에 대해 service 기본 visibility timeout을 사용합니다. 또한 여기서는 queue-level property도 설정되지 않습니다. Storage Queues는 이 코드 경로에서 영구적인 per-queue lock duration 구성을 지원하지 않습니다. 따라서 snippet에서 lock duration을 명시적으로 설정하거나 구성하는 부분은 없습니다.

파트 2:

코드가 실행된 후에도 마지막으로 읽은 메시지는 queue에 남아 있습니다.

예. 코드가 실행된 후에도 마지막으로 읽은 메시지는 queue에 남아 있습니다. PeekMessageAsync()는 메시지를 절대 제거하지 않으며, 가시성이나 dequeue count를 변경하지 않고 메시지 content와 metadata의 복사본만 반환합니다. 그다음 GetMessageAsync()는 메시지를 가져오고 일시적으로 보이지 않게 만듭니다(visibility timeout 동안). 이것은 삭제하는 것과는 다릅니다. 메시지는 GetMessageAsync()가 반환한 메시지의 Id와 PopReceipt를 사용하여 DeleteMessageAsync()가 호출될 때만 Azure Storage Queue에서 제거됩니다. 코드에서 DeleteMessageAsync()를 호출하지 않으므로 메시지는 queue에 남아 있으며 visibility timeout이 만료된 후 다시 보이게 됩니다. 이 동작은 at-least-once delivery를 지원하며, 잠재적인 재처리를 처리하기 위해 idempotent processing이 필요합니다.

파트 3:

코드가 실행된 후에도 storage queue는 storage account에 남아 있습니다.

예. 코드가 실행된 후에도 storage queue는 storage account에 남아 있습니다. 코드는 GetQueueReference("appqueue")를 호출한 다음 CreateIfNotExistsAsync()를 호출합니다. 이는 queue가 존재하도록 보장합니다. 이미 존재하는 경우에는 아무것도 변경되지 않고, 존재하지 않는 경우에는 생성됩니다. queue를 삭제하는 호출(예: DeleteAsync() 또는 DeleteIfExistsAsync())은 없습니다. Azure Storage에서 queue는 durable resource이며 명시적으로 삭제될 때까지 storage account에 유지됩니다. 메시지를 읽거나, peek하거나, receive하는 작업은 queue 자체를 제거하지 않습니다. 따라서 코드가 완료된 후에도 queue resource는 여전히 storage account에 존재합니다.

7
문제 7

데이터 저장을 위해 Azure Blob storage를 사용하는 웹사이트를 구축하고 있습니다. 모든 blob을 30일 후 archive tier로 이동하도록 Azure Blob storage lifecycle을 구성합니다. 고객이 30일이 지난 데이터 조회에 대한 service-level agreement (SLA)를 요청했습니다. 데이터 복구에 대한 최소 SLA를 문서화해야 합니다. 어떤 SLA를 사용해야 합니까?

최소 2일은 너무 길며 Azure Archive rehydration의 일반적인 문서화된 동작을 반영하지 않습니다. Archive retrieval은 Hot 또는 Cool 액세스보다 느리지만, 일반적으로 며칠이 아니라 몇 시간 단위로 측정됩니다. 이 선택지는 복구 시간을 과도하게 크게 잡은 것이며, 시험에서 평가하는 서비스 특성과 가장 잘 맞지 않습니다. 보수적으로 들릴 수는 있지만, 자격증 문제는 보통 임의의 추가 버퍼보다 문서화된 플랫폼 범위를 기대합니다.

1시간에서 15시간 사이라는 답이 가장 적절한 이유는 Azure Blob Archive tier retrieval에는 rehydration이 필요하고, 그 과정이 시간 단위로 측정되기 때문입니다. Microsoft 문서와 시험 가이드에서는 일반적으로 archive rehydration이 standard 또는 high priority 사용 여부, blob 크기, 워크로드 조건에 따라 최대 약 15시간까지 걸릴 수 있다고 설명합니다. 이 선택지는 archive된 blob의 예상 복구 특성과 직접적으로 일치합니다. 문제는 30일이 지난 데이터 조회를 위해 문서화할 최소 SLA를 묻고 있으므로, 이 보기가 선택지 중 플랫폼 기반 retrieval 시간 범위에 가장 가깝습니다.

최소 1일은 archive 복구 시간이 일반적으로 24시간보다 짧기 때문에 올바르지 않습니다. Azure Archive rehydration은 보통 약 1시간에서 15시간 사이가 걸린다고 설명되므로, 최소 하루라는 답은 가장 정확하지 않습니다. 설명에서 추가 운영 버퍼를 사용하는 것은 문제에서 지원되지 않으며, 문제는 사용자 정의 비즈니스 여유분이 아니라 storage 동작에 기반한 SLA를 묻고 있습니다. Microsoft 시험에서는 일반적으로 문서화된 서비스 기능과 가장 가깝게 일치하는 보기가 정답입니다.

0분에서 60분 사이는 Archive tier 데이터 액세스 시간으로는 너무 짧습니다. Archive blob은 offline 상태이므로 Hot 또는 Cool tier blob과 달리 즉시 읽을 수 없습니다. 데이터를 조회하기 전에 blob을 online tier로 rehydrate해야 하며, 이 과정은 분이 아니라 몇 시간이 걸립니다. 이 선택지는 online-access tier와 Archive tier를 혼동한 것입니다.

문제 분석

핵심 개념: 이 문제는 Azure Blob Storage access tier, 특히 Archive tier와 archive된 데이터를 다시 읽을 수 있게 만드는 데 필요한 시간에 대한 지식을 평가합니다. 정답인 이유: Archive tier의 blob은 offline 상태이며 액세스하기 전에 rehydrate되어야 하고, Microsoft 문서에서는 일반적으로 이 과정이 분이나 일이 아니라 몇 시간이 걸린다고 설명합니다. 주요 특징: Hot tier와 Cool tier는 online 상태이므로 즉시 읽기를 지원하는 반면, Archive는 저비용 장기 보관에 최적화된 offline tier이며 online tier로의 rehydration이 필요합니다. 흔한 오해: 자주 하는 실수는 Archive가 Cool storage처럼 동작한다고 가정하거나, 플랫폼 동작에 명시되지 않은 임의의 비즈니스 버퍼 시간을 추가하는 것입니다. 시험 팁: AZ-204에서 Archive retrieval timing을 묻는 경우, 액세스가 즉시 가능하지 않으며 예상 복구 시간은 대략 1시간에서 15시간 범위라는 점을 기억하세요. 따라서 이 범위가 보기로 제시되면 가장 적절한 시험 답안입니다.

8
문제 8
(2개 선택)

ASP.NET 웹 앱을 개발하여 Azure App Service에 배포합니다. 앱을 모니터링하기 위해 Application Insights telemetry를 사용합니다. 전 세계 여러 지점에서 정기적인 간격으로 앱이 사용 가능하고 응답성이 있는지 확인하기 위해 앱을 테스트해야 합니다. 앱이 응답하지 않으면 지원 담당자에게 경고를 보내야 합니다. 웹 앱에 대한 테스트를 구성해야 합니다. 어떤 두 가지 테스트 유형을 사용할 수 있습니까? 각 정답은 완전한 솔루션을 제시합니다. 참고: 각 정답 선택에는 1점이 부여됩니다.

Integration test는 구성 요소들이 함께 어떻게 동작하는지 검증합니다(주로 test framework를 사용하여 CI/CD pipeline에서 실행됨). 이는 Application Insights availability test 유형이 아니며, 일정에 따라 전 세계 Azure test location에서 본질적으로 실행되지 않습니다. 품질 측면에서는 유용하지만, 기본 제공 alerting과 함께 전 세계적이고 주기적인 availability 확인이라는 요구 사항을 직접 충족하지는 않습니다.

Application Insights의 Multi-step web test는 일련의 HTTP 상호 작용(예: 여러 페이지 또는 기본 transaction flow)을 검증합니다. 이 테스트는 여러 지리적 test location에서 정기적인 간격으로 실행될 수 있으며, 단계 전반의 availability와 응답성을 측정합니다. 실패 시 Azure Monitor alert rule을 트리거하여 Action Group을 통해 지원 담당자에게 알릴 수 있습니다.

Application Insights의 URL ping test(표준 availability test)는 여러 Azure region에서 지정된 URL로 주기적으로 요청을 보냅니다. 이 테스트는 응답 시간과 성공/실패(status code, timeout, 선택적 content check)를 측정합니다. 전 세계 availability 및 응답성 모니터링을 위해 특별히 설계되었으며, 알림을 위해 Azure Monitor alert와 통합됩니다.

Unit test는 개별 method/class를 격리된 상태에서 검증하며, 개발 중 또는 CI build에서 실행됩니다. 이는 Application Insights availability test 유형이 아니며, 여러 region에서 전 세계적으로 예약된 probing을 제공하지 않습니다. 또한 URL ping 및 multi-step test처럼 Application Insights availability alerting과 직접 통합되지도 않습니다.

Load test는 동시 트래픽 하에서의 성능 및 확장성(throughput, 부하 시 latency, resource saturation)에 초점을 맞춥니다. 이는 일정 간격으로 전 세계 uptime을 단순 확인하는 주요 메커니즘이 아닙니다. Load testing은 performance engineering의 일부가 될 수는 있지만, 설명된 Application Insights availability test 요구 사항과는 일치하지 않습니다.

문제 분석

핵심 개념: 이 문제는 Azure Application Insights availability monitoring에 관한 것입니다. Availability test는 전 세계 여러 Azure "test location"에서 일정에 따라 실행되어 HTTP endpoint에 도달 가능하고 응답성이 있는지 검증합니다. 실패가 발생하면(예: 연속된 테스트 실패) Azure Monitor alert rule을 구성하여 지원 담당자에게 알릴 수 있습니다(email, SMS, webhook, ITSM, Logic Apps 등). 이는 Azure Well-Architected Framework Reliability pillar와 일치합니다. 즉, monitoring과 alerting을 통해 장애를 사전에 감지하고 MTTR을 줄이는 것입니다. 정답인 이유: Application Insights는 이 요구 사항에 적합한 두 가지 availability test 유형을 지원합니다. 1) URL ping test: 여러 region에서 URL을 반복적으로 호출하고 응답 시간과 성공 기준을 측정하는 단순하고 가벼운 테스트입니다. "사이트가 살아 있고 응답하는가?"를 확인하는 데 이상적입니다. 2) Multi-step web test: 일련의 요청(예: landing page -> login -> browse -> checkout)을 검증할 수 있는 스크립트 기반 테스트(Visual Studio web test 형식)입니다. 이를 통해 availability뿐 아니라 단계 전반의 기본적인 end-to-end 응답성도 확인할 수 있습니다. 두 테스트 모두 전 세계 여러 위치에서 정기적인 간격으로 실행할 수 있으며, 앱이 응답하지 않을 때 alert를 트리거할 수 있습니다. 주요 기능 / 구성 포인트: - test frequency, test location 수, 성공 기준(HTTP status, response time threshold, content match)을 구성합니다. - availability test metric/results(주로 "failed locations" 또는 "availability results")를 기반으로 alert rule을 만들고, Action Group을 통해 알림을 전달합니다. - SSL/TLS validation, redirect, authentication 요구 사항을 고려합니다(authentication flow에는 multi-step이 더 적합함). 일반적인 오해: - "Load" test는 전 세계 availability 확인이 아니라 동시 사용자 부하에서의 성능을 위한 것입니다. - "Unit" 및 "integration" test는 개발/테스트 방식이며, Application Insights availability test 유형이 아닙니다. 시험 팁: AZ-204에서는 다음을 기억하세요: Application Insights availability monitoring = URL ping 및 multi-step web test, 그리고 알림을 위한 Azure Monitor alert + Action Group의 조합입니다. 시나리오에 "전 세계 여러 지점에서"와 "정기적인 간격으로"가 언급되면 load testing이 아니라 Availability test를 떠올리세요.

9
문제 9

HOTSPOT - 귀하는 Azure Web App으로 실행될 software as a service (SaaS) ASP.NET Core web service를 구현하고 있습니다. 이 web service는 저장소로 on-premises SQL Server database를 사용합니다. 또한 이 web service에는 data update를 처리하는 WebJob이 포함됩니다. 네 명의 고객이 이 web service를 사용합니다. ✑ WebJob의 각 instance는 단일 고객의 data를 처리하며 singleton instance로 실행되어야 합니다. ✑ 각 deployment는 production data를 제공하기 전에 deployment slot을 사용하여 테스트되어야 합니다. ✑ Azure 비용은 최소화되어야 합니다. ✑ Azure resource는 isolated network에 위치해야 합니다. Web App에 대한 App Service plan을 구성해야 합니다. App Service plan을 어떻게 구성해야 합니까? 답하려면, 답안 영역에서 적절한 설정을 선택하십시오. 참고: 각 정답 선택에는 1점이 부여됩니다. Hot Area:

파트 1:

VM 인스턴스 수 ______

정답: B (4). 고객이 4명이고 요구 사항에 다음과 같이 명시되어 있습니다: “WebJob의 각 인스턴스는 단일 고객의 데이터를 처리해야 하며 singleton 인스턴스로 실행되어야 합니다.” App Service에서 여러 인스턴스로 scale out하면 continuous WebJob은 일반적으로 각 인스턴스에서 실행되며, singleton 동작을 위해 설계하지 않으면 중복 처리가 발생할 수 있습니다. 이 문제는 하나의 WebJob 인스턴스를 하나의 고객에 매핑하는 것을 의미하므로, 4개의 singleton WebJob 실행(고객당 1개)을 호스팅할 수 있도록 4개의 worker 인스턴스가 필요합니다. 왜 2가 아닌가요? 인스턴스가 2개뿐이면 4개의 서로 다른 singleton WebJob 인스턴스를 동시에 실행할 수 없습니다(인스턴스당 여러 고객을 multiplex해야 하는데, 이는 명시된 요구 사항과 모순됩니다). 왜 8 또는 16이 아닌가요? 이는 요구 사항을 초과하며 비용을 증가시킵니다. “Azure 비용을 최소화해야 한다”는 조건이 있으므로, 고객당 singleton 요구 사항을 충족하는 가장 작은 인스턴스 수인 4를 선택합니다.

파트 2:

가격 책정 tier ______

정답: A (Isolated). 결정적인 요구 사항은 다음과 같습니다: “Azure 리소스는 격리된 네트워크에 위치해야 합니다.” Azure App Service의 경우, 진정한 네트워크 격리는 App Service Environment (ASE)에 의해 제공되며, 이는 virtual network와 연결된 전용의 격리된 환경에 App Service를 배포합니다. ASE는 Isolated pricing tier에서만 실행됩니다. Standard 및 Premium tier는 outbound access를 위해 VNet Integration을 사용할 수 있고, inbound는 Private Endpoint를 통해 제한할 수 있지만(일부 시나리오에서), 이는 전용 인프라를 갖춘 격리된 네트워크 경계 내에서 App Service를 호스팅하는 것과는 동일하지 않습니다. 시험에서는 일반적으로 App Service의 “격리된 네트워크”를 ASE/Isolated에 매핑합니다. Consumption은 Azure Functions(serverless)용이며 Web Apps/WebJobs용 App Service plan에는 적용되지 않고, 격리 요구 사항도 충족하지 않습니다. Isolated는 deployment slots도 지원하므로, pre-production testing 요구 사항도 충족합니다.

10
문제 10

귀하는 Azure FrontDoor를 사용하는 ASP.NET Core 웹사이트를 개발하고 있습니다. 이 웹사이트는 연구원들을 위해 사용자 지정 weather data sets를 구축하는 데 사용됩니다. Data sets는 사용자가 Comma Separated Value (CSV) 파일로 다운로드합니다. 데이터는 10시간마다 새로 고쳐집니다. 특정 파일은 Response Header 값에 따라 FrontDoor cache에서 제거되어야 합니다. Front Door cache에서 개별 asset를 제거해야 합니다. 어떤 유형의 cache purge를 사용해야 합니까?

Single path가 올바른 선택인 이유는 Azure Front Door purge 작업이 path 범위로 지정되며, 이 옵션이 하나의 정확한 asset를 대상으로 하기 때문입니다. 따라서 관련 없는 cached file은 그대로 두면서 개별 CSV 파일을 무효화하는 데 가장 적합합니다. 가장 구체적인 purge 범위를 사용하면 cache hit ratio를 유지하고 origin으로의 불필요한 요청을 방지할 수 있습니다. 특정 asset 하나를 제거해야 하는 요구 사항에서는 이것이 표준 선택입니다.

Wildcard는 path pattern과 일치하는 여러 cached object를 제거하므로 필요 이상으로 범위가 넓습니다. 이는 folder 아래의 많은 관련 파일이나 naming convention에 해당하는 파일들을 함께 무효화해야 할 때 유용하지만, 개별 asset를 제거해야 한다는 요구 사항과는 맞지 않습니다. Wildcard를 선택하면 필요한 것보다 더 많은 content가 제거되고, cache가 다시 채워지는 동안 origin load가 일시적으로 증가합니다. 여기서는 가장 정확하거나 효율적인 옵션이 아닙니다.

Root domain은 가장 광범위한 purge 범위이며 domain 또는 endpoint 전반에 걸친 대규모 invalidation을 위한 것입니다. 특정 CSV asset 하나만 제거하면 되는 상황에서 요구 사항보다 훨씬 더 많은 cached content를 제거하게 됩니다. 이는 불필요하게 cache 효율성을 해치고 origin으로의 피할 수 있는 traffic spike를 만들 수 있습니다. 따라서 개별 asset에 대한 대상 invalidation에는 적절하지 않습니다.

문제 분석

핵심 개념: Azure Front Door cache invalidation은 제거할 content path 범위를 지정하여 수행됩니다. 다른 content에 영향을 주지 않고 특정 cached file을 제거해야 하는 경우, 사용 가능한 가장 좁은 purge 범위를 선택합니다. 정답인 이유: 요구 사항이 개별 asset를 제거하는 것이므로, 올바른 purge 유형은 Single path입니다. 이는 Front Door cache에서 하나의 정확한 asset path를 대상으로 하므로, 특정 CSV 파일을 무효화하는 데 가장 영향이 적고 가장 정확한 옵션입니다. 주요 특징: - Single path purge는 하나의 정확한 cached object path를 무효화합니다. - Wildcard purge는 path pattern과 일치하는 여러 object를 무효화합니다. - Root domain purge는 domain 또는 endpoint에 대한 cached content를 광범위하게 무효화합니다. - Purge 작업은 path 기반이며, Cache-Control 또는 ETag와 같은 cache 관련 response header는 caching 동작에 영향을 주지만 purge 선택 메커니즘에는 영향을 주지 않습니다. 흔한 오해: 흔한 실수는 어떤 purge 유형을 사용할지 response header가 결정한다고 생각하는 것입니다. 실제로 header는 freshness와 revalidation을 제어하는 데 도움이 되지만, purge 요청 자체는 여전히 무효화하려는 path 범위를 기준으로 합니다. 또 다른 오해는 편의를 위해 더 넓은 purge를 선택하는 것인데, 이는 불필요하게 cache 효율성을 떨어뜨립니다. 시험 팁: - 문제에서 'individual asset' 또는 'specific file'이라고 하면 Single path를 떠올리십시오. - 'folder의 모든 파일' 또는 'matching pattern'이라고 하면 Wildcard를 떠올리십시오. - site 또는 endpoint에 대해 거의 모든 것을 지우는 의미라면 Root domain을 떠올리십시오. - 요구 사항을 충족하는 가장 좁은 purge 범위를 우선 선택하십시오.

다른 모의고사

Practice Test #2

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

Practice Test #3

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