이종인 / DesignMe
구름 위로 올려
어디서나 연결되는 서비스
소개
이종인
- 삶을 디자인 하는 서비스
DesignMe 개발자
- Windows Development MVP
세상을 이롭게 하는
여러분들의 서비스
여러분들의 서비스
사람들을 연결 시키고
삶을 더 편리하게 만들기 위한
서비스
빠르게 변화하는 세상
빠르게 변화하는
서비스를
많은 사람들에게 빠르게
연결돼있는 모든 곳에
그리고
NotificationMachine Learning
외부 계정 연동 인증데이터 처리
1
Azure App Service
애저 앱 서비스
Azure App Service
Web Apps Mobile Apps
Azure App Service 구성
WEB APPS
• .NET, Node.js, Java, PHP, and Python
• Webjobs – 웹앱에서 VM에서 프로그램이나
스크립트를 실행
• VS publish, remote debug 통합
• GitHub, BitBucket, VSO를 이용한 협업
• 자동크기조정 – 신속하게 규모 축소 및 확장
• 스태이징 된 배포를 통한 릴리즈 전 코드 검증
웹, 모바일 및
통합 시나리오에 적합
Web Apps
• 네이티브 및 크로스 플랫폼 앱 빌드
• Single Sign On(SSO) – Facebook, Twitter,
Microsoft, Google 계정 연동
• iOS, Android, Windows에 몇 초 내 수백만명에
푸시 알림 전송
• 오프라인 동기화 – SQL, Table Storage, Mongo
DB 등과 오프라인 동기화
• 자동크기조정 – 신속하게 규모 축소 및 확장
전세계에서 사용가능한
모바일 앱 개발 플랫폼
MOBILE APPS
Mobile Apps
• 코드 작성 없이 디자인 도구로 빠르게 작성
• 기존에 만들어진 수많은 템플릿 이용
• 워크플로를 쉽게 디자인
• 커스텀 API 사용
• Biztalk API를 보다 쉽게 이용
비즈니스 프로세스
자동화
LOGIC APPS
Logic Apps
• SaaS 플랫폼에 쉽게 연결
• API 생태계
• 커스텀 API를 발행할 수 있고 다시 사용 가능
• 논리 앱과 통합
• C#, Java 및 Javascript 등의 다양한 API를
이용한 개발
API 생성 및 사용을
더욱 편하게
API APPS
API Apps
• Box
• Chatter
• Delay
• Dropbox
• Azure HD Insight
• Marketo
• Azure Media Services
• OneDrive
• SharePoint
• SQL Server
• Office 365
• Oracle
• QuickBooks
• SalesForce
• Sugar CRM
• SAP
• Azure Service Bus
• Azure Storage
• Timer / Recurrence
• Twilio
• Twitter
• IBM DB2
• Informix
• Websphere MQ
• Azure Web Jobs
• Yammer
• Dynamics CRM
• Dynamics AX
• Hybrid Connectivity
• HTTP, HTTPS
• File
• Flat File
• FTP, SFTP
• POP3/IMAP
• SMTP
• SOAP + WCF
• Batching / Debatching
• Validate
• Extract (XPath)
• Transform (+Mapper)
• Convert (XML-JSON)
• Convert (XML-FF)
• X12
• EDIFACT
• AS2
• TPMOM
• Rules Engine
Connectors
Protocols BizTalk Services
Built-in API Connectors
Demo:
Azure App Service &
Azure Portal
구름 위로 올려
모든 곳에 연결되는 서비스
만들고자 하는 서비스
삶을 디자인 하고
하고 싶은 것들을
공유하는 서비스를
만들고 싶어
뭐가 필요한데?
계정,
Cloud Server
Cross Platform
• 사용자 정보 체계적 관리 및
분석 처리
• 사용자 기기간 데이터 동기화
• 이용자간 채팅, 자료 공유 등
소셜 서비스
• 외부 계정과 연동 서비스
• Etc
• 윈도우 10, iOS, 안드로이드
등 모든 모바일 플랫폼에 대응
할 수 있는 체계
• 여러 디바이스들에 쉽게 연결
될 수 있는 체계
좋은 서비스
• 좋은 기술들로 퍼져나갈 좋은
서비스
• 서비스의 변화에 대응할 수 있
는 체계
• 기술이 좋아도 서비스가 안 좋
으면 무의미
어떻게 하려고?
하고 싶은건 많은데
자금도 없고
개발자도 많이 필요하고
ㅜㅜ
만들었다 쳐도 문제
기능 요구
Ex)#137
일정의 시간대 지원
기능 업데이트
Javascript
기능 추가
C#
기능 추가
Object C
기능 추가
Java
기능 추가
버그
피드백
버그
피드백
모든 플랫폼에 잘
돌아가는지
다시 확인
일괄 혹은
순차적 업데이트
구원자
C#
+
Portable Class Library
PCL
(C#)
.Net
Windows
10
ASP.NET
Xamarin
Demo:
C# & Visual Studio
Everywhere
Windows
10
Android
(Xamarin)
Core + Service Core
iOS
(Xamarin)
Core
[PCL]
Service
Core
[Web App]
Rest API로 한 단계로 연결되는
Service Core와
모든 곳에 연결되어있는
Core
Core + Service Core
Core
[PCL]
Service
Core
[Web App] Storage
Document db
Azure Storage
SQL
Notification
Notification Hub
Data Analysis
Application Insight
Machine Learning
Rest API
HTTP
Business
Logic
Account
서비스 계정 관리
동기화
Web Job
<CODE />
유저 입력
처리
Service Core와의
연결
Demo:
Service Core[Web App]
Everywhere
대부분의 코드와 기능이 공유
Service Core
[Azrue Web App]
Core
[PCL]
Service Core 연결 기능
View Model (MVVM)
View View View
플랫폼 특정 기능 플랫폼 특정 기능 플랫폼 특정 기능
빠르게 변화가 반영되는 서비스
Design Me
Core
Service Core는 게시시 바로
Client는 최신 개발 버전에 바로 적용
이러한 프로세스는
기능 요구
Ex)#137
일정의 시간대 지원
기능 업데이트
Javascript
기능 추가
C#
기능 추가
Object C
기능 추가
Java
기능 추가
버그
피드백
버그
피드백
모든 플랫폼에 잘
돌아가는지
다시 확인
일괄 혹은
순차적 업데이트
이렇게
기능 요구
Ex)#137
일정의 시간대 지원
기능 업데이트 기능 추가
버그
피드백
일괄 업데이트
구름 위를
연결하는 다리
Web App와 Client 사이
User
EventEditView
EventViewModel
(UI Logic)
DB
HTTP
Event
Controller
Logic
for Event
Local DB
Client Web App
Event 데이터 처리 예시
데이터 모델 추가될 때
Entity
Entity
Entity
Contract
Event
EventEditView
EventViewModel
Event Controller
Local DB 처리
Azure DB 처리
….
Event 서버 데이터 처리
데이터 모델 하나 추가 될 때 일일히 해야 되는 것들
Generics
class Test<T> where T : class
{
T _value;
public Test(T t)
{
this._value = t;
}
public void Write()
{
Console.WriteLine(this._value);
}
}
<T>
- 코드 재사용, 형식 안정성 및 성능 최대화
- 고유한 제네릭 인터페이스 클래스, 메서드
및 Delegate 생성 가능
- 특정 데이터 형식의 메서드에만 액세스
하도록 제한 가능
class Program
{
static void Main()
{
Test<int> test1 = new Test<int>(5);
test1.Write();
Test<string> test2 = new Test<string>("cat");
test2.Write();
}
}
PCL에서 사용 가능한 Entity
Entity Framework 7
(Azure SQL)
Table Entity
(Azure Table Storage ≥4.4.0.0)
Json
(Azure Document db)
Windows
10
Android
(Xamarin)
iOS
(Xamarin)
Core
[PCL]
Service
Core
[Web App]
ViewModel<T>
Generic을 이용한 데이터 처리 컨셉
Insert<T>
Entity T (ICustomEntity)
id
UpdatedTime
CreatedTime
…
Update<T>
Delete<T>
Controller<T>
Reflection으로 T변환 필요
TContoller(Http.Post)
TContoller(Http.Put)
TContoller(Http.Delete)
Storage<T>
Sync 기능 통합 가능
Insert<T>
Update<T>
Delete<T>
Get<T>
Sync<T>
다른 싱크 기능을 가진
컨트롤러에서 사용
Controller 처리 예시
BaramTableEntity parseEntity =
JsonConvert.DeserializeObject<BaramTableEntity>(apiRequest.RequestJson);
Type type = Type.GetType($"DesignMe.{parseEntity.TableName}, Core, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null");
Type genericType = typeof(TableStorageManager<>).MakeGenericType(type);
dynamic storagemanager = Activator.CreateInstance(genericType);
dynamic entity = storagemanager.Parse(apiRequest.RequestJson);
Type apiResultType = typeof(TableApiResult<>).MakeGenericType(type);
dynamic apiResult = Activator.CreateInstance(apiResultType);
entity = await storagemanager.Insert(entity);
public class TableController : ApiController
{
public async Task<IHttpActionResult> Post(TableApiRequest apiRequest)
…
Request에 T 정보를 넣고 컨트롤러에서 리플렉션으로 복원
User
View
더 이상 작업이 필요 없어지는 구간
ViewModel<T>
(UI Logic)
DB<T>
HTTP
Controller
<T>
Storage
Manager<T>
Local DB
<T>.db
Client Web App
Entity Framework 7
출처 : entityframeworktutorial.net
Azure SQL 뿐만 아니라
Sqlite 에도 사용 가능해
서버와 클라이언트 모두
사용 가능
이러한 것이 귀찮으시다면
오프라인
싱크
푸시
Custom
API
인증
Azure mobile app
데이터
동기화
데이터 동기화
[Web App]
Notification Hubs
NOTIFICATION
HUBS
• .NET, Node.js, Java, PHP, and Python
• Windows, iOS, Android, Android(China) 등 대부
분의 모바일 플랫폼에 알림 전송 가능
• 등록 시 Tag를 입력해 특정 디바이스나 조건에
맞는 곳에 알림을 보냄
• 수 초 내에 수백만개의 알림 전송 가능
• 뉴스, SNS 알림 등의 Toast 알림과 기기 동기화
를 위한 신호를 주는 Raw 알림 등 여러 타입의
알림 전송 가능
수 초 내에
수백만개의 알림 전송
Notification Hubs
Push
Notifications
wns apns gcm
// windows
var toast = @"<toast><visual>
<binding template=""ToastText01"">
<text id=""1"">Hello</text></binding></visual></toast>";
await
Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast,userTag)
;
// apns
var alert = "{"aps":{"alert":"Hello"}}";
await
Notifications.Instance.Hub.SendAppleNativeNotificationAsync(alert,userTag);
// gcm
var notif = "{ "data" : {"msg":"Hello"}}";
await
Notifications.Instance.Hub.SendGcmNativeNotificationAsync(notif,userTag);
태그
정보
태그
정보
Tag : 원하는 기기에 알림 보내기
switch (notificationType)
{
case "wns":
registration = new
WindowsRegistrationDescription(notificationUri);
break;
case "apns":
registration = new AppleRegistrationDescription(notificationUri);
break;
case "gcm":
registration = new GcmRegistrationDescription(notificationUri);
break;
}
registration.RegistrationId = id; //Notifation RegistrationId
registration.Tags = new HashSet<string>();
registration.Tags.Add("id:" + accountId);
registration.Tags.Add("device:" + deviceId); //Tag 정보
await Hub.CreateOrUpdateRegistrationAsync(registration);
Notification 등록 시
Id, device id 등을
등록하여
원하는 그룹 혹은
장치에만 따로 알림
전송 가능
동기화 과정
Raw Push
Notification
전송
다른 기기들도
동기화
Azure
Web App
Notification
Hub
데이터
처리
Demo:
데이터 동기화
Application
Insights
Application Insight
APPLICATION
INSIGHT
• Google Analystics와 비슷한 기능
• Web App과 Client App 모두 분석 가능
• 사용자의 활동 패턴을 쉽게 분석
• 에러 정보 등 유지 관리에 필요한 정보들도 분
석
• Visual studio에서 간단하게 추가
서비스를 꿰뚫는
인사이트
Demo:
Application Insight
감사합니다.
• MSDN Forum http://aka.ms/msdnforum
• TechNet Forum http://aka.ms/technetforum
http://aka.ms/td2015_again
TechDays Korea 2015에서 놓치신 세션은
Microsoft 기술 동영상 커뮤니티 Channel 9에서
추후에 다시 보실 수 있습니다.

