본문 바로가기

인공지능,프로그래밍/MS Azure

AI-102 인증을 위한 학습 개요

Azure AI Engineer Associate (AI-102) 인증을 위한 기술 백서: Azure AI 서비스 심층 분석

1.0 서론: AI-102 인증의 이해와 본 백서의 목표

클라우드 기반 인공지능(AI) 솔루션이 비즈니스 혁신의 핵심 동력으로 자리 잡으면서, 이를 설계하고 구현할 수 있는 전문 엔지니어에 대한 수요가 급증하고 있습니다. Microsoft의 Azure AI Engineer Associate (AI-102) 인증은 이러한 시대적 요구에 부응하는 핵심 역량을 검증하는 지표입니다. 이 인증은 단순히 특정 기술의 사용법을 아는 것을 넘어, Azure가 제공하는 포괄적인 AI 서비스 포트폴리오를 활용하여 비즈니스 문제를 해결하고, 책임 있는 AI 원칙에 입각한 솔루션을 구축하는 능력을 요구합니다.

본 백서는 AI-102 시험을 준비하는 엔지니어를 위한 포괄적인 기술 가이드를 제공하는 것을 목표로 합니다. 그러나 단순한 시험 요약에 그치지 않고, 각 Azure AI 서비스의 근간이 되는 아키텍처, 핵심 원칙, 그리고 실제 적용 시나리오를 심층적으로 분석하여, 응시자가 시험 합격을 넘어 현업에서 마주할 복잡한 AI 과제를 해결할 수 있는 깊이 있는 통찰력을 갖추도록 돕고자 합니다.

1.2. AI-102 시험 개요

AI-102 시험의 구조를 이해하는 것은 효과적인 준비 전략의 첫걸음입니다. 핵심적인 시험 구성 요소는 다음과 같습니다.

  • 총 시험 시간: 2시간이 주어지며, 이 중 20분은 설문조사 등에 할애되므로 실제 시험 시간은 1시간 40분입니다.
  • 문항 수: 약 42개의 문항이 출제됩니다.
  • 시간 관리 전략: 문항 수에 비해 시험 시간이 넉넉하게 주어집니다. 따라서 서두르기보다는 각 문제의 의도를 정확히 파악하고 신중하게 답변하는 데 충분한 시간을 할애하는 것이 중요합니다.

1.3. 시험 문제 유형 및 요구 역량 분석

AI-102 시험은 직접 코드를 작성하는 실습형 랩(Lab)을 포함하지는 않지만, 코드에 대한 깊이 있는 이해 능력을 필수적으로 요구합니다. 응시자는 단순히 코드의 문법을 아는 것을 넘어, AI 서비스와 상호작용하는 코드의 구조와 목적을 파악할 수 있어야 합니다.

시험 시작 시 응시자는 C# 또는 Python 중 선호하는 프로그래밍 언어를 선택하게 되며, 이후 제시되는 모든 코드 예제는 선택한 언어로 표시됩니다. 코드 이해 능력은 다음과 같은 형태로 평가됩니다.

  • 함수 선택: 특정 작업을 수행하기 위해 SDK에서 어떤 함수를 호출해야 하는지 묻는 문제
  • 엔드포인트 사용: 주어진 코드에서 API 요청이 전송될 올바른 엔드포인트를 식별하는 문제
  • 코드의 목적 파악: 제시된 코드 스니펫이 어떤 AI 작업을 수행하는지 분석하고 설명하는 문제

이러한 역량을 갖추기 위해서는 이론 학습과 실습의 병행이 필수적입니다. Microsoft Learn에서 제공하는 자습형 학습 모듈은 시험 범위에 포함된 모든 핵심 개념을 다루므로 반드시 숙지해야 합니다. 더 나아가, GitHub 리포지토리에 공개된 실습 랩을 직접 수행함으로써 코드 수준에서 각 서비스가 어떻게 동작하는지 체득하고, API와 SDK를 사용하는 실질적인 경험을 쌓는 것이 코딩 관련 문제 해결 능력을 기르는 가장 효과적인 방법입니다.

1.4.

이제 AI 엔지니어링의 근간이 되는 핵심 원칙들을 분석하여 성공적인 Azure AI 솔루션 설계의 기반을 다져보겠습니다.

2.0 Azure 기반 AI 엔지니어링의 핵심 원칙

특정 기술이나 API를 학습하기에 앞서, 성공적인 AI 솔루션을 뒷받침하는 근본적인 원칙을 이해하는 것은 매우 중요합니다. AI 엔지니어의 역할과 기술, 모든 AI 시스템 설계의 윤리적 기반이 되는 '책임 있는 AI' 원칙, 그리고 AI 기술 스택의 계층적 구조에 대한 명확한 이해는 견고하고 신뢰할 수 있는 솔루션을 구축하는 데 필수적인 선행 조건입니다.

2.2. AI 엔지니어의 역할과 핵심 기술

Azure AI 엔지니어는 AI 솔루션의 전체 수명 주기를 책임지며, 다음과 같은 세 가지 핵심 기술을 갖추어야 합니다.

  • C# 또는 Python 개발 경험 AI-102 시험에서 둘 중 하나의 언어를 선택해야 하듯, 실제 프로젝트에서도 C# 또는 Python을 사용하여 애플리케이션 로직을 구현하고 AI 서비스를 통합하는 능력이 요구됩니다.
  • REST API 및 SDK 사용 능력 Azure AI 서비스는 대부분 REST API 엔드포인트를 통해 제공됩니다. AI 엔지니어는 HTTP 요청/응답 구조와 JSON 페이로드를 이해하고 직접 API를 호출할 수 있어야 합니다. 동시에, 이러한 복잡성을 추상화하여 개발 생산성을 높여주는 각 언어별 SDK(소프트웨어 개발 키트)를 능숙하게 활용할 수 있어야 합니다.
  • DevOps 개념 이해 AI 모델과 솔루션은 지속적으로 개선되고 배포되어야 합니다. Git을 이용한 소스 및 버전 관리, CI/CD(지속적 통합/지속적 배포) 파이프라인 개념에 대한 이해는 AI 솔루션을 안정적으로 운영하고 관리하는 데 필수적입니다.

