과정 20487-D: Developing Microsoft Azure and Web Services

본 과정에서는 다양한 소스에서 로컬 및 원격 데이터에 액세스하는 서비스를 설계하고 개발하는 방법에 대해 설명합니다. 또한 온-프레미스 서버 및 Microsoft Azure를 포함한 하이브리드 환경에 사용할 서비스를 개발하고 배포하는 방법도 설명합니다.

대상 그룹 프로필

기본 대상 그룹; 서비스를 개발하고 하이브리드 환경에서 배포하는 방법을 배우고자 하는 .NET 개발자.

보조 대상 그룹; 웹 애플리케이션 개발 경험이 있으며 새로운 애플리케이션을 개발하거나 기존 애플리케이션을 Microsoft Azure에 배포하는 방법을 찾고 있는 .NET 개발자.

직무: 개발자

획득한 기술

  • .NET 플랫폼을 사용한 서비스 개발 및 데이터 액세스 전략의 기본 개념 설명.
  • Microsoft Azure 클라우드 플랫폼과 그 컴퓨팅, 데이터 및 애플리케이션 호스팅 제안에 대해 설명.
  • Visual Studio 2017 및 Entity Framework Core를 사용하여 데이터 중심 애플리케이션 설계 및 개발.

필수 조건

이 과정에 참석하기 전에 학생들은 다음을 갖추어야 합니다:

  • C# 프로그래밍 및 람다 식, LINQ 및 무명 형식 등 개념 경험.
  • n-계층 애플리케이션의 개념 이해
  • ADO.NET을 통한 데이터 쿼리 및 조작 경험

과정 개요

모듈 1: 서비스 및 클라우드 기술 개요

본 모듈에서는 Microsoft .NET Core 및 Azure를 사용하는 서비스 및 클라우드 기술에 대한 개요를 제공합니다. 첫 번째 단원인 "분산 애플리케이션의 주요 구성 요소"에서는 사용하는 기술과 상관없이 분산 시스템에 공통으로 적용되는 특성에 대해 설명합니다. 단원 2, "데이터 및 데이터 액세스 기술"에서는 분산 애플리케이션에서 데이터를 사용하는 방법에 대해 설명합니다. 단원 3, "서비스 기술"에서는 분산 시스템에서 가장 일반적인 두 프로토콜과 이러한 프로토콜을 기반으로 서비스를 개발하는 데 사용되는 .NET Core 기술에 대해 설명합니다. 단원 4, "클라우드 컴퓨팅"에서는 클라우드 컴퓨팅과 Azure에서 구현하는 방법에 대해 설명합니다.

단원

  • 분산 애플리케이션의 핵심 구성 요소
  • 데이터 및 데이터 액세스 기술
  • 서비스 기술
  • 클라우드 컴퓨팅
  • 데이터 조작

랩: 작업 환경 탐색

  • ASP.NET Core 프로젝트 생성
  • 간단한 Entity Framework 모델 생성
  • 웹 API 클래스 작성
  • Azure에 웹 애플리케이션 배포

본 모듈을 완료하면 학생들은 다음을 수행할 수 있습니다:

  • 서비스 아키텍처 및 호스팅 환경 설명
  • 클라우드 컴퓨팅 및 Microsoft Azure 클라우드 플랫폼 설명
  • 데이터 액세스 전략 설명

모듈 2: Entity Framework를 사용하여 데이터 쿼리 및 조작

본 모듈에서는 Entity Framework 데이터 모델과 데이터를 생성, 읽기, 업데이트 및 삭제하는 방법에 대해 설명합니다. Entity Framework는 데이터를 조작할 수 있는 편리하고 강력한 API(애플리케이션 프로그래밍 인터페이스)를 제공하는 풍부한 객체 관계 맵퍼입니다. 본 모듈에서는 Entity Framework를 사용한 Code First 접근법에 중점을 둡니다.

단원

  • ADO.NET 개요
  • 엔터티 데이터 모델 작성
  • 데이터 쿼리

랩: Entity Framework를 사용하여 데이터 액세스 계층 생성

  • 데이터 모델 생성
  • 데이터베이스 쿼리