More Related Content

PDF
[Td 2015]windows 10 엔터프라이즈 시나리오 part II 보안 및 관리(권순만)
PDF
[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)
PDF
[TD 2015] Microsoft Azure IaaS v2(최정현)
PDF
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
PDF
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
PPTX
[SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론
PPTX
Getting started with Azure Services Platform
PDF
SQL Azure 실무 도입하기
[Td 2015]windows 10 엔터프라이즈 시나리오 part II 보안 및 관리(권순만)
[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)
[TD 2015] Microsoft Azure IaaS v2(최정현)
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[SW 아키텍처 컨퍼런스] 클라우드 아키텍처 개론
Getting started with Azure Services Platform
SQL Azure 실무 도입하기

What's hot (20)

PDF
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
PDF
클라우드 춘추전국시대 서버 개발자 생존기
PDF
Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님
PDF
Microsoft azure service 소개자료
PDF
Aws발표자료 final
PPTX
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
PDF
AWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
PDF
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
PPTX
DB Migration to Azure Database for PostgreSQL
PPTX
Azure Database for MySQL
PPTX
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
PDF
Migration to Azure Database for MySQL
PDF
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
PDF
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
PDF
SQL Server to Azure SQL Database Migration
PDF
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
PPT
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
PPTX
빠르게훓어보는 Node.js와 Vert.x
PDF
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
PDF
Azure Databases for PostgreSQL MYSQL and MariaDB
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
클라우드 춘추전국시대 서버 개발자 생존기
Microsoft Azure 클라우드 에서 Elasticsearch 서비스 사용 - 이건복 님
Microsoft azure service 소개자료
Aws발표자료 final
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
AWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
DB Migration to Azure Database for PostgreSQL
Azure Database for MySQL
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
Migration to Azure Database for MySQL
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
SQL Server to Azure SQL Database Migration
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
빠르게훓어보는 Node.js와 Vert.x
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
Azure Databases for PostgreSQL MYSQL and MariaDB
Ad

Viewers also liked (20)

PPTX
창업론2조발표
PDF
마이크로소프트 클라우드 Erp 서비스 nav 2013 소개 비영리법인 및 공공산업
PPTX
Cdr with php
PPTX
사업예산실무 Intro 120530_prezi
PPTX
장아찌사업계획서(0623)
PPTX
HOONS닷넷 오픈소스 프로젝트 Part1.
PPT
A817184 동영상삽입
PDF
Using Microsoft Azure as cloud file server
PPTX
Tobi 스프링 2장 php version
PDF
고산 약속타운 사업계획서 임경수
PPTX
The Future of C# and .NET Framework
PPTX
C#을 이용한 task 병렬화와 비동기 패턴
PDF
제 5회 전국 대학생 프로그래밍 동아리 연합 여름 대회 해설 슬라이드
PPTX
크로스플랫폼으로 다시 태어난 ASP.NET Core
PPTX
실내디자인학회 자유주제 대상_human_배경
PPT
웹사이트기획 및 관리
PPTX
소프트웨어인라이프의 CSB
PDF
11_통계 자료분석 입문
PPTX
Edte 314 nutrition Ashley Nicole Kelly
PDF
Enterprise Social
창업론2조발표
마이크로소프트 클라우드 Erp 서비스 nav 2013 소개 비영리법인 및 공공산업
Cdr with php
사업예산실무 Intro 120530_prezi
장아찌사업계획서(0623)
HOONS닷넷 오픈소스 프로젝트 Part1.
A817184 동영상삽입
Using Microsoft Azure as cloud file server
Tobi 스프링 2장 php version
고산 약속타운 사업계획서 임경수
The Future of C# and .NET Framework
C#을 이용한 task 병렬화와 비동기 패턴
제 5회 전국 대학생 프로그래밍 동아리 연합 여름 대회 해설 슬라이드
크로스플랫폼으로 다시 태어난 ASP.NET Core
실내디자인학회 자유주제 대상_human_배경
웹사이트기획 및 관리
소프트웨어인라이프의 CSB
11_통계 자료분석 입문
Edte 314 nutrition Ashley Nicole Kelly
Enterprise Social
Ad

Similar to [Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인) (20)

PDF
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
PPTX
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
PPTX
OCE - Cno 2014 private sector oriented open paas oce
PDF
마이크로소프트 앱 플랫폼을 이용한 어플리케이션 개발과 배포
PDF
Meetup tools for-cloud_native_apps_meetup20180510-vs
PDF
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
PDF
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
PDF
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트 :: IoT Convergence Conference 2015
PDF
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
PDF
AWS 와 함께하는 클라우드 컴퓨팅:: 방희란 :: AWS Summit Seoul 2016
PPTX
2010 Microsoft @ Cloud Day 안준석 발표자료
PDF
Intro to hpe helion stackato_paa_s
PPTX
Open standard open cloud engine for digital business process
PDF
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)
PDF
designing, implementing and delivering microservices with event storming, spr...
PDF
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
PDF
AWS로 연결하는 사물인터넷의 세계 :: 이경수 :: AWS Summit Seoul 2016
PDF
[IGC 2017] AWS 김필중 솔루션 아키텍트 - AWS 를 활용한 모바일 백엔드 개발
PDF
AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나
PPTX
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)
DevOps를 위한 AWS 서비스 및 개발도구 -김상필 솔루션아키텍트 :: AWS 파트너 테크시프트 세미나
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
OCE - Cno 2014 private sector oriented open paas oce
마이크로소프트 앱 플랫폼을 이용한 어플리케이션 개발과 배포
Meetup tools for-cloud_native_apps_meetup20180510-vs
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
AWS IoT 서비스 활용하기- 윤석찬, AWS 테크에반젤리스트 :: IoT Convergence Conference 2015
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
AWS 와 함께하는 클라우드 컴퓨팅:: 방희란 :: AWS Summit Seoul 2016
2010 Microsoft @ Cloud Day 안준석 발표자료
Intro to hpe helion stackato_paa_s
Open standard open cloud engine for digital business process
효율적 모바일 서비스를 위한 AWS 빌딩블럭 - API Gateway 및 Device Farm을 중심으로 (윤석찬, AWS 테크에반젤리스트)
designing, implementing and delivering microservices with event storming, spr...
데브옵스(DevOps) 문화 모범 사례와 구현 도구 살펴보기 – 박선준 :: AWS Builders Online Series
AWS로 연결하는 사물인터넷의 세계 :: 이경수 :: AWS Summit Seoul 2016
[IGC 2017] AWS 김필중 솔루션 아키텍트 - AWS 를 활용한 모바일 백엔드 개발
AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나
10월 웨비나 - AWS에서 MS Windows 운영, 관리 및 개발 손쉽게 하기 (박철수 솔루션즈 아키텍트)