2.3. 책임 있는 AI의 6대 원칙

Microsoft는 AI 시스템이 인간 사회에 긍정적인 영향을 미치도록 보장하기 위해, 설계 및 개발의 모든 단계에서 고려해야 할 6가지 핵심 원칙을 제시합니다. 이는 단순히 윤리적인 고려사항을 넘어, 신뢰할 수 있고 공정한 AI 시스템 구축의 기술적 지침이 됩니다.

1) 공정성(Fairness)


2) 투명성(Transparency)

  • AI가 어떤 방식으로 동작하는지, 어떤 데이터가 사용되는지 이해 가능한 수준의 정보 제공.
  • 모델의 한계, 사용 범위, 의사결정 과정에 대한 설명 가능성(Explainability)이 포함됨.
  • 출처: EU Ethics Guidelines for Trustworthy AI

3) 책임성(Accountability)


4) 안전성과 보안(Security & Safety)

  • 오작동, 공격, 오류를 방지하기 위한 보안과 방어적 설계.
  • 데이터 보안, 모델 공격(예: Adversarial Attacks) 대응 포함.
  • 출처: OECD AI Principles

5) 프라이버시 및 개인정보 보호(Privacy & Data Governance)

  • 개인정보의 수집·저장·사용 과정에서 법규 준수(GDPR 등).
  • 데이터 최소 수집, 익명화, 관리 기준 포함.
  • 출처: EU GDPR, OECD AI Principles

6) 인간 중심성(Human-centered & Human Control)

  • AI는 인간의 복지, 권리, 자율성을 강화해야 함.
  • 인간의 개입 가능성을 유지해야 하며 Fully Autonomous Decision을 제한하는 원칙.
  • 출처: OECD AI Principles

📌 6대 원칙 요약

원칙 내용 출처
공정성 알고리즘 편향 최소화 OECD, Microsoft
투명성 작동 방식·데이터 사용 정보 제공 EU AI Ethics
책임성 사람이 최종 책임 Google, IBM
안전·보안 오작동·공격 방지 OECD
프라이버시 GDPR 등 규정 준수 EU
인간 중심 인간의 통제권·복지 보호 OECD

  • 공정성 정의: AI 시스템은 모든 사람을 동등하게 대우해야 하며, 성별, 인종, 민족 등 특정 그룹에 대한 편향을 가져서는 안 됩니다.
  • 분석: 모델 훈련에 사용되는 데이터에 편향이 존재하면, AI는 그 편향을 학습하고 증폭시킬 수 있습니다. 예를 들어, 특정 인종의 데이터가 부족한 안면 인식 모델은 해당 인종에 대해 낮은 정확도를 보일 수 있습니다. 공정성을 확보하기 위해서는 다양한 그룹을 대표하는 균형 잡힌 데이터셋을 구축하는 것이 중요합니다.

 

  • 안전,보안 정의: AI 시스템은 의도된 대로 안정적으로 작동해야 하며, 예기치 않은 상황에서도 안전을 보장해야 합니다.
  • 분석: 자율 주행차나 의료 진단 AI와 같이 인간의 생명과 직결된 시스템에서 이 원칙은 특히 중요합니다. 시스템의 작은 오류가 치명적인 결과로 이어질 수 있으므로, 엄격한 테스트와 배포 관리 프로세스를 통해 안정성과 안전성을 확보해야 합니다.

 

  • 프라이버시 정의: AI 시스템은 사용자의 개인 정보를 존중하고 데이터를 안전하게 보호해야 합니다.
  • 분석: AI 모델은 방대한 양의 데이터로 훈련됩니다. 이 과정에서 PII(개인 식별 정보)가 노출되거나 유출되지 않도록 강력한 보안 조치가 필요합니다. 또한, 사용자의 데이터가 동의 없이 모델을 재훈련시키는 데 사용되거나 다른 사용자에게 노출되지 않도록 보장해야 합니다.

 

  • 인간중심 정의: AI 시스템은 신체적 능력, 성별, 민족 등과 관계없이 모든 사람이 동등하게 혜택을 누릴 수 있도록 설계되어야 합니다.
  • 분석: 사회의 모든 구성원이 기술의 혜택을 누릴 수 있도록 시스템을 설계하는 것을 의미합니다. 예를 들어, 음성 인식 시스템은 다양한 억양과 발음을 이해할 수 있어야 하며, 시각 장애인을 위한 화면 읽기 기능과 호환되어야 합니다.

 

  • 투명성 정의: AI 시스템이 어떻게 작동하고, 어떤 목적으로 사용되며, 어떤 한계를 가지고 있는지 사용자가 이해할 수 있어야 합니다.
  • 분석: 사용자는 AI가 내린 결정의 근거를 이해할 수 있어야 신뢰를 형성할 수 있습니다. 시스템의 목적과 한계를 명확히 설명하고, 결정 과정에 대한 설명 가능성을 제공하는 것이 투명성 확보의 핵심입니다.

 

  • 책임성 정의: AI 시스템을 설계하고 개발한 사람은 그 시스템의 작동에 대해 책임을 져야 합니다.
  • 분석: AI 시스템이 야기할 수 있는 결과에 대한 책임 소재를 명확히 해야 합니다. 이를 위해 명확한 거버넌스 프레임워크와 윤리적, 법적 표준을 준수하는 개발 프로세스를 수립하는 것이 중요합니다.

2.4. AI 기술 스택의 이해: 데이터 과학, 머신러닝, 인공지능