랩: 데이터 조작

  • 리포지토리 메서드 생성
  • SQL Server 및 SQLite을 사용한 모델 테스트

본 모듈을 완료하면 학생들은 다음을 수행할 수 있습니다:

  • ADO.NET의 기본 객체 설명 및 비동기식 운영 작동 방식 설명.
  • Entity Framework Core 데이터 모델 작성.
  • Entity Framework Core를 사용한 데이터 쿼리.
  • Entity Framework Core를 사용하여 엔터티 삽입, 삭제 및 업데이트.

모듈 3: ASP.NET Core Web API 생성 및 사용

ASP.NET Core Web API는 HTTP(Hypertext Transfer Protocol) 기반 서비스를 작성하기 위한 강력한 최신 프레임워크를 제공합니다. 본 모듈에서는 HTTP 기반 서비스를 소개합니다. HTTP의 작동 방식을 배우고 HTTP 메시지, HTTP 메서드, 상태 코드 및 헤더를 숙지하게 됩니다. 또한 REST(Representational State Transfer) 아키텍처 스타일과 하이퍼미디어도 소개합니다.

ASP.NET Core Web API를 사용하여 HTTP 기반 서비스를 생성하는 방법도 설명합니다. 또한 다양한 클라이언트에 대해 사용하는 방법도 설명합니다. 단원 3을 완료한 후, "ASP.NET Core Web API 생성" 랩에서 웹 API를 작성하고 클라이언트에서 사용하게 됩니다.

단원

  • HTTP 서비스
  • ASP.NET Core Web API 생성
  • ASP.NET Core Web API 사용
  • HTTP 요청 및 응답 처리
  • HTTP 요청 및 응답 자동 생성

랩: ASP.NET Core Web API 생성

  • 컨트롤러 클래스 작성
  • 브라우저에서 API 사용
  • 클라이언트 생성

본 모듈을 완료하면 학생들은 다음을 수행할 수 있습니다:

  • HTTP 프로토콜을 사용한 서비스 설계.
  • ASP.NET Core 웹 API를 사용해 서비스 생성.
  • HttpRequest/IActionResult 클래스를 사용하여 HTTP 메시지 제어.
  • ASP.NET Web API 서비스 사용.

모듈 4: ASP.NET Core HTTP 서비스 확장

ASP.NET Core Web API는 HTTP 서비스를 구성하기 위한 완벽한 솔루션을 제공하지만, 해당 서비스에는 다양한 요구 사항과 종속성이 있는 경우가 많습니다. 대부분의 경우 ASP.NET Core Web API가 여러분의 서비스를 실행하는 방법을 확장하거나 사용자 정의해야 합니다. 오류 처리 및 로깅의 적용을 애플리케이션의 다른 구성 요소와 통합하고 HTTP 환경에서 사용할 수 있는 다른 표준을 지원하는 등의 처리 요구 사항을 충족해야 합니다. ASP.NET Core Web API를 확장할 때는 ASP.NET Core Web API의 작동 방식을 이해하는 것이 중요합니다. 또한 ASP.NET Core Web API 실행 방식에 개입할 때는 구성요소 간 책임의 분담과 실행 순서가 중요합니다. 마지막으로 ASP.NET Core Web API를 사용하여 시스템의 다른 부분과의 상호 작용 방식을 확장할 수도 있습니다. 종속성 확인자 메커니즘을 사용하여 서비스의 인스턴스 생성 방법을 제어할 수 있음으로 서비스의 종속성 관리에 대한 완벽한 제어를 할 수 있습니다.

단원

  • ASP.NET 핵심 요청 파이프라인
  • 컨트롤러 및 동작의 사용자 정의
  • 컨트롤러에 종속성 삽입

랩: ASP.NET 핵심 파이프라인 사용자 정의

  • 종속성 삽입을 사용하여 리포지토리 객체 가져오기
  • Cache Filter 생성
  • 디버깅 미들웨어 생성