More from Sang Don Kim (20)

PDF
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
PDF
[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)
PDF
[Td 2015]두근두근 asp.net 5(한상훈)
PDF
[Td 2015]windows 10 엔터프라이즈 시나리오 part I 배포 및 이미징(박성기)
PDF
[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)
PDF
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
PDF
[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)
PDF
[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)
PDF
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
PDF
[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)
PDF
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
PDF
[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)
PDF
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
PDF
[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)
PDF
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
PDF
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
PDF
[Td 2015]python을 azure에서 사용하는법(배권한)
PDF
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)
PDF
[Td 2015]general session 세상을 품은 플랫폼과 그 가능성에 대하여(기술에반젤리스트)
PDF
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)
[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]windows 10 엔터프라이즈 시나리오 part I 배포 및 이미징(박성기)
[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)
[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)
[Td 2015]각이 다른 mvc6! 그 여섯 번째 이야기!(최지훈)
[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)
[Td 2015]python을 azure에서 사용하는법(배권한)
[Td 2015]microsoft 개발자들을 위한 달콤한 hadoop, hd insight(최종욱)
[Td 2015]general session 세상을 품은 플랫폼과 그 가능성에 대하여(기술에반젤리스트)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)

[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)

  • 1. 이종인 / DesignMe 구름 위로 올려 어디서나 연결되는 서비스
  • 2. 소개 이종인 - 삶을 디자인 하는 서비스 DesignMe 개발자 - Windows Development MVP
  • 4. 여러분들의 서비스 사람들을 연결 시키고 삶을 더 편리하게 만들기 위한 서비스
  • 5. 빠르게 변화하는 세상 빠르게 변화하는 서비스를 많은 사람들에게 빠르게
  • 8. Azure App Service 애저 앱 서비스
  • 9. Azure App Service Web Apps Mobile Apps
  • 11. WEB APPS • .NET, Node.js, Java, PHP, and Python • Webjobs – 웹앱에서 VM에서 프로그램이나 스크립트를 실행 • VS publish, remote debug 통합 • GitHub, BitBucket, VSO를 이용한 협업 • 자동크기조정 – 신속하게 규모 축소 및 확장 • 스태이징 된 배포를 통한 릴리즈 전 코드 검증 웹, 모바일 및 통합 시나리오에 적합 Web Apps
  • 12. • 네이티브 및 크로스 플랫폼 앱 빌드 • Single Sign On(SSO) – Facebook, Twitter, Microsoft, Google 계정 연동 • iOS, Android, Windows에 몇 초 내 수백만명에 푸시 알림 전송 • 오프라인 동기화 – SQL, Table Storage, Mongo DB 등과 오프라인 동기화 • 자동크기조정 – 신속하게 규모 축소 및 확장 전세계에서 사용가능한 모바일 앱 개발 플랫폼 MOBILE APPS Mobile Apps
  • 13. • 코드 작성 없이 디자인 도구로 빠르게 작성 • 기존에 만들어진 수많은 템플릿 이용 • 워크플로를 쉽게 디자인 • 커스텀 API 사용 • Biztalk API를 보다 쉽게 이용 비즈니스 프로세스 자동화 LOGIC APPS Logic Apps
  • 14. • SaaS 플랫폼에 쉽게 연결 • API 생태계 • 커스텀 API를 발행할 수 있고 다시 사용 가능 • 논리 앱과 통합 • C#, Java 및 Javascript 등의 다양한 API를 이용한 개발 API 생성 및 사용을 더욱 편하게 API APPS API Apps
  • 15. • Box • Chatter • Delay • Dropbox • Azure HD Insight • Marketo • Azure Media Services • OneDrive • SharePoint • SQL Server • Office 365 • Oracle • QuickBooks • SalesForce • Sugar CRM • SAP • Azure Service Bus • Azure Storage • Timer / Recurrence • Twilio • Twitter • IBM DB2 • Informix • Websphere MQ • Azure Web Jobs • Yammer • Dynamics CRM • Dynamics AX • Hybrid Connectivity • HTTP, HTTPS • File • Flat File • FTP, SFTP • POP3/IMAP • SMTP • SOAP + WCF • Batching / Debatching • Validate • Extract (XPath) • Transform (+Mapper) • Convert (XML-JSON) • Convert (XML-FF) • X12 • EDIFACT • AS2 • TPMOM • Rules Engine Connectors Protocols BizTalk Services Built-in API Connectors
  • 16. Demo: Azure App Service & Azure Portal
  • 17. 구름 위로 올려 모든 곳에 연결되는 서비스
  • 18. 만들고자 하는 서비스 삶을 디자인 하고 하고 싶은 것들을 공유하는 서비스를 만들고 싶어
  • 19. 뭐가 필요한데? 계정, Cloud Server Cross Platform • 사용자 정보 체계적 관리 및 분석 처리 • 사용자 기기간 데이터 동기화 • 이용자간 채팅, 자료 공유 등 소셜 서비스 • 외부 계정과 연동 서비스 • Etc • 윈도우 10, iOS, 안드로이드 등 모든 모바일 플랫폼에 대응 할 수 있는 체계 • 여러 디바이스들에 쉽게 연결 될 수 있는 체계 좋은 서비스 • 좋은 기술들로 퍼져나갈 좋은 서비스 • 서비스의 변화에 대응할 수 있 는 체계 • 기술이 좋아도 서비스가 안 좋 으면 무의미
  • 20. 어떻게 하려고? 하고 싶은건 많은데 자금도 없고 개발자도 많이 필요하고 ㅜㅜ
  • 21. 만들었다 쳐도 문제 기능 요구 Ex)#137 일정의 시간대 지원 기능 업데이트 Javascript 기능 추가 C# 기능 추가 Object C 기능 추가 Java 기능 추가 버그 피드백 버그 피드백 모든 플랫폼에 잘 돌아가는지 다시 확인 일괄 혹은 순차적 업데이트
  • 24. Demo: C# & Visual Studio Everywhere
  • 25. Windows 10 Android (Xamarin) Core + Service Core iOS (Xamarin) Core [PCL] Service Core [Web App] Rest API로 한 단계로 연결되는 Service Core와 모든 곳에 연결되어있는 Core
  • 26. Core + Service Core Core [PCL] Service Core [Web App] Storage Document db Azure Storage SQL Notification Notification Hub Data Analysis Application Insight Machine Learning Rest API HTTP Business Logic Account 서비스 계정 관리 동기화 Web Job <CODE /> 유저 입력 처리 Service Core와의 연결
  • 28. 대부분의 코드와 기능이 공유 Service Core [Azrue Web App] Core [PCL] Service Core 연결 기능 View Model (MVVM) View View View 플랫폼 특정 기능 플랫폼 특정 기능 플랫폼 특정 기능
  • 29. 빠르게 변화가 반영되는 서비스 Design Me Core Service Core는 게시시 바로 Client는 최신 개발 버전에 바로 적용
  • 30. 이러한 프로세스는 기능 요구 Ex)#137 일정의 시간대 지원 기능 업데이트 Javascript 기능 추가 C# 기능 추가 Object C 기능 추가 Java 기능 추가 버그 피드백 버그 피드백 모든 플랫폼에 잘 돌아가는지 다시 확인 일괄 혹은 순차적 업데이트
  • 31. 이렇게 기능 요구 Ex)#137 일정의 시간대 지원 기능 업데이트 기능 추가 버그 피드백 일괄 업데이트
  • 33. Web App와 Client 사이 User EventEditView EventViewModel (UI Logic) DB HTTP Event Controller Logic for Event Local DB Client Web App Event 데이터 처리 예시
  • 34. 데이터 모델 추가될 때 Entity Entity Entity Contract Event EventEditView EventViewModel Event Controller Local DB 처리 Azure DB 처리 …. Event 서버 데이터 처리 데이터 모델 하나 추가 될 때 일일히 해야 되는 것들
  • 35. Generics class Test<T> where T : class { T _value; public Test(T t) { this._value = t; } public void Write() { Console.WriteLine(this._value); } } <T> - 코드 재사용, 형식 안정성 및 성능 최대화 - 고유한 제네릭 인터페이스 클래스, 메서드 및 Delegate 생성 가능 - 특정 데이터 형식의 메서드에만 액세스 하도록 제한 가능 class Program { static void Main() { Test<int> test1 = new Test<int>(5); test1.Write(); Test<string> test2 = new Test<string>("cat"); test2.Write(); } }
  • 36. PCL에서 사용 가능한 Entity Entity Framework 7 (Azure SQL) Table Entity (Azure Table Storage ≥4.4.0.0) Json (Azure Document db) Windows 10 Android (Xamarin) iOS (Xamarin) Core [PCL] Service Core [Web App]
  • 37. ViewModel<T> Generic을 이용한 데이터 처리 컨셉 Insert<T> Entity T (ICustomEntity) id UpdatedTime CreatedTime … Update<T> Delete<T> Controller<T> Reflection으로 T변환 필요 TContoller(Http.Post) TContoller(Http.Put) TContoller(Http.Delete) Storage<T> Sync 기능 통합 가능 Insert<T> Update<T> Delete<T> Get<T> Sync<T> 다른 싱크 기능을 가진 컨트롤러에서 사용
  • 38. Controller 처리 예시 BaramTableEntity parseEntity = JsonConvert.DeserializeObject<BaramTableEntity>(apiRequest.RequestJson); Type type = Type.GetType($"DesignMe.{parseEntity.TableName}, Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"); Type genericType = typeof(TableStorageManager<>).MakeGenericType(type); dynamic storagemanager = Activator.CreateInstance(genericType); dynamic entity = storagemanager.Parse(apiRequest.RequestJson); Type apiResultType = typeof(TableApiResult<>).MakeGenericType(type); dynamic apiResult = Activator.CreateInstance(apiResultType); entity = await storagemanager.Insert(entity); public class TableController : ApiController { public async Task<IHttpActionResult> Post(TableApiRequest apiRequest) … Request에 T 정보를 넣고 컨트롤러에서 리플렉션으로 복원
  • 39. User View 더 이상 작업이 필요 없어지는 구간 ViewModel<T> (UI Logic) DB<T> HTTP Controller <T> Storage Manager<T> Local DB <T>.db Client Web App
  • 40. Entity Framework 7 출처 : entityframeworktutorial.net Azure SQL 뿐만 아니라 Sqlite 에도 사용 가능해 서버와 클라이언트 모두 사용 가능
  • 44. Notification Hubs NOTIFICATION HUBS • .NET, Node.js, Java, PHP, and Python • Windows, iOS, Android, Android(China) 등 대부 분의 모바일 플랫폼에 알림 전송 가능 • 등록 시 Tag를 입력해 특정 디바이스나 조건에 맞는 곳에 알림을 보냄 • 수 초 내에 수백만개의 알림 전송 가능 • 뉴스, SNS 알림 등의 Toast 알림과 기기 동기화 를 위한 신호를 주는 Raw 알림 등 여러 타입의 알림 전송 가능 수 초 내에 수백만개의 알림 전송
  • 45. Notification Hubs Push Notifications wns apns gcm // windows var toast = @"<toast><visual> <binding template=""ToastText01""> <text id=""1"">Hello</text></binding></visual></toast>"; await Notifications.Instance.Hub.SendWindowsNativeNotificationAsync(toast,userTag) ; // apns var alert = "{"aps":{"alert":"Hello"}}"; await Notifications.Instance.Hub.SendAppleNativeNotificationAsync(alert,userTag); // gcm var notif = "{ "data" : {"msg":"Hello"}}"; await Notifications.Instance.Hub.SendGcmNativeNotificationAsync(notif,userTag); 태그 정보 태그 정보
  • 46. Tag : 원하는 기기에 알림 보내기 switch (notificationType) { case "wns": registration = new WindowsRegistrationDescription(notificationUri); break; case "apns": registration = new AppleRegistrationDescription(notificationUri); break; case "gcm": registration = new GcmRegistrationDescription(notificationUri); break; } registration.RegistrationId = id; //Notifation RegistrationId registration.Tags = new HashSet<string>(); registration.Tags.Add("id:" + accountId); registration.Tags.Add("device:" + deviceId); //Tag 정보 await Hub.CreateOrUpdateRegistrationAsync(registration); Notification 등록 시 Id, device id 등을 등록하여 원하는 그룹 혹은 장치에만 따로 알림 전송 가능
  • 47. 동기화 과정 Raw Push Notification 전송 다른 기기들도 동기화 Azure Web App Notification Hub 데이터 처리
  • 50. Application Insight APPLICATION INSIGHT • Google Analystics와 비슷한 기능 • Web App과 Client App 모두 분석 가능 • 사용자의 활동 패턴을 쉽게 분석 • 에러 정보 등 유지 관리에 필요한 정보들도 분 석 • Visual studio에서 간단하게 추가 서비스를 꿰뚫는 인사이트
  • 52. 감사합니다. • MSDN Forum http://aka.ms/msdnforum • TechNet Forum http://aka.ms/technetforum
  • 53. http://aka.ms/td2015_again TechDays Korea 2015에서 놓치신 세션은 Microsoft 기술 동영상 커뮤니티 Channel 9에서 추후에 다시 보실 수 있습니다.