AI, 머신러닝(ML), 데이터 과학은 종종 혼용되지만, 명확한 계층적 관계를 가집니다.

  1. 인공지능 (AI): 가장 상위 계층으로, 소프트웨어가 시각 인식, 언어 이해, 의사 결정 등 인간과 유사한 능력을 발휘하는 것을 목표로 합니다. AI는 머신러닝을 기반으로 구축됩니다.
  2. 머신러닝 (ML): AI의 하위 집합으로, 데이터와 알고리즘을 사용하여 예측 모델을 훈련하는 기술입니다. 명시적으로 프로그래밍되지 않아도 데이터로부터 패턴을 학습하여 예측을 수행합니다. ML은 데이터 과학을 기반으로 합니다.
  3. 데이터 과학: 가장 근간이 되는 계층으로, 데이터를 분석하기 위한 수학 및 통계적 방법론을 다룹니다. 데이터 과학을 통해 데이터에서 의미 있는 인사이트를 추출하고, 이는 머신러닝 모델의 훈련 데이터로 사용됩니다.

 

3.0 Azure Cognitive Services 아키텍처 및 관리

엔지니어가 AI 기능을 호출하는 단 한 줄의 코드를 작성하기 전에, 솔루션 아키텍트는 견고하고 안전한 기반을 구축해야 합니다. 본 섹션에서는 모든 성공적인 엔터프라이즈급 Azure AI 솔루션의 근간이 되는 핵심적인 아키텍처 결정 사항들, 즉 리소스 프로비저닝 전략부터 네트워크 보안 패턴에 이르기까지 상세히 다룹니다.

3.2. 리소스 프로비저닝 전략: 다중 서비스 vs. 단일 서비스

Azure Cognitive Services 리소스를 생성할 때, 엔지니어는 두 가지 주요 모델 중 하나를 선택해야 합니다. 각 모델은 장단점이 뚜렷하여 사용 사례에 따라 최적의 아키텍처적 선택이 필요합니다.

특성 다중 서비스 리소스 (Multi-service) 단일 서비스 리소스 (Single-service)
엔드포인트 및 키 모든 서비스(시각, 언어, 음성 등)가
단일 엔드포인트단일 키 세트를 공유합니다.
각 개별 서비스(예: Computer Vision, Speech)가
고유한 엔드포인트고유한 키 세트를 가집니다.
가격 책정 계층 표준(Standard) 계층만 제공되며,
무료(Free) 옵션이 없습니다.
표준(Standard) 계층과 함께 제한된 사용량을 제공하는
무료(Free) 옵션이 제공됩니다.
청구 관리 모든 서비스 사용량이 하나의 리소스에 통합되어
청구되므로 관리가 단순합니다.
서비스별로 비용을 분리하여 추적하고 관리하기
용이합니다. (예: 훈련 비용과 예측 비용 분리)
사용 사례 여러 Cognitive Services를 함께 사용하는
솔루션을 개발할 때 관리가 간편하며,
키와 엔드포인트 관리를 단순화하고자 할 때
적합합니다.
특정 서비스 하나만 사용하거나,
개발 및 테스트 단계에서 무료 계층을 활용하고자 할 때,
또는 서비스별 비용을 정밀하게 분리해야 할 때 적합합니다.

3.3. 인증 및 접근 제어

모든 Cognitive Service와의 상호작용은 엔드포인트 URI액세스 키라는 두 가지 핵심 요소를 통해 이루어집니다.

  • 엔드포인트 URI (endpoint): 서비스에 접근하기 위한 고유한 주소입니다. (예: my-ai-service.cognitiveservices.azure.com)
  • 액세스 키 (key): 서비스 호출을 인증하기 위한 비밀 문자열입니다.

각 리소스에는 두 개의 액세스 키(Key 1, Key 2)가 제공되는데, 이는 키 순환(rotation)을 통해 서비스 중단을 방지하기 위함입니다. 서비스 중단 없는 키 재성성 절차는 다음과 같은 명확한 단계를 따릅니다.

  1. 애플리케이션이 현재 사용 중인 키(예: Key 1)를 Key 2로 사용하도록 코드를 업데이트하고 배포합니다.
  2. Azure Portal 또는 API를 통해 Key 1을 재성성합니다.
  3. 애플리케이션이 새로 생성된 Key 1을 사용하도록 다시 업데이트하고 배포합니다.
  4. 안전하게 전환이 완료되면, 향후 순환을 위해 Key 2를 재성성할 수 있습니다.

보안 모범 사례로서, 이러한 액세스 키를 애플리케이션 코드나 설정 파일에 직접 하드코딩하는 것은 매우 위험합니다.

대신 Azure Key Vault를 사용하여 키를 안전하게 저장하고, 애플리케이션에는 관리 ID(Managed Identity)와 역할 기반 접근 제어(RBAC)를 부여하여 Key Vault에서 동적으로 키를 읽어오도록 구성하는 것이 권장되는 아키텍처 패턴입니다.

3.4. 네트워크 보안 구성

Cognitive Services 리소스의 엔드포인트는 기본적으로 공용 인터넷을 통해 접근 가능하지만, 다음과 같은 방법을 통해 접근을 제어하고 보안을 강화할 수 있습니다. 엔지니어는 보안 요구사항에 따라 이 세 가지 패턴 중 적절한 것을 선택해야 합니다.

  • IP 방화벽 규칙: 신뢰할 수 있는 특정 공용 IP 주소 또는 주소 범위에서만 서비스에 접근할 수 있도록 제한합니다.
  • 서비스 엔드포인트: Azure 가상 네트워크(VNet) 내의 특정 서브넷에서만 서비스에 접근할 수 있도록 허용합니다. 이를 통해 트래픽이 Azure 백본 네트워크 내에서만 이동하도록 하여 보안을 강화합니다.
  • 프라이빗 엔드포인트: 리소스의 공용 엔드포인트를 비활성화하고, 가상 네트워크 내에 사설 IP 주소를 가진 네트워크 인터페이스를 생성합니다. 이를 통해 VNet 내의 리소스들이 공용 인터넷을 거치지 않고 비공개적으로 Cognitive Service에 안전하게 접근할 수 있습니다.