본 모듈을 완료하면 학생들은 다음을 수행할 수 있습니다:

  • ASP.NET Web API 요청 및 응답 파이프라인 확장.
  • 컨트롤러 및 동작의 사용자 정의.
  • ASP.NET Web API 컨트롤러에 종속성 삽입.

모듈 5: 온-프레미스 및 Azure에서의 호스팅 서비스

본 모듈에서는 온-프레미스 및 Azure에서 애플리케이션을 호스팅하는 방법에 대해 설명합니다. 또한 Docker 컨테이너와 Azure 기능을 통한 서버리스 애플리케이션 작성에 대해서도 설명합니다.

단원

  • 온-프레미스 서비스 호스팅
  • Azure App Service 내 서비스 호스팅
  • 컨테이너 내 서비스 패키징
  • 서버리스 서비스 구현

랩: Windows 서비스에서 ASP.NET Core 서비스 호스트

  • 새로운 ASP.NET Core 애플리케이션 생성
  • Windows 서비스 등록

랩: Azure 웹앱에서 ASP.NET Core Web API 호스트

  • Azure Portal에서 웹앱 생성
  • 웹앱에 ASP.NET Core Web API 배포

랩: Azure Container Instances에서 ASP.NET Core 서비스 호스트

  • Docker 컨테이너에 서비스 게시
  • Azure Container Instances에서 서비스 호스트

랩: Azure Function 구현

  • 현지에서 서비스 개발
  • Azure Functions에 서비스 배포

이 모듈을 완료하면 학생들은 다음을 습득할 수 있습니다:

  • Windows 서비스 및 Microsoft IIS(Internet Information Services)를 사용하여 온-프레미스 서비스 호스팅.
  • 웹앱, Docker 컨테이너, Azure Functions를 이용하여 Azure 클라우드 환경에서 서비스 호스팅.
  • 컨테이너 내 서비스 패키징.
  • 서버리스 서비스 구현.

모듈 6: 서비스 배포 및 관리

본 모듈에서는 Web Deploy 및 Visual Studio에서 Web Deploy를 사용하여 웹 애플리케이션을 배포하는 방법에 대해 설명합니다. 또한 연속 통합 및 지속적인 업데이트 파이프라인을 정의하는 방법과 Azure API Management 및 OpenAPI를 사용하여 고객에게 강력하고 안전하며 안정적인 API를 제공하는 방법에 대해서도 설명합니다.

단원

  • Visual Studio 2017을 통한 웹 배포
  • Visual Studio Team Services를 통한 지속적인 업데이트
  • 스테이징 및 프로덕션 환경에 애플리케이션 배포
  • Azure API Management를 통한 서비스 인터페이스 정의

랩: Linux에서 ASP.NET Core 웹 서비스 배포

  • Linux용 ASP.NET Core 웹 서비스 게시
  • Nginx를 역방향 프록시로 구성

랩: 스테이징 및 프로덕션에 배포

  • 애플리케이션을 프로덕션에 배포
  • 스테이징 슬롯 생성
  • 환경 교체

랩: Azure API Management를 사용하여 웹 API 게시

  • Azure API Management 인스턴스 생성
  • API 테스트 및 관리

본 모듈을 완료하면 학생들은 다음을 수행할 수 있습니다:

  • Microsoft IIS(Internet Information Services) Web Deploy 설명.
  • Microsoft Visual Studio Team Services 빌드 파이프라인을 사용하여 Azure 웹앱 구축에 관해 설명.
  • Azure Container Instances에 웹 서비스를 배포하는 방법 설명.
  • API Management 및 Swager를 사용하여 서비스 인터페이스를 정의하는 방법 설명.
  • API Management를 사용하여 정책을 정의하는 방법 설명.
  • Azure API Management 및 Swager를 사용한 서비스 인터페이스 정의 설명

모듈 7: Azure에서 데이터 스토리지 구현

본 모듈에서는 Azure Storage에 저장된 데이터를 저장하고 액세스하는 방법을 설명합니다. 또한 스토리지 컨테이너 및 콘텐츠에 대한 스토리지 액세스 권한을 구성하는 방법도 설명합니다.

