
50개 문제와 45분 시간 제한으로 실제 시험을 시뮬레이션하세요. AI 검증 답안과 상세 해설로 학습하세요.
AI 기반
모든 답안은 3개의 최고 AI 모델로 교차 검증하여 최고의 정확도를 보장합니다. 선택지별 상세 해설과 심층 문제 분석을 제공합니다.
귀사는 학생 데이터를 포함할 데이터 저장소를 설계하고 있습니다. 데이터는 다음 형식을 가집니다. StudentNumber | StudentInformation 7634634 First name: Ben Last: Smith Preferred Name: Benjamin 7634634 First Name: Dominik Last Name: Paiha Email Address: dpaiha@contoso.com MCP ID: 931817 7634636 First Name: Reshma Last Name: Patel Phone number: 514-555-1101 7634637 First Name: Yun-Feng Last Name: Peng 어떤 유형의 데이터 저장소를 사용해야 합니까?
graph 데이터베이스는 고도로 연결된 데이터와 관계 traversal(예: 과목에 등록한 학생, 친구 관계, 선수 과목)에 맞게 설계되었습니다. 프롬프트에는 관계가 없고, 가변 속성을 가진 학생 식별자만 있습니다. “공유 수업을 통해 연결된 학생 찾기” 또는 다중 홉 관계 탐색 같은 쿼리가 필요하지 않다면 graph 모델은 이점 없이 복잡성만 추가합니다.
key/value는 StudentNumber가 자연스러운 고유 키이고 StudentInformation을 유연한 값(일반적으로 JSON)으로 저장할 수 있으므로 적합합니다. 각 학생은 스키마 변경 없이 서로 다른 필드를 가질 수 있으며, 주요 액세스 패턴은 키 기반의 효율적인 point lookup입니다. 이는 식별자 기준의 단순하고 확장 가능하며 저지연 조회를 위해 Azure Cosmos DB (NoSQL) 또는 Azure Table Storage 같은 서비스와 일치합니다.
object storage(예: Azure Blob Storage)는 문서, 이미지, 백업, 로그 같은 비정형 파일을 저장하고 제공하는 데 최적화되어 있습니다. 각 학생 프로필을 별도의 blob으로 저장할 수는 있지만, object store는 key/value 또는 document 데이터베이스에 비해 빈번한 레코드 수준 업데이트와 저지연 트랜잭션 액세스 패턴의 키 기반 쿼리에 이상적이지 않습니다.
columnar store(예: Parquet 같은 data warehouse/columnstore 형식)는 대규모 데이터셋을 스캔하고 column 전반에 걸쳐 집계하는 분석 워크로드(보고, BI)에 최적화되어 있습니다. 표시된 학생 데이터는 가변 속성을 가진 운영/프로필 성격의 데이터이며, StudentNumber 기준의 point read가 예상됩니다. columnar storage는 이 트랜잭션 중심의 반정형 사용 사례에 비효율적이고 과도하게 복잡합니다.
핵심 개념: 이 문제는 데이터 형태에 기반하여 적절한 비관계형(NoSQL) 데이터 모델을 선택하는지를 평가합니다. 예시는 StudentNumber가 학생별로 달라질 수 있는 속성 집합과 짝을 이룹니다(어떤 학생은 Email 및 MCP ID가 있고, 다른 학생은 Phone이 있으며, 다른 학생은 이름만 있음). 이는 자연스러운 고유 식별자를 가진 반정형 데이터입니다. 정답이 맞는 이유: key/value 데이터 저장소가 가장 적합합니다. 각 레코드는 단일 키(StudentNumber)로 저장 및 조회할 수 있고, 값은 학생의 속성을 포함하는 불투명한 blob(종종 JSON)일 수 있습니다. 스키마는 학생마다 달라도 되며, 테이블 변경이나 고정된 column이 필요하지 않습니다. 이는 일반적인 NoSQL 패턴(키 기반의 빠른 point read/write, 유연한 스키마, 단순한 액세스 패턴)과 일치합니다. 주요 기능 / Azure 컨텍스트: Azure에서는 이 패턴이 Azure Cosmos DB (NoSQL API) 또는 Azure Table Storage에 잘 매핑되며, StudentNumber를 partition key 및/또는 row key(또는 Cosmos DB item id + partition key)로 사용할 수 있습니다. 모범 사례에는 균등한 분산과 쿼리 패턴을 지원하는 partition key 선택이 포함됩니다(예: 주로 학생별로 액세스한다면 StudentNumber). Azure Well-Architected Framework 관점에서 key/value는 성능 효율성(저지연 point read), 운영 우수성(새로운 선택적 필드에 대해 스키마 마이그레이션 불필요), 신뢰성(관리형, 복제 서비스)을 지원합니다. 일반적인 오해: “학생 정보”가 과목, 교사 등과 연관될 수 있으므로 graph가 그럴듯해 보일 수 있지만, 제공된 데이터에는 관계가 아니라 학생별 속성만 있습니다. object storage는 조회 가능한 레코드라기보다 파일/blob(문서, 이미지)을 위한 것입니다. columnar storage는 많은 row/column에 대한 분석 스캔 및 집계에 최적화되어 있으며, 개별 학생 프로필의 트랜잭션 조회에는 적합하지 않습니다. 시험 팁: “ID -> 가변 속성”을 보고 주요 작업이 해당 ID로 retrieve/update라면 key/value(또는 document)를 떠올리십시오. 선택지에 “document”가 있었다면 그것도 유력하지만, 주어진 선택지에서는 key/value가 가장 가깝습니다. 관계 및 traversal이 핵심일 때만 graph를 선택하고, 대규모 분석 워크로드(BI, 보고)에는 운영 프로필 저장소가 아니라 columnar를 선택하십시오.
드래그 앤 드롭 - 보안 구성 요소를 적절한 시나리오에 매칭하세요. 답하려면 왼쪽 열의 적절한 구성 요소를 오른쪽의 해당 시나리오로 드래그하세요. 각 구성 요소는 한 번만, 여러 번, 또는 전혀 사용하지 않을 수 있습니다. 참고: 각 올바른 매칭은 1점입니다. 선택 및 배치:
______ 다른 네트워크에서 Azure SQL database에 대한 액세스를 방지합니다.
정답: B. Firewall. 다른 네트워크에서 Azure SQL database에 대한 액세스를 방지하려면 Azure SQL server-level firewall rules(공용 IP 범위 허용/차단) 및/또는 Private Link/Private Endpoint를 사용하는 virtual network rules로 특정 VNet으로 연결을 제한하는 것과 같은 network access controls를 사용합니다. 이러한 제어는 network perimeter에서 동작하며, 특정 source network의 트래픽이 database endpoint에 도달할 수 있는지 여부를 결정합니다. A (Authentication)가 아닌 이유: Authentication은 연결이 설정된 후 누가 로그인할 수 있는지를 제어합니다. 네트워크가 service endpoint에 도달하는 것을 막지는 않으며, 유효하지 않은 identity만 거부합니다. C (Encryption)가 아닌 이유: Encryption은 at rest 또는 in transit 데이터의 기밀성을 보호하지만, network connectivity를 차단하지는 않습니다. firewall/VNet restrictions가 구성되지 않으면 encryption된 database도 다른 네트워크에서 여전히 도달 가능할 수 있습니다.
______는 Azure SQL database에 대한 Azure Active Directory (Azure AD) sign-in을 지원합니다.
정답: A. Authentication. Azure SQL Database에 대한 Azure Active Directory (Azure AD) sign-in을 지원하는 것은 authentication 기능입니다. Azure AD authentication을 사용하면 사용자와 애플리케이션이 SQL login 대신(또는 추가로) Azure AD identity(사용자, 그룹, managed identity, service principal)를 사용하여 authenticate할 수 있습니다. 이는 MFA 및 Conditional Access 같은 최신 보안 기능과 함께 자주 사용되며, identity 보안을 강화하고 best practice에 부합합니다. B (Firewall)가 아닌 이유: firewall은 연결이 어디에서 오는지 제한할 수 있지만, Azure AD sign-in 기능을 제공하지는 않습니다. firewall을 통해 traffic을 허용하더라도, Azure AD authentication이 구성되어 있지 않으면 Azure AD authentication을 지원하지 않습니다. C (Encryption)가 아닌 이유: encryption은 데이터를 보호하지만, 사용자가 어떻게 authenticate하는지를 결정하지는 않습니다. Azure AD sign-in은 데이터 기밀성이 아니라 identity 검증 및 token 기반 authentication에 관한 것입니다.
______ Azure SQL database에서 민감한 데이터가 절대로 plain text로 나타나지 않도록 보장합니다.
정답: C. Encryption. Azure SQL database에서 민감한 데이터가 절대로 plain text로 나타나지 않도록 보장한다는 것은 encryption을 의미합니다. Azure SQL에서는 이는 Always Encrypted와 같은 기술과 가장 밀접하게 연관되며, 민감한 column 데이터를 end-to-end로 암호화하여 SQL engine이 plaintext 값을 절대 보지 않도록 합니다(암호화/복호화는 client driver에서 수행). 보다 일반적으로는 encryption 메커니즘(TDE, TLS)이 data at rest 및 data in transit을 보호하지만, “절대로 plain text로 나타나지 않는다”라는 표현은 Always Encrypted 방식의 보호와 가장 잘 부합합니다. A (Authentication)가 아닌 이유: Authentication은 identity 기반으로 access를 제어하지만, 데이터가 unencrypted로 저장되어 있다면 authenticated user(또는 admin)가 여전히 plaintext 데이터를 볼 수 있습니다. B (Firewall)가 아닌 이유: Firewall은 network access를 제한하지만, access가 허용된 이후 plaintext 저장 또는 노출을 방지하지는 못합니다.
어떤 스토리지 솔루션이 파일 및 폴더 수준에서 역할 기반 액세스 제어(RBAC)를 지원합니까?
Azure Disk Storage는 Azure VM용 블록 수준 스토리지(관리형 디스크)를 제공합니다. Azure가 파일 및 폴더 수준에서 RBAC를 적용할 수 있는 파일시스템 서비스를 노출하지 않습니다. 액세스는 파일/폴더에 대한 데이터 플레인 권한 부여가 아니라 VM 액세스 및 디스크 수준 권한(관리 플레인)으로 제어됩니다. VM 내부에서 디스크를 NTFS/ext4로 포맷할 수는 있지만, 이는 OS 수준 권한이며 Azure Storage RBAC의 파일/폴더 권한이 아닙니다.
Azure Data Lake Storage Gen2는 hierarchical namespace를 통해 실제 디렉터리와 파일을 지원하는 Azure storage service입니다. 이러한 구조 덕분에 디렉터리 및 파일 수준에서 permissions를 적용할 수 있으며, 이는 flat object storage에서는 같은 방식으로는 불가능합니다. 실제로는 더 광범위한 authorization에는 Azure RBAC가 사용되고, 폴더와 파일에 대한 세밀한 제어에는 POSIX-style ACLs가 사용됩니다. 따라서 ADLS Gen2는 세분화된 filesystem-style security가 필요한 storage 시나리오에서 가장 적절하고 기대되는 정답입니다.
Azure Blob storage는 blob 이름에 폴더처럼 보이는 slash-delimited prefixes를 포함할 수 있지만, 기본적으로는 flat namespace를 가진 object store입니다. 이러한 prefixes는 가상 개념이며, 독립적인 file/folder permissions를 가진 진정한 directory objects를 제공하지 않습니다. Azure RBAC는 blob data에 대한 access를 부여할 수 있지만, 여기서 평가하는 filesystem 의미의 진정한 folder-level authorization은 제공하지 않습니다. 세분화된 file 및 directory permission model은 표준 Blob storage가 아니라 ADLS Gen2와 관련이 있습니다.
Azure Queue storage는 메시지를 저장하고 검색하는 메시징 서비스입니다. 파일과 폴더 개념이 없으므로 파일/폴더 수준 RBAC는 적용되지 않습니다. 권한 부여는 일반적으로 스토리지 계정 키, SAS 토큰 또는 큐 작업에 적절한 역할을 가진 Azure AD를 통해 이루어지지만, 여전히 파일시스템 스타일 권한이 아니라 큐/메시지 작업 수준입니다.
핵심 개념: 이 문제는 어떤 Azure storage service가 디렉터리와 파일에 대한 세분화된 authorization을 지원하는지 평가합니다. Azure에서 진정한 file-level 및 folder-level permissions을 구현하려면 flat object storage나 block storage가 아니라 hierarchical filesystem model이 필요합니다. 정답인 이유: Azure Data Lake Storage Gen2는 hierarchical namespace를 지원하며, 이를 통해 실제 디렉터리와 파일이 도입됩니다. 이로 인해 폴더와 파일에 직접 적용할 수 있는 POSIX-style access control lists (ACLs)를 사용할 수 있습니다. Azure RBAC는 더 광범위한 data access roles를 부여하는 데 사용할 수 있지만, file-level 및 folder-level의 세분화 자체는 ADLS Gen2의 ACLs를 통해 제공됩니다. 주요 기능 / 구성 / 모범 사례: - 디렉터리를 인식하는 storage를 위해 hierarchical namespace가 활성화된 Azure Data Lake Storage Gen2를 사용합니다. - 거친 수준의 access에는 Microsoft Entra ID identities와 Azure RBAC를 함께 사용하고, 세밀한 file/folder permissions에는 ACLs를 사용합니다. - 필요한 storage roles만 할당한 뒤 ACLs로 access를 더 제한하여 least-privilege 원칙을 적용합니다. 일반적인 오해: - Azure Blob storage는 blob data access에 대해 Azure RBAC를 지원하지만, ADLS Gen2 hierarchical namespace 기능을 사용하지 않는 한 동일한 방식의 진정한 folder-level security는 제공하지 않습니다. - Azure Disk Storage는 virtual machines에 연결되는 block storage이며, Azure가 강제하는 file/folder permissions를 갖춘 managed filesystem service가 아닙니다. - Queue storage는 메시지용이며 file 또는 folder 구조가 없습니다. 시험 팁: 문제에서 Azure storage의 file-level 또는 folder-level access control을 언급하면 Azure Data Lake Storage Gen2와 ACLs가 있는 hierarchical namespace를 떠올리세요. 문구에 RBAC가 나온다면, 시험에서는 때때로 그 차이를 단순화해서 표현하지만 ADLS Gen2에서의 세분화된 enforcement는 ACLs를 통해 이루어진다는 점을 기억하세요.
어떤 유형의 비관계형 데이터 저장소가 유연한 스키마를 지원하고, 데이터를 JSON 파일로 저장하며, 하나의 엔터티에 대한 모든 데이터를 동일한 문서에 저장합니까?
Document stores는 각 엔터티를 단일 document(일반적으로 JSON/BSON)로 유지하며, 서로 다른 document가 서로 다른 필드를 가질 수 있도록(스키마 유연성) 허용합니다. 이는 프롬프트의 요구사항인 유연한 스키마, JSON 표현, 엔터티의 모든 데이터를 함께 저장하는 특성과 정확히 일치합니다. Azure Cosmos DB (for NoSQL)는 DP-900에서 document database의 대표적인 Azure 예시로 자주 사용됩니다.
Columnar(column-family/columnar) storage는 데이터를 행/documents가 아니라 열 기준으로 구성하며, 일반적으로 분석(대규모 스캔, 집계, 압축)에 최적화되어 있습니다. 일부 column-family 시스템이 sparse attributes를 처리할 수는 있지만, 각 엔터티를 단일 JSON document로 주로 저장하지는 않습니다. Azure 시험 맥락에서 columnar는 분석 엔진 및 데이터 웨어하우징 패턴과 더 연관됩니다.
Graph databases는 데이터를 nodes(vertices)와 relationships(edges)로 저장하며, 관계 traversal(예: 소셜 네트워크, 추천)에 최적화되어 있습니다. graph 모델은 스키마 유연성을 가질 수 있지만, 정의적인 특징은 관계 중심 쿼리(traversals)이지, 하나의 엔터티 전체를 단일 JSON document로 저장하는 것이 아닙니다. Azure에서 Cosmos DB는 graph API도 지원하지만, 이는 document 모델링과는 구분됩니다.
Time series databases는 고속 ingest가 필요한 timestamped 데이터(metrics, IoT telemetry)와 시간 구간(time-window) 쿼리(downsampling, rollups)에 최적화되어 있습니다. 다양한 형식으로 레코드를 저장할 수는 있지만, 정의적인 특징은 시간 기반 인덱싱 및 쿼리이며, 엔터티의 모든 속성을 담는 범용 JSON documents가 아닙니다. Azure 예시로는 Azure Data Explorer 및 Cosmos DB의 time-series 패턴이 있습니다.
핵심 개념: 이 문제는 비관계형(NoSQL) 데이터 모델, 특히 document 데이터 모델을 식별하는 능력을 평가합니다. Azure fundamentals(DP-900)에서는 워크로드 특성(유연한 스키마, JSON, 엔터티가 함께 저장됨)을 올바른 NoSQL 저장소 유형에 매핑할 수 있어야 합니다. 정답이 맞는 이유: document 데이터 저장소는 반정형 데이터를 “documents”로 저장하도록 설계되며, 일반적으로 JSON(또는 BSON)으로 표현됩니다. 핵심 속성은 관계형 시스템처럼 여러 테이블/행에 분산하는 대신, 단일 엔터티의 모든 속성을 하나의 document에 함께 저장한다는 점입니다. document 저장소는 유연한 스키마를 지원하므로, 동일한 collection 내의 서로 다른 document가 서로 다른 필드를 가질 수 있으며, 이는 데이터가 자주 진화하거나 엔터티별로 형태가 달라질 때 이상적입니다. 주요 기능 및 모범 사례: document database는 일반적으로 데이터를 collections/containers와 documents로 구성합니다. 엔터티가 하나의 document에 함께 위치하므로 전체 엔터티를 빠르게 조회할 수 있어 joins 필요성을 줄입니다. Azure에서는 Azure Cosmos DB (for NoSQL)가 대표적인 document 지향 서비스로, JSON documents를 저장하고 스키마 유연성을 지원합니다. Azure Well-Architected Framework(Performance Efficiency 및 Reliability)에 부합하는 모범 사례는 액세스 패턴을 중심으로 데이터를 모델링하는 것입니다. 즉, 함께 읽히는 관련 데이터를 embed하고, 수평 확장과 hot partitions 방지를 위해 적절한 partition key를 선택합니다. 흔한 오해: columnar 저장소는 sparse columns를 처리할 수 있어 “유연”하게 느껴질 수 있지만, 분석에 최적화되어 있으며 엔터티별로 JSON documents로 저장하지 않고 데이터를 열 단위로 저장합니다. graph 저장소도 유연한 스키마를 가질 수 있지만, 단일 엔터티를 하나의 JSON document로 저장하기보다는 vertices/edges로 관계를 모델링합니다. time series 저장소는 timestamp가 있는 측정값을 처리하며 시간 기반 쿼리에 최적화되어 있어, 일반적인 엔터티 documents를 위한 것이 아닙니다. 시험 팁: “JSON”, “유연한 스키마”, “하나의 엔터티에 대한 모든 데이터가 동일한 문서에 저장”이라는 표현이 보이면 document store(예: Cosmos DB for NoSQL)를 떠올리세요. 관계 및 traversal을 강조하면 graph를, 열 단위 압축과 분석 스캔을 강조하면 columnar를, 시간에 따른 telemetry와 windowing을 강조하면 time series를 생각하세요.
HOTSPOT - 다음 각 문장에 대해 문장이 참이면 Yes를 선택합니다. 그렇지 않으면 No를 선택합니다. 참고: 각 정답 선택은 1점입니다. 핫 영역:
정규화는 데이터베이스 테이블 간의 관계를 제거하는 것을 포함한다.
정규화는 테이블 간의 관계를 제거하지 않으며, 일반적으로 명확하게 정의된 관계의 필요성을 더 증가시킵니다. 정규화를 수행하면, 각 테이블이 하나의 주제(엔터티)를 나타내고 각 비키(non-key) 속성이 키에 종속되도록, 넓은 테이블을 여러 테이블로 분리하는 경우가 많습니다. 분리한 후에는 primary key와 foreign key(관계)를 사용해 테이블을 연결하고, join을 통해 데이터의 전체 뷰를 재구성합니다. 예를 들어, 고객 주소 세부 정보를 별도의 Address 테이블로 옮기고 Customer 테이블에서 이를 참조하도록 하면, 관계를 제거하는 것이 아니라 관계를 생성(또는 강화)하는 것입니다. 관계를 제거하는 것은 관계형 설계에 반하는 것이며, 보통 데이터 중복이나 referential integrity의 손실로 이어집니다. 따라서 해당 진술은 거짓이므로, 정답은 아니오입니다.
데이터베이스를 정규화하면 데이터 중복이 줄어든다.
정규화의 주요 목표 중 하나는 데이터 중복(동일한 사실을 중복 저장하는 것)을 줄이는 것이다. 종속성에 따라 데이터를 별도의 테이블로 구성하면, 많은 행에 걸쳐 동일한 값을 반복해서 저장하는 일을 피할 수 있다. 이는 갱신 이상을 줄여준다. 예를 들어 고객의 전화번호가 여러 곳에 저장되어 있다면, 한 곳에서는 변경했지만 다른 곳에서는 변경하지 않아 불일치가 발생할 수 있다. 정규화된 설계에서는 공유되는 사실을 한 번만 저장하고 키를 통해 참조한다. 예를 들어 Product 테이블에 제품 상세 정보를 저장하고 OrderLine 테이블에서 ProductID로 참조하면, 모든 주문 라인마다 제품명과 설명을 반복해서 저장하지 않아도 된다. 정규화는 테이블과 조인의 수를 늘릴 수 있지만, 일반적으로 중복 데이터 저장을 줄이고 유지보수성을 향상시킨다. 따라서 이 진술은 참이므로 정답은 예이다.
정규화는 데이터 무결성을 향상시킵니다.
정규화는 일관되지 않거나 유효하지 않은 데이터가 발생할 가능성을 줄여 데이터 무결성을 향상시킵니다. 동일한 사실이 여러 위치에 저장되면(중복, redundancy) 시간이 지나면서 그 사본들이 서로 달라지기 쉬워 일관성이 손상됩니다. 정규화는 각 사실을 한 곳에 중앙화하고 key와 constraint를 사용해 올바른 관계를 강제합니다. 예를 들어, 적절히 정규화된 schema에서는 foreign key constraint가 모든 Order가 유효한 Customer를 참조하도록 보장할 수 있습니다. 이는 referential integrity를 지원합니다. 또한 column을 올바른 entity 및 dependency 규칙(예: 2NF/3NF 원칙)에 맞추면 insert, update, delete 시 실수로 orphaned 또는 모순된 데이터가 생성되는 anomaly를 줄일 수 있습니다. 무결성은 constraint(PK, FK, UNIQUE, CHECK) 구현과 올바른 transaction에도 좌우되지만, 정규화는 무결성을 더 쉽게 강제하고 유지할 수 있게 해주는 기본적인 설계 관행입니다. 따라서 해당 진술은 참이며, 정답은 예입니다.
이동 중에도 모든 문제를 풀고 싶으신가요?
Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.
HOTSPOT - 다음 각 진술에 대해, 진술이 참이면 Yes를 선택합니다. 그렇지 않으면 No를 선택합니다. 참고: 각 정답 선택은 1점입니다. 핫 영역:
한 달에 한 번 급여를 지급 처리하는 것은 batch workload의 예입니다.
예. 한 달에 한 번 급여를 지급 처리하는 것은 전형적인 batch workload입니다. 이를 규정하는 특징은 (1) 고정된 스케줄(매월), (2) 처리할 레코드 집합이 한정됨(해당 급여 기간의 모든 직원/급여 변경 사항), (3) 각 개별 payroll 이벤트가 발생하는 즉시 처리할 필요가 없음입니다. Batch 시스템은 낮은 latency보다 신뢰성, 감사 가능성(auditability), 처리량(throughput)을 우선합니다. 실제로 payroll은 종종 예약된 job으로 실행되어 근태(time/attendance)를 집계하고, 공제 및 세금을 적용하며, 하나의 통제된 실행에서 결과물(은행 파일, payslip, 원장(ledger) 엔트리)을 생성합니다. 왜 streaming이 아닌가? Streaming은 payroll 관련 이벤트를 거의 실시간(near real time)으로 지속적으로 처리하는 것을 의미합니다(예: 근무 시간이 기록되는 즉시 급여를 계산). 이는 월급 지급처럼 급여 주기 말에 결과가 필요한 일반적인 비즈니스 요구사항과는 다릅니다.
초당 50개의 센서 측정값을 전송하는 풍력 터빈은 streaming workload의 예입니다.
예. 초당 50개의 센서 측정값을 전송하는 풍력 터빈은 이벤트가 연속적이고 고속으로 흐르는 형태로 생성되기 때문에 streaming workload의 예입니다. 초당 50회라는 빈도는 데이터가 충분히 자주 도착하므로 자연스럽게 event stream으로 모델링되며, 이상 탐지, 예측 유지보수, 운영 대시보드, 알림과 같은 near-real-time use case를 지원하는 경우가 많습니다. Azure 관점에서 이 패턴은 IoT telemetry ingestion(Azure IoT Hub 또는 Event Hubs), real-time processing(Azure Stream Analytics, Databricks/Synapse Spark streaming), 그리고 hot/warm path를 위한 storage/analytics(Azure Data Explorer, Cosmos DB 또는 time-series에 최적화된 store)와 정렬됩니다. 이는 batch가 아닌데, 고장을 빠르게 감지하는 것이 목표라면 터빈 telemetry를 처리하기 위해 보통 몇 시간 또는 며칠을 기다리지 않기 때문입니다. 가치는 low-latency processing에서 나옵니다.
하루에 한 번 에너지 공급자에게 측정값을 전송하는 가정용 전기 계량기는 streaming workload의 예이다.
아니오. 하루에 한 번 측정값을 전송하는 가정용 전기 계량기는 streaming이라기보다 batch(또는 주기적) workload로 설명하는 것이 더 적절합니다. 데이터가 전자적으로 전송되더라도, 핵심 요소는 낮은 전송 빈도와 near-real-time 처리 요구사항이 없다는 점입니다. 일일 측정값은 일반적으로 청구, 사용량 요약, 추세 보고에 사용되며, 이러한 사용 사례는 더 높은 latency를 허용하고 보통 예약된 작업으로 처리됩니다. 왜 streaming이 아닌가? Streaming은 이벤트가 발생하는 대로 지속적으로 수집하고 처리하는 것을 의미하며, 보통 seconds-to-minutes 수준의 latency를 전제로 합니다. 하루 1회 telemetry는 연속적인 고속 스트림이 아니라 주기적 스냅샷입니다. Azure에서는 추가 요구사항(예: 즉각적인 정전 감지)으로 인해 더 빈번한 보고가 필요하지 않는 한, real-time stream processing 서비스보다는 예약된 ETL/ELT(예: Data Factory)를 통해 수집 후 처리하는 경우가 많습니다.
HOTSPOT - 문장을 완성하려면 답변 영역에서 적절한 옵션을 선택하세요. 핫 영역:
Azure Data Factory에서 ______를 사용하여 다른 파이프라인 활동의 출력에 의존하는 파이프라인 활동을 오케스트레이션할 수 있습니다.
정답: A. control flow Azure Data Factory에서 control flow는 파이프라인 내에서 활동 실행 순서와 종속성을 오케스트레이션하는 기능입니다. 종속성 조건(예: 이전 활동이 Succeeds일 때만 활동 실행)과 If Condition, Switch, ForEach, Until, Wait, Execute Pipeline 같은 control activities를 사용하여, 이전 출력 또는 완료 상태에 의존하는 단계들을 조정합니다. 이는 “다른 파이프라인 활동의 출력에 의존하는 파이프라인 활동을 오케스트레이션”한다는 설명과 정확히 일치합니다. 다른 선택지가 틀린 이유: - B. Dataset: 활동에서 사용하는 데이터 구조와 위치(테이블, 파일, 폴더)를 정의하며, 실행 순서를 제어하지 않습니다. - C. Linked service: 데이터 저장소 또는 컴퓨팅에 대한 연결 정보(서버, 인증, 엔드포인트)를 저장하며, 오케스트레이션이 아닙니다. - D. Integration runtime: 데이터 이동 및 변환을 위한 컴퓨팅 인프라(Azure IR, Self-hosted IR)를 제공하며, 작업을 실행하지만 활동 간 종속성 로직을 정의하지는 않습니다.
HOTSPOT - 다음 JSON 문서가 있습니다.
"customer" : {
"first name" : "Ben",
"last name" : "Smith",
"address" : {
"line 1" : "161 Azure Ln",
"line 2" : "Palo Alto",
"ZIP code" : "54762"
},
"social media": [
{
"service" : "twitter",
"handle" : "@bensmith"
},
{
"service" : "linkedin",
"handle" : "bensmith"
}
],
"phone numbers": [
{
"type" : "mobile",
"number" : "555-555-555"
}
]
}
드롭다운 메뉴를 사용하여 JSON 문서에 제시된 정보를 기반으로 각 문장을 완성하는 정답 선택지를 선택하세요. 참고: 각 정답 선택은 1점입니다. 핫 영역:
Customer는 ______입니다.
Customer는 제공된 JSON 스니펫의 맥락에서 루트 객체입니다. 이 스니펫은 "customer"라는 최상위 속성을 보여주며, 그 값은 객체입니다(중괄호 { }를 사용합니다). 다른 이름의 속성 내부에 포함되어 있는 것으로 표시되지 않았기 때문에(예: { "order": { "customer": { ... } } } 같은 더 큰 객체 내부), 이 문서의 최상위/루트 객체로 취급됩니다. A(중첩 배열)가 아닌 이유: "customer"는 대괄호 [ ] 안에 있지 않으므로 배열이 아닙니다. B(중첩 객체)가 아닌 이유: "customer"가 중첩 구조를 포함하고 있기는 하지만, 질문의 의도는 "customer" 자체를 분류하는 것입니다. 이 스니펫에서 이는 설명 대상이 되는 주요/최상위 객체이므로 루트 객체로 분류하는 것이 가장 적절합니다.
Address는 ______입니다.
Address는 중첩 객체입니다. "customer" 객체 내부에서 "address" 속성의 값은 중괄호 { }로 둘러싸여 있는데, 이는 객체를 나타냅니다. 또한 문서의 최상위 수준이 아니라 "customer" 객체 안에 존재하므로 중첩되어 있습니다. A(중첩 배열)가 아닌 이유: "address"는 대괄호 [ ]로 정의되어 있지 않으며, 여러 요소를 포함하지도 않습니다. "line 1", "line 2", "ZIP code"와 같은 속성을 가진 단일 객체입니다. C(루트 객체)가 아닌 이유: 루트 객체는 JSON 문서의 최상위 객체입니다. "address"는 명확히 "customer" 아래의 자식 속성이므로 루트가 될 수 없습니다.
소셜 미디어는 ______입니다.
소셜 미디어는 중첩 배열입니다. "social media" 속성은 대괄호 [ ]를 사용하여 정의되어 있으며, 이는 배열을 의미합니다. 해당 배열의 각 요소는 객체입니다(각 요소는 중괄호 { }를 가지며 "service"와 "handle"을 포함합니다). 또한 이 배열은 "customer" 객체 안에 포함되어 있으므로 중첩되어 있습니다. B(중첩 객체)가 아닌 이유: 배열 내부의 각 항목은 객체이지만, "social media" 속성 자체는 단일 객체가 아니라 객체들의 배열입니다. C(루트 객체)가 아닌 이유: "social media"는 최상위 레벨에 있지 않고 "customer" 내부의 속성이므로 루트 객체가 아닙니다.
모바일 애플리케이션에서 실시간 telemetry 데이터를 수집해야 합니다. 이 시나리오를 설명하는 workload 유형은 무엇입니까?
OLTP는 일반적으로 relational database에서 강한 consistency와 ACID 보장을 갖는 짧고 원자적인 transaction(insert/update/select)을 대량으로 처리하도록 설계되었습니다. 모바일 앱이 OLTP 데이터(예: 사용자 프로필 업데이트 또는 구매)를 생성할 수는 있지만, “실시간 telemetry”는 transactional processing이 아니라 event streaming입니다. OLTP는 continuous event ingest 및 windowed analytics가 아니라 운영(operational) 시스템에 초점을 둡니다.
Batch workload는 bounded dataset에 대해 주기적이고 스케줄된 실행으로 데이터를 처리합니다(예: nightly ETL, 일일 집계, 월별 청구). Telemetry는 저장한 뒤 batch로 나중에 처리할 수도 있지만, 문제에서 명시적으로 “실시간”이라고 했으므로 이벤트가 도착하는 즉시 낮은 latency로 처리함을 의미합니다. Batch는 continuous하고 near-immediate한 analytics의 반대입니다.
MPP (massively parallel processing)는 작업을 여러 node에 분산해 대규모 analytical query를 수행하는 distributed compute architecture를 의미합니다(data warehouse에서 흔함). 이는 실시간 telemetry ingest를 위한 workload 분류가 아닙니다. MPP는 ingest 이후 대규모 telemetry dataset을 분석하는 데 사용할 수는 있지만, 이 시나리오는 연속적인 실시간 데이터 흐름에 관한 것이므로 streaming이 더 적절합니다.
Streaming workload는 연속적이고 unbounded한 이벤트 흐름을 처리하며 낮은 latency로 처리합니다. 모바일 애플리케이션의 실시간 telemetry(앱 이벤트, 성능 metric, 위치 업데이트)는 전형적인 streaming 시나리오입니다. Azure에서는 일반적으로 ingest를 위해 Event Hubs/IoT Hub, 실시간 처리를 위해 Stream Analytics/Spark에 매핑되며, 이를 통해 dashboard, alert, 그리고 near-real-time 인사이트를 제공합니다.
핵심 개념: 이 문제는 데이터 workload를 분류하는 능력, 특히 streaming analytics workload를 인식하는지를 평가합니다. 모바일 앱의 실시간 telemetry는 지속적으로 발생하는 이벤트(클릭, 위치 ping, 성능 metric, 사용자 정의 이벤트)의 연속적인 흐름이며, 낮은 latency로 ingest 및 처리되어야 합니다. 정답인 이유: “실시간 telemetry”는 데이터가 지속적으로 도착하고 거의 즉시(초 단위 또는 sub-second) 처리/인사이트를 원한다는 의미입니다. 이는 streaming workload의 정의입니다: unbounded data, 이벤트 단위 또는 micro-batch 처리, 그리고 시간에 민감한 analytics/alerting. Azure에서 이 패턴의 대표적인 서비스로는 ingest를 위한 Azure Event Hubs 또는 IoT Hub, 처리를 위한 Azure Stream Analytics 또는 Spark Structured Streaming, 그리고 저장/분석을 위한 Azure Data Explorer, Cosmos DB, 또는 data lake 같은 sink가 있습니다. 주요 특징 및 모범 사례: Streaming workload는 high-throughput ingest, partitioning, scalability(예: Event Hubs partitions, consumer groups)를 강조합니다. 또한 시간 기반으로 집계하기 위해 windowing(tumbling/hopping/sliding windows)을 자주 사용하고, late/out-of-order 이벤트를 처리하며, 실시간 dashboard와 alert를 지원합니다. Azure Well-Architected Framework 관점에서는 reliability(durable ingest, retry policy), performance efficiency(throughput units/partitions의 적정 sizing), cost optimization(over-provisioning 방지, 가능 시 autoscale 사용)을 고려해 설계합니다. 흔한 오해: OLTP는 “online” 앱과 관련될 수 있지만, OLTP는 ACID 속성을 갖는 relational database에 대한 transactional read/write(주문, 결제, 재고) 를 의미하며, 연속적인 event stream이 아닙니다. Batch workload도 telemetry를 처리할 수 있지만, batch는 bounded dataset을 주기적으로 처리(시간/일 단위 job)하는 것이지 실시간이 아닙니다. MPP는 대규모 병렬 analytics를 위한 compute architecture(예: dedicated SQL pools)를 설명하는 용어로, 실시간 ingest라는 workload 유형 자체를 의미하진 않습니다. 시험 팁: “real-time,” “telemetry,” “events,” “sensor data,” “clickstream,” “continuous ingestion” 같은 키워드를 보면 streaming을 떠올리세요. “daily/weekly processing,” “ETL at night,” “historical reports”가 보이면 batch를 떠올리세요. “transactions,” “orders,” “updates,” “ACID”가 보이면 OLTP를 떠올리세요.
HOTSPOT - 문장을 완성하려면 답안 영역에서 적절한 옵션을 선택하세요. 핫 영역:
Azure Synapse Analytics의 massively parallel processing (MPP) 엔진은 ______
정답: A. compute node 전반에 걸쳐 처리를 분산합니다. Azure Synapse Analytics dedicated SQL pool에서 MPP 엔진은 여러 compute node에 걸쳐 병렬로 실행되는 작업으로 업무를 분할하여 쿼리를 실행하도록 설계되었습니다. control node는 클라이언트 쿼리를 수신하고, 구문 분석 및 최적화를 수행한 다음, 쿼리 계획 단계들을 compute node에 분배하여 실행을 조정합니다. 각 compute node는 할당된 data distribution을 병렬로 처리하며, 이것이 대규모 분석 워크로드에서 MPP의 핵심 이점입니다. 다른 선택지가 틀린 이유: - B (control node 전반에 걸쳐 처리를 분산): Synapse는 여러 control node에 걸쳐 처리를 분산하지 않으며, control node는 주로 오케스트레이션을 수행합니다. - C (compute node 전반에 걸쳐 클라이언트 연결을 리디렉션): 클라이언트는 control node 엔드포인트에 연결하며, compute node는 클라이언트 연결 리디렉션에 사용되지 않습니다. - D (control node 전반에 걸쳐 클라이언트 연결을 리디렉션): 이 모델에는 연결 리디렉션을 위한 control node 풀(pool)이 없으며, control node가 조정 지점입니다.


이동 중에도 모든 문제를 풀고 싶으신가요?
앱 받기
Cloud Pass를 다운로드하세요 — 모의고사, 학습 진도 추적 등을 제공합니다.