3.5. 서비스 상호작용 방식: REST API vs. SDK

Cognitive Services와 상호작용하는 방법은 크게 두 가지로 나뉘며, 개발 환경과 요구사항에 따라 선택해야 합니다.

  • REST API: 개발자가 직접 HTTP 요청을 구성하여 서비스와 통신하는 방식입니다. JSON 형식의 페이로드(본문)를 생성하고, 헤더에 액세스 키를 포함하여 엔드포인트 URI로 POST 또는 GET 요청을 보냅니다. 이 방식의 가장 큰 장점은 특정 프로그래밍 언어나 플랫폼에 종속되지 않는 플랫폼 독립성입니다.
  • SDK (소프트웨어 개발 키트): Microsoft가 C#, Python, Java 등 주요 언어별로 제공하는 라이브러리입니다. SDK는 복잡한 REST 상호작용을 추상화하여 개발자가 더 간단하고 언어에 친화적인 방식으로 서비스를 호출할 수 있게 해줍니다. 예를 들어, SDK를 사용하면 JSON을 직접 구성하는 대신, 클라이언트 객체를 생성하고 detectLanguage(text)와 같은 직관적인 함수를 호출하는 것만으로 작업을 완료할 수 있습니다. 대부분의 경우 SDK 사용이 개발 경험을 크게 향상시키므로 모범 사례로 간주됩니다.

3.6. 비용 관리 및 모니터링

Azure 서비스는 사용한 만큼 비용을 지불하는 소비 기반 가격 책정 모델을 따릅니다. Azure 가격 계산기를 사용하면 예상 사용량을 기반으로 월별 비용을 사전에 예측하고 계획할 수 있습니다.

  • 예산 설정: Azure Cost Management 내에서 특정 리소스 그룹이나 구독에 대한 예산을 설정할 수 있습니다. 설정된 임계값(예: 예산의 80%)에 도달했을 때 실제 지출 또는 예상 지출을 기반으로 이메일, SMS, 또는 Azure Function 호출과 같은 경고를 트리거하여 비용 초과를 방지할 수 있습니다.
  • 메트릭 및 로그:
    • 메트릭은 서비스의 성능과 사용량을 나타내는 수치 데이터(예: 총 호출 수, 지연 시간)입니다. 메트릭을 기반으로 "초당 요청 수가 100개를 초과하면 경고"와 같은 성능 기반 경고를 설정할 수 있습니다.
    • 로그는 감사, 요청, 응답 등 각 트랜잭션에 대한 상세한 텍스트 기반 데이터입니다. 로그는 기본적으로 활성화되어 있지 않으며, 진단 설정을 통해 수집을 활성화해야 합니다. 수집된 로그는 사용 목적에 따라 다른 대상으로 전송할 수 있습니다.
      • Log Analytics 작업 영역: 쿼리를 통해 로그를 심층 분석하고 시각화할 때 사용합니다.
      • Event Hub: 외부 SIEM(보안 정보 및 이벤트 관리) 시스템과 통합할 때 사용합니다.
      • Storage Account: 장기 보관 및 규정 준수를 위해 저렴한 비용으로 로그를 아카이빙할 때 사용합니다.

3.7. 배포 유연성: 클라우드 서비스 vs. 컨테이너

대부분의 경우 Cognitive Services는 Azure 클라우드에서 호스팅되는 관리형 서비스로 사용됩니다. 하지만 특정 시나리오에서는 컨테이너를 사용하여 온프레미스 또는 엣지 환경에 서비스를 직접 배포하는 것이 아키텍처적으로 필수적입니다.

  • 컨테이너 배포가 필요한 이유:
    • 네트워크 연결이 불안정하거나 없는 환경(예: 원격지의 공장)
    • 클라우드로 데이터를 전송하는 데 따른 지연 시간을 허용할 수 없는 경우(예: 자율 주행차의 실시간 객체 탐지, 공장 안전 시스템의 위험 감지)
  • 컨테이너 실행 요구사항: 컨테이너화된 Cognitive Services는 오프라인 환경에서 실행될 수 있지만, 완전한 '에어갭(air-gapped)' 솔루션은 아닙니다. 컨테이너를 실행하려면 다음 세 가지 정보가 필수적으로 제공되어야 하며, 주기적인 인터넷 연결이 필요합니다.
    1. API 키: 서비스 사용 권한을 인증하기 위한 키
    2. 청구 엔드포인트: 사용량을 Azure에 보고하고 비용을 청구하기 위한 엔드포인트 주소
    3. EULA 동의: 최종 사용자 사용권 계약에 대한 동의

 

4.0 Cognitive Services 기능 심층 분석: 4대 핵심 영역

아키텍트의 관점에서 볼 때, Azure가 제공하는 방대한 사전 훈련된 AI 모델 포트폴리오를 이해하는 것은 올바른 도구를 선택하는 첫걸음입니다. 이 섹션에서는 시각, 언어, 음성, 의사결정이라는 네 가지 핵심 영역을 탐구하며, 개발자가 복잡한 AI 모델을 직접 구축하는 수고 없이도 어떻게 정교한 AI 기능을 애플리케이션에 신속하게 통합하고 비즈니스 가치를 창출할 수 있는지 분석합니다.

4.2. 시각 인식 (Visual Perception) 서비스

이미지 분석 (Image Analysis)