단원

  • 데이터 스토리지 메커니즘 선택
  • Azure Storage의 데이터 액세스
  • Azure에서 구조화된 데이터로 작업
  • Azure CDN을 통해 데이터의 지리적 배포
  • 프로세스 외 캐시를 통한 확장

랩: Azure Storage에 파일 저장

  • Azure Blobs에 공개적으로 액세스할 수 있는 파일 저장
  • Azure Blobs에서 개인 파일 생성 및 저장

랩: CosmosDB를 사용한 그래프 데이터 쿼리

  • CosmosDB 그래프 데이터베이스 작성
  • CosmosDB 데이터베이스 쿼리

랩: Azure Redis cache를 통한 프로세스 외 캐싱

  • Azure Redis Cache 서비스 생성
  • 코드로 캐시 서비스 액세스
  • 애플리케이션 테스트

본 모듈을 완료하면 학생들은 다음을 수행할 수 있습니다:

  • Storage의 아키텍처 설명.
  • Storage 항목에 대한 액세스 제어.
  • Redis용 Azure Cache를 사용하여 데이터 캐시.
  • Microsoft Azure Content Delivery Network를 사용하여 데이터 배포.

모듈 8: 진단 및 모니터링

본 모듈에서는 온-프레미스 및 Azure에서 서비스를 모니터하고 로그하는 방법을 설명합니다.

단원

  • ASP.NET Core 로그인
  • 진단 도구
  • Application Insights

랩: ETW 및 LTTng를 사용한 ASP.NET Core 모니터링

  • ETW 이벤트 수집 및 보기
  • LTTng 이벤트 수집 및 보기

랩: Application Insight를 통한 Azure 웹앱 모니터링

  • Application Insight SDK 추가
  • 웹 서비스 로드 테스트
  • 실적 결과 분석

본 모듈을 완료하면 학생들은 다음을 수행할 수 있습니다:

  • 추적 수신기 설명
  • 성능 카운터 설명
  • ETW 및 LTTng 이벤트 설명
  • App Insight를 사용하여 서비스 모니터링 시연

모듈 9: 온-프레미스 및 Microsoft Azure에서 서비스 보호

본 모듈에서는 클레임 기반 ID 개념 및 표준, ASP.NET Core Web API 서비스를 보호하기 위해 Azure Active Directory를 사용하여 권한 부여 및 인증을 구현하는 방법에 대해 설명합니다.

단원

  • 보안 용어 설명
  • ASP.NET Core Identity를 통한 서비스 보안
  • Azure Active Directory를 통한 서비스 보안

랩: ASP.NET Core Identity 사용

  • ASP.NET Core Identity 미들웨어 추가
  • 인증 코드 추가
  • 서버를 테스트하기 위한 클라이언트 애플리케이션 실행

랩: ASP.NET Core를 통한 Azure Active Directory 사용

  • AAD B2C 및 MSAL.js를 이용한 클라이언트 애플리케이션 인증

모듈 10: 서비스 확장

본 모듈에서는 웹앱 부하 분산 장치, Azure Application Gateway 및 Azure Traffic Manager를 사용하여 확장 가능한 서비스와 애플리케이션을 만들고 이를 자동으로 확장하는 방법을 설명합니다.

단원

  • 확장성 소개
  • 자동 크기 조정
  • Azure Application Gateway 및 Traffic Manager

랩: Azure Web Apps 부하 분산

  • 부하 분산용 애플리케이션 준비
  • 인스턴스 선호도를 사용한 부하 분산 테스트
  • 선호도를 사용하지 않은 부하 분산 테스트

랩: Azure Traffic Manager를 통한 부하 분산

  • 여러 지역에 Azure Web App 배포
  • Azure Traffic Manager 프로필 작성

본 모듈을 완료하면 학생들은 다음을 수행할 수 있습니다:

  • 확장성의 필요성 설명.
  • 서비스 확장에 부하 분산을 사용하는 방법 설명.
  • Azure Load Balancer, Azure Application Gateway 및 Azure Traffic Manager 설명.