이미지 분석 서비스는 단일 API 호출을 통해 이미지에서 다양한 시각적 정보를 추출하는 범용 서비스입니다.

  • 이미지 설명(캡션): 이미지의 내용을 설명하는 자연어 문장을 생성합니다. (예: "도로 위의 자동차")
  • 카테고리 및 태그: 이미지를 분류하는 카테고리(예: transportation_vehicle)와 관련된 태그(예: car, sun)를 식별합니다.
  • 객체 위치: 이미지 내의 주요 객체를 탐지하고 해당 위치를 경계 상자(Bounding Box) 좌표로 반환합니다.
  • 콘텐츠 조정: 성인용 또는 폭력적인 콘텐츠를 감지하고 등급을 매깁니다.
  • 스마트 썸네일 생성: 이미지의 주요 피사체를 자동으로 식별하여 지능적으로 잘라낸 썸네일을 생성합니다. 아키텍트는 이 서비스를 범용적인 이미지 인텔리전스 작업에 선택하겠지만, 고정밀 인식이나 특정 도메인 분류가 주요 비즈니스 요구사항일 경우 특화된 Face 또는 Custom Vision 서비스로 전환해야 합니다.

비디오 분석 (Video Analysis)

비디오 분석은 비디오 파일에서 다차원적인 인사이트를 추출하여 콘텐츠를 이해하는 데 사용됩니다.

  • 장면 분할: 비디오 내에서 의미 있는 장면 전환을 감지합니다.
  • 음성 스크립트: 비디오의 음성을 텍스트로 변환합니다.
  • 감정 분석: 등장인물의 감정 변화를 추적합니다.
  • 콘텐츠 조정: 부적절한 시각적 또는 청각적 콘텐츠를 식별합니다.

이미지 분류 및 객체 탐지 (Custom Vision)

사용자 지정 비전(Custom Vision)은 개발자가 자체 이미지를 업로드하여 특정 도메인에 맞는 모델을 직접 훈련시킬 수 있는 서비스입니다.

  • 다중 클래스(Multi-class) 분류: 이미지가 여러 가능한 클래스 중 단 하나에만 속하는 경우 사용합니다. (예: 이 이미지는 '자동차' 또는 '비행기' 또는 '과일' 중 하나이다.)
  • 다중 레이블(Multi-label) 분류: 하나의 이미지가 여러 개의 레이블을 동시에 가질 수 있는 경우 사용합니다. (예: 이 이미지는 '과일'이면서 동시에 '채소'일 수 있다.)

얼굴 분석 (Facial Analysis)

얼굴 분석은 일반적인 Computer Vision 서비스보다 더 특화된 기능을 제공합니다.

  • Computer Vision vs. Face 서비스: Computer Vision은 이미지에 얼굴이 있다는 사실과 그 위치만 알려주는 반면, Face 서비스는 얼굴의 속성(안경 착용 여부, 머리 자세 등)을 분석하고, 두 사진의 인물이 동일인인지 **검증(Verification)**하거나, 등록된 인물 그룹 중에서 특정 인물을 **인식(Recognition)**하는 고급 기능을 제공합니다.
  • 책임 있는 AI: 과거에는 나이와 성별 예측 기능을 제공했지만, 잠재적인 오용과 편향 문제를 고려하여 책임 있는 AI 원칙에 따라 해당 기능은 제거되었습니다.

광학 문자 인식 (OCR)

이미지나 문서에서 텍스트를 추출하는 기능으로, 사용 사례에 따라 두 가지 API가 제공됩니다.

  • Read API (비동기식): PDF와 같은 대용량 다국어 문서 처리에 최적화되어 있습니다. API를 호출하면 작업 ID를 즉시 반환하고, 백그라운드에서 처리한 후 별도의 호출을 통해 결과를 가져오는 비동기 방식으로 동작합니다. 164개의 인쇄체 언어와 9개의 필기체 언어를 지원합니다.
  • Image Analysis API (동기식): 이미지 내의 소량 텍스트를 빠르게 추출하는 데 사용됩니다. 단일 동기식 호출로 즉시 결과를 반환합니다.

4.3. 언어 (Language) 서비스

사용자 지정 언어 이해 (Custom Language Understanding - CLU)

CLU는 사용자의 자연어 발화에서 핵심 의도(Intent)를 파악하도록 모델을 훈련시키는 서비스입니다.

  • 의도(Intent): 사용자가 달성하고자 하는 목표 (예: GetTime)
  • 발화(Utterances): 의도를 표현하는 다양한 문장 예시 (예: "What is the time?", "Tell me the time")
  • 엔터티(Entities): 발화 내에서 의도를 구체화하는 핵심 정보 (예: "What is the time in London?"에서 London은 Location 엔터티)

사용자 지정 텍스트 분류 (Custom Text Classification)

텍스트 문서를 사용자가 정의한 특정 그룹이나 카테고리로 분류하는 기능입니다.

  • 단일 레이블(Single-label): 하나의 문서가 오직 하나의 레이블만 가질 수 있습니다.
  • 다중 레이블(Multi-label): 하나의 문서가 여러 개의 레이블을 동시에 가질 수 있습니다. 이러한 단일 레이블 대 다중 레이블 패러다임은 분류의 기본 개념으로, 텍스트(사용자 지정 텍스트 분류)와 이미지(사용자 지정 비전) 영역 모두에 동일하게 적용되며, 엔지니어는 먼저 데이터 포인트와 잠재적 카테고리 간의 관계를 정의해야 합니다.

모델 성능 평가 지표: 재현율(Recall)과 정밀도(Precision)

모델의 성능을 평가할 때 재현율과 정밀도는 중요한 지표입니다. "피자"를 검색하는 상황을 예로 들어보겠습니다.

지표 개념 설명 "피자 검색" 예시
재현율 (Recall) 실제로 '피자'인 모든 항목 중
모델이 정확하게 식별한 비율은 얼마인가?
(모델이 모든 관련 인스턴스를 찾는 능력을 측정하며,
거짓 음성을 최소화합니다.)
실제 피자 문서가 6개 있었는데,
모델이 3개만 찾아냈다면
재현율은 3/6 = 50% 입니다.
정밀도 (Precision) 모델이 '피자'라고 주장한 모든 항목 중
실제로 '피자'였던 비율은 얼마인가?
(예측의 정확도를 측정하며, 거짓 양성을 최소화합니다.)
모델이 4개의 문서를 결과로 반환했는데,
그 중 3개만 진짜 피자 문서였다면
정밀도는 3/4 = 75% 입니다.

질의 응답 (Question Answering)

FAQ 문서나 제품 매뉴얼과 같은 정형/비정형 데이터 소스로부터 지식 베이스(Knowledge Base)를 구축하고, 사용자의 자연어 질문에 가장 적합한 답변을 찾아주는 서비스입니다.

텍스트 분석 (Text Analysis)

사전 구성된 기능을 통해 텍스트에서 다양한 정보를 추출합니다.

  • 언어 감지: 텍스트가 어떤 언어로 작성되었는지 식별합니다.
  • 핵심 구 추출: 텍스트의 주요 주제를 나타내는 핵심 단어와 구문을 추출합니다.
  • 감정 분석: 텍스트의 감정(긍정, 부정, 중립)을 분석하고 점수를 매깁니다.
  • 명명된 엔터티 인식(NER): 텍스트에서 사람, 장소, 조직 등과 같은 고유한 엔터티를 식별합니다.

번역 (Translator)

텍스트를 다른 언어로 번역하는 서비스로, 다음과 같은 고급 기능을 포함합니다.

  • 일대다(One-to-many) 번역: 하나의 원본 언어를 여러 대상 언어로 동시에 번역합니다.
  • 단어 정렬: 원본 문장과 번역된 문장 간에 단어가 어떻게 매핑되는지 정보를 제공합니다.
  • 욕설 필터링: 부적절한 단어를 삭제하거나 마스킹 처리합니다.
  • 음차 변환(Transliteration): 한 언어의 단어를 다른 문자 체계(스크립트)로 소리 나는 대로 변환합니다. (예: 키릴 문자를 라틴 알파벳으로 변환)

4.4. 음성 (Speech) 서비스

음성 텍스트 변환 (Speech-to-Text)

음성 데이터를 텍스트로 변환하는 기능입니다. 개발자는 Speech Config 객체(서비스 키, 지역 정보 포함)와 Audio Config 객체(입력 소스 지정, 예: 마이크 또는 오디오 파일)를 사용하여 인식기를 구성합니다. 최대 60초의 짧은 오디오용 API와 긴 오디오 파일 처리를 위한 API가 별도로 제공됩니다.

텍스트 음성 변환 (Text-to-Speech)

텍스트를 자연스러운 사람의 목소리로 변환합니다.

  • 기본 텍스트 입력: 단순 텍스트를 입력하면 표준 음성으로 변환됩니다.
  • SSML (Speech Synthesis Markup Language): XML 기반의 마크업 언어로, 말하기 스타일, 멈춤(pause), 음조(pitch), 속도(rate) 등을 세밀하게 제어하여 훨씬 풍부하고 표현력 있는 음성 출력을 생성할 수 있습니다.

음성 번역 (Speech Translation)

음성 입력을 받아 실시간으로 번역된 텍스트와 음성을 출력하는 서비스입니다. 하나의 입력 언어에 대해 원본 텍스트와 번역된 텍스트를 동시에 얻을 수 있습니다.

  • 이벤트 기반 (1:1): 하나의 입력 언어와 하나의 출력 언어 간의 실시간 번역에 사용됩니다.
  • 수동 (1:N): 하나의 입력 언어를 여러 출력 언어로 번역해야 할 때 사용됩니다.

화자 인식 (Speaker Recognition)

음성 데이터를 기반으로 특정 화자를 식별하거나 인증하는 기능입니다.

4.5. 의사 결정 (Decision) 서비스

변칙 탐지기 (Anomaly Detector)

시계열 데이터에서 일반적인 패턴을 벗어나는 이례적인 이벤트(변칙)를 탐지합니다. 단일 신호(예: 서버 CPU 사용량) 또는 여러 신호 간의 상관관계(예: 공장 설비의 온도, 압력, 진동)를 기반으로 변칙을 탐지할 수 있습니다.

콘텐츠 중재자 (Content Moderator)

텍스트와 이미지에서 성인용, 인종 차별적, 폭력적이거나 불쾌감을 줄 수 있는 콘텐츠를 자동으로 탐지하고 필터링하여 안전한 온라인 환경을 구축하는 데 도움을 줍니다.

Personalizer

강화 학습(Reinforcement Learning) 원리를 사용하여 사용자에게 가장 관련성 높은 콘텐츠나 제품을 추천하는 서비스입니다. 사용자의 상호작용(예: 추천된 항목 클릭 여부)을 '보상(Reward)' 신호로 학습하여, 시간이 지남에 따라 점점 더 개인화된 최적의 추천 순위를 제공합니다.

 

5.0 사전 구축된 AI 솔루션 활용

엔터프라이즈 환경에서는 개별 AI API를 조합하는 개발 노력을 줄이고 특정 비즈니스 문제를 신속하게 해결하는 것이 중요합니다. 이 섹션에서는 아키텍트가 반드시 알아야 할 고수준의 턴키(turnkey) 솔루션들을 다룹니다. 이러한 솔루션을 통해 기업은 문서 처리, 챗봇 개발, 지능형 검색과 같은 과제를 더 빠르고 효율적으로 해결할 수 있습니다.

5.2. Azure Forms Recognizer: 지능형 문서 처리

Forms Recognizer는 OCR 기술에 딥러닝을 결합하여 문서에서 텍스트뿐만 아니라 키-값 쌍, 테이블, 선택 표시와 같은 구조화된 데이터를 지능적으로 추출하는 서비스입니다.

  • 사전 구축 모델: W2 양식(미국 세금 양식), 인보이스, 영수증, 명함 등 일반적인 문서 유형에 대해 별도의 훈련 없이 즉시 사용할 수 있는 모델을 제공합니다. 개발자는 단순히 문서를 API에 전송하기만 하면 됩니다.
  • 사용자 지정 모델: 조직 고유의 양식을 처리하기 위해 자체 데이터로 모델을 훈련시킬 수 있습니다.
    • Forms Recognizer Studio 사용: GUI 기반의 도구를 사용하여 최소 5개의 샘플 문서를 업로드하고, 각 필드에 직접 레이블을 지정하여 모델을 시각적으로 훈련시킵니다.
    • Blob 컨테이너 사용: Azure Blob Storage 컨테이너에 샘플 문서(PDF, JPG 등)와 각 문서에 해당하는 OCR 및 레이블 정보를 담은 JSON 파일을 구성하여 API를 통해 모델을 훈련시킬 수도 있습니다.

5.3. Azure Bot Service: 대화형 AI 구축

Azure Bot Service는 지능형 챗봇을 개발, 배포, 관리하기 위한 통합 환경을 제공하는 3계층 아키텍처로 구성됩니다.

  • 3계층 아키텍처:
    1. Azure Bot Service: 봇을 Azure에 등록하고 채널에 연결하는 최상위 서비스입니다.
    2. Bot Framework Service: 봇과 채널 간의 메시지를 라우팅하는 REST API 기반의 중간 계층입니다.
    3. Bot Framework SDK: 개발자가 C#, Python 등을 사용하여 봇의 대화 로직을 구현하는 데 사용하는 라이브러리입니다.
  • 개발 모델: 봇은 사용자의 메시지나 대화 참여와 같은 **'활동(Activity)'**을 수신하여 동작합니다. 개발자는 SDK가 제공하는 '활동 처리기(Activity Handlers)'(예: OnMessageActivityAsync)를 구현하여 각 활동 유형에 맞는 로직을 작성합니다.
  • 다중 채널 배포: Bot Service의 가장 큰 아키텍처적 장점 중 하나는 한 번 작성한 봇 로직을 코드 변경 없이 웹 채팅, 이메일, Microsoft Teams, Slack 등 다양한 채널에 동시에 배포할 수 있다는 점입니다.

5.4. Azure Cognitive Search: 엔터프라이즈 데이터 검색 및 분석

Azure Cognitive Search는 개발자가 풍부한 검색 경험을 애플리케이션에 추가할 수 있도록 지원하는 완전 관리형 서비스형 검색(Search-as-a-Service) 솔루션입니다.

  • 수집(Ingest) 및 인덱싱(Indexing): Azure Blob Storage, SQL Database, Cosmos DB 등 다양한 데이터 소스로부터 데이터를 수집하여 검색 가능한 인덱스를 생성하는 것이 핵심 프로세스입니다.
  • 기술 세트(Skillsets): 인덱싱 파이프라인 중에 데이터를 보강하고 변환하는 AI 기반의 기능 모음입니다. 예를 들어, 이미지 파일에서 OCR 기술을 사용하여 텍스트를 추출하거나, 문서의 언어를 감지하고 다른 언어로 번역하는 등의 내장된 기술을 적용할 수 있습니다.
  • 지식 저장소(Knowledge Store): 기술 세트를 통해 보강된 데이터를 검색 인덱스뿐만 아니라, 분석이나 다른 목적으로 활용할 수 있도록 별도의 저장소(Azure Blob Storage의 JSON 파일, Azure Table Storage 등)에 저장하는 기능입니다. 이를 통해 AI가 생성한 인사이트를 영구적으로 보존하고 활용할 수 있습니다.
  • 확장성 및 가용성 (복제본 및 파티션):
    • 파티션(Partitions): 인덱스를 분할하여 저장 공간과 쓰기 처리량을 늘립니다.
    • 복제본(Replicas): 인덱스의 전체 복사본을 만들어 쿼리 처리량을 늘리고(부하 분산) 고가용성을 보장합니다. 읽기/쓰기 작업에 대해 99.9%의 가용성(SLA)을 확보하려면 최소 3개의 복제본이 필요하며, 읽기 전용 작업의 경우 2개의 복제본이 필요합니다.

5.5. 기타 특화 솔루션 요약

  • Metrics Advisor: Anomaly Detector 서비스를 기반으로 구축된 사전 구축 솔루션으로, 시계열 비즈니스 메트릭을 실시간으로 모니터링하고 이상 징후를 자동으로 탐지하여 알려줍니다.
  • Video Analyzer for Media: 비디오 분석을 위한 포괄적인 서비스로, 장면 분할, 음성 스크립트 생성, 얼굴 식별 등 다양한 인사이트를 쉽게 추출할 수 있도록 패키징되어 있습니다.
  • Immersive Reader: 모든 연령과 능력의 사용자가 텍스트를 더 쉽게 읽고 이해할 수 있도록 돕는 접근성 향상 도구입니다. 텍스트 간격 조정, 음절 나누기, 소리 내어 읽기, 번역 등의 기능을 제공합니다.

 

6.0 미래 전망: Azure OpenAI 서비스의 이해

이 섹션에서 다루는 Azure OpenAI 서비스는 소스 컨텍스트 작성 시점에는 AI-102 시험 범위에 포함되지 않았으나, 향후 AI 엔지니어링의 패러다임을 바꿀 핵심 기술입니다. 기존 Cognitive Services가 특정 작업을 수행하는 '특화된 모델'이라면, Azure OpenAI는 광범위한 작업을 수행할 수 있는 '대규모 언어 모델(LLM)'을 기반으로 한다는 점에서 근본적인 차이를 가집니다.

6.2. 대규모 언어 모델(LLM)의 기본 개념

GPT-3.5, GPT-4와 같은 대규모 언어 모델(LLM)은 인터넷의 방대한 텍스트와 코드 데이터로 사전 훈련된 거대한 신경망입니다. 이러한 모델은 다음과 같은 특징을 가집니다.

  • 사전 훈련 및 읽기 전용: 모델을 훈련하는 데에는 막대한 시간과 비용, 컴퓨팅 자원이 소요됩니다. 따라서 한 번 훈련된 모델은 기본적으로 **'읽기 전용(read-only)'**으로 간주되며, 사용자가 직접 재훈련시키는 것은 거의 불가능합니다. (예: GPT-4의 훈련 데이터는 2021년 9월까지의 정보로 제한됩니다.)
  • 프롬프트와 추론: 사용자와 모델의 상호작용은 **프롬프트(Prompt)**를 통해 이루어집니다. 사용자가 텍스트로 된 지시사항이나 질문(프롬프트)을 제공하면, 모델은 이를 바탕으로 다음에 올 가장 가능성 높은 단어(토큰)를 예측하는 추론(Inference) 과정을 반복하여 응답을 생성합니다.

6.3. 프롬프트 접지(Grounding) 패러다임

모델 자체를 재훈련시킬 수 없기 때문에, 응답의 정확성과 관련성을 높이기 위해서는 프롬프트를 향상시키는 '접지(Grounding)' 기술이 매우 중요합니다. 접지는 모델에 추가적인 맥락을 제공하여 더 나은 응답을 유도하는 과정입니다.

  • 시스템 프롬프트 (System Prompt): 모델에게 역할을 부여하거나 행동 지침을 제공하여 응답의 전체적인 톤과 맥락을 설정합니다. 예를 들어, "당신은 Azure에 대해 설명하는 도움이 되는 AI 어시스턴트입니다. 항상 정중하고 명확하게 답변해야 합니다."와 같은 시스템 프롬프트를 제공하면, 모델은 해당 역할에 맞는 응답을 생성합니다.
  • 자체 데이터 통합 (Bring Your Own Data): 모델의 훈련 데이터에 없는 최신 정보나 기업 내부의 비공개 데이터를 기반으로 응답을 생성하게 하는 가장 강력한 접지 방법입니다. 이 과정은 일반적으로 Azure Cognitive Search와 연동하여 이루어집니다. 사용자가 질문을 하면, 시스템은 먼저 Cognitive Search를 사용해 관련 문서를 검색하고, 그 검색 결과를 프롬프트에 동적으로 추가하여 모델에 전달합니다. 이를 통해 LLM은 2021년 9월 이후의 정보나 회사의 내부 정책 문서에 대해서도 정확하게 답변할 수 있게 됩니다.

6.4. 주요 활용 사례 분석

Azure OpenAI 서비스는 특히 개발자의 생산성을 획기적으로 향상시키는 데 사용될 수 있습니다.

  • 코드 설명 및 문서화: 복잡한 코드 블록의 기능을 자연어로 설명하거나, 함수에 대한 주석을 자동으로 생성합니다.
  • 코드 변환 및 리팩토링: 한 프로그래밍 언어로 작성된 코드를 다른 언어로 변환하거나, 코드의 가독성과 효율성을 높이도록 리팩토링합니다.
  • 버그 수정 및 단위 테스트 작성: 코드의 오류를 찾아 수정 제안을 하거나, 특정 함수에 대한 단위 테스트 코드를 자동으로 생성합니다.

 

7.0 결론: AI-102 인증 성공을 위한 전략적 접근

본 백서는 Azure AI 엔지니어가 갖춰야 할 핵심 지식 체계를 포괄적으로 다루었습니다. 우리는 성공적인 AI 솔루션의 윤리적 기반이 되는 책임 있는 AI 원칙에서 시작하여, 서비스 프로비저닝, 인증, 보안, 비용 관리를 포함한 Cognitive Services의 근본적인 아키텍처를 분석했습니다. 이어서 시각, 언어, 음성, 의사결정이라는 네 가지 핵심 영역에 걸친 개별 서비스의 구체적인 기능과 사용 사례를 심층적으로 탐구했으며, Forms Recognizer, Bot Service, Cognitive Search와 같은 사전 구축 솔루션이 어떻게 특정 비즈니스 문제를 효율적으로 해결하는지 살펴보았습니다. 마지막으로, Azure OpenAI를 통해 생성형 AI라는 새로운 패러다임을 조망하며 미래 AI 엔지니어링의 방향성을 제시했습니다.

7.2.

이러한 지식을 바탕으로 AI-102 시험에 성공적으로 합격하기 위한 구체적인 실행 전략은 다음과 같습니다.

  1. 온라인 학습 자료의 체계적 학습: Microsoft Learn에서 제공하는 AI-102 관련 자습형 학습 모듈은 시험의 모든 범위를 다루는 가장 중요한 자료입니다. 각 모듈을 빠짐없이 체계적으로 학습하여 모든 개념을 완전히 숙지해야 합니다.
  2. 실습을 통한 이해 심화: 이론 학습만으로는 부족합니다. GitHub에 제공된 실습 랩을 직접 수행하며 각 서비스의 API를 호출하고, SDK 함수를 사용하며, 반환되는 데이터 구조를 눈으로 확인하는 과정은 지식을 체화하는 데 필수적입니다. 이 경험은 코드 이해 능력을 요구하는 문제에 대비하는 가장 효과적인 방법입니다.
  3. 서비스별 기능 명확히 이해: 시험에는 "이러한 비즈니스 문제를 해결하기 위해 어떤 서비스들의 조합을 사용해야 하는가?"와 같은 시나리오 기반 질문이 다수 출제됩니다. 각 서비스가 어떤 고유한 목적을 가지고 어떤 기능을 제공하는지 명확히 구분하고 설명할 수 있어야 합니다.
  4. 효과적인 시간 관리: 시험 시간(1시간 40분)은 문항 수에 비해 넉넉하다는 점을 기억하십시오. 서두르지 말고 각 질문을 신중하게 읽으십시오. 만약 확신이 서지 않는 문제가 있다면, 표시(Mark) 해두고 다른 문제를 먼저 푼 뒤 마지막에 다시 검토하는 전략을 활용하십시오. 때로는 뒷부분의 문제가 앞선 문제에 대한 힌트를 제공하기도 합니다.

 

반응형