SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
개발하기 바쁜데 푸시와
메시지큐는 있는거 쓸래요
2015-10-27
Youngjae KIM, Azure MVP
저는요
• 김영재
• Azure MVP (2014~)
• ㈜바풀, 바로풀기 서비스 개발총괄
• (전) 카이스트 디지털미디어연구소 연구원
• (전) 영국 Ubisense UK 기술컨설턴트
• (전) 일본 국립전자통신연구소 스마트홈 미들웨어 연구원
• 바로풀기 소개
• 소셜서비스 스타트업 (23억원 투자유치, 12명 직원)
• 중고등학생 학습 서비스 MAU 1위
먹고 자고 코딩하는거 좋아하는 개발자
이 세션의 대상은
• 이득
• 다른 솔루션 유저
• 처음 관련된 시나리오의 제품을 만드시는 분
• 어쩌다 들어오신 분
• 손해
• 이미 오늘 소개할 Azure 서비스를 사용 중인분
• 어떤 기술 앞에서도 시큰둥한 분
• 절대로 클라우드를 도입할 가능성도 생각도 없으신 분
???
들어가는 이야기
프로그래머란?
• 컴퓨터가 문제를 해결하도록 시스템을 만드는 사람
• 저 수준의 데이터를 고 수준으로 바꾸는 사람
흔한 인터넷 서비스 시나리오
유저가 앱으로
무엇인가를 하면
백그라운드 작업 후에 잠시 후 푸시가 오고
프로그래머가 할 일은
• 무엇인가를 정의
• 작업에서 의미를 추출
• 푸시로 다음 데이터 흐름을 유도
유저가 앱으로
무엇인가를 하면
백그라운드 작업 후에 잠시 후 푸시가 오고
판단
• 돈 내고 쓰는 솔루션 vs. 서버를 직접 관리하는 자신감
• 더 빨리 런칭할 수 있는가
• 더 안정적으로 관리할 수 있는가
• 더 확장에 대비할 수 있는가
• 클라우드 사고방식. 동의 못하면 의미 없음
• 퍼포먼스는 확장성과 돈으로 커버 가능
• 그 대신 시간과 운영 편의를 얻는다
Azure 3년 써보니…
• 2년간 행복함
• 좋은 이유는 좋을 수 밖에 없도록 만들었기 때문
오늘 다룰 내용
• Azure가 제공하는 Message Queue
• Push Notification Hub 사용법
• 이들을 이용한 WebJob 데모
흔한 인터넷 서비스 시나리오
유저가 앱으로
무엇인가를 하면
백그라운드 작업 후에 잠시 후 푸시가 오고
흔한 구조
REST API
Background
Worker
Push Notification
Server
Message Queue
(MQ)
Azure 대응 #1
Web Role Worker Role Notification Hub
Service Bus
Azure 대응 #2
WebSites WebJobs Notification Hub
Storage Queue
소개할 Azure 구성요소
• Azure Queue
• Azure Service Bus
• Azure WebJobs
• Azure Push Notification Hub
1. Message Queue
MQ의 조건
• 중요도순
• 안정성
• 퍼포먼스 (초당 처리량)
• 확장성
• API 편의성
• 보안: 주로 내부 통신용으로 사용
Comparison
Azure Rabbit MQ
안정성 ++ ++
퍼포먼스 ++ +++
확장성 +++ +
API +++ ++
AWS SQS와의 비교?
- 두 클라우드는 무엇을 선택하든 성능, 가격, 안정성이 비슷합니다. 가격은 Azure가 좀 더 저렴 (후발주자니까?!)
가격 비교
- 100 msg/sec 이상은 RabbitMQ + Large VM * 3개 운영이 더 저렴 ($535 수준) [참고링크]
- 시간비용까지 생각하면 200 msg/sec 정도를 기준으로 삼아도 될 듯
“큐(queue)로 이벤트 처리하고 싶어요“
Azure Queue로 쉽고 빠르게 만들기 Service Bus로 발전적으로 만들기
동작원리
- Storage의 응용판
장점
- 대용량 대응
- Azure WebApp의 WebJob의 쉬운 바인딩
단점
- 큐 기능에만 충실할 뿐
동작원리
- Service Bus에 기록하면 Subscribe로 작동
장점
- 더욱 풍부한 메시징 API, AMQP
- 다양한 유형의 브로커 처리 (topic, relay, …)
단점
- 저렴하다고 할 순 없음.
두 기술의 차이 상세 설명
• 스펙 비교: https://azure.microsoft.com/ko-kr/documentation/articles/service-bus-azure-and-service-bus-queues-compared-contrasted/
• 코드 비교: http://msdn.microsoft.com/en-us/magazine/jj159884.aspx
1.1 Azure Queue (Storage)
특징
• Blob기반 Database인 Azure Storage를 이용한 Queue
• 그래서 가지는 특징은
• 대용량 큐 저장 가능
• 빠르게 넣고 뺄 수 있음 (latency < 10ms)
• 저렴한 가격
• 메시지 단위 Lock
• 그래서 발생한 단점은
• 순서 처리를 보장 안함
• 트랜잭션 안됨
• 폴링으로만 처리
• AMQP 같은 고상한건 지원 안함
• 임의로 만든 점
• 최대 7일 저장 (TTL)
Azure Queue 사용 예시
어딘가에서 입력
Azure Storage
Queue
Blob
Table
Web App
WebJob
Queue는 입력받으면 WebJob에서 자동으로 실행, 결과는 Azure Table 등에 담을 수 있음.
트리거
솔직히…
• 문서화가 너무 잘되어있어서 딱히 설명할 것이 없네요!
• API 사용법: https://azure.Microsoft.com/en-
us/documentation/articles/storage-dotnet-how-to-use-queues/
• 바로 데모 프로그램을 실행해봅시다
Azure Queue 활용 예시
• Azure WebJob과 연동
• 콘솔프로그램을 만든 후 github에 올리면 자동
으로 Pull  Compile  Deploy  동작.
• 브라우저에서 테스트 및 로그 확인 가능.
• 자동 스케일링 지원.
• 트리거, 계속, 스케줄링 등 실행유형 지정.
• 참고사항
• 간단한 작업에 좋음
• 대표적인 예시: 이미지 압축
• 속도가 빠르진 않음
• 관련 문서
• WebJob 시작하기
• WebJob 관련 자료 모음
곁다리 지식: Azure WebJobs의 주요 특징
• 병렬적 처리: 16개(기본값)의 큐를 벌크로 받아와서 처리
• 멀티스레드로 동작: 병렬 같은 병렬 아닌 동작
• 그러므로 주의사항은!
• 같은 메시지가 두 번 처리될 수도 있음. 즉, 같은 메시지에 대해 다른 결과가 나오도록 하면 안됨
• Azure WebApp의 인스턴스 수에 제약이 됨
• 간단해서 쓰는거지 좋아서 쓰는거 아니다!
• 이미지 리사이즈 등에 사용
난데없이 퀴즈퀴즈!
• 다음 중 Azure Queue Storage가 제공하는 기능이 아닌 것은?
1. 80GB 이상의 메시지 저장
2. 5일 이상의 TTL
3. AMQP v1.0
4. WebJob 바인딩
1.2 Service Bus
Service Bus 개요
• Push Notification Hub도 Service Bus 중 Topic의 응용.
• 구성
• Queue
• Topic
• Relay
• Notification Hub
Service Bus 간단 개념잡기
• Queue
• 일명 ‘선입선출(FIFO)’ 방식의 데이터 처리를 위한 대기열.
• 주로 이벤트 처리에 활용.
• OS의 핵심 요소 중 하나.
• Topic
• Queue의 확장판으로 분기해주는 switch가 더해짐.
• 일명 Publisher-Subscriber 방식이라고도 함.
• 분산시스템의 핵심 요소 중 하나.
• Relay
• WCF를 활용한 서비스 제공 모델.
• WCF 기반으로 서비스가 구축된 엔터프라이즈 환경에 적합.
• 참고: WCF는 REST 기반 웹API 기능 외에, 동기화, 양방향성, 세션처리, 보안 등에 여지가
많음.
Service Bus Queue
단순한 구조인만큼 코드도 간단함.
http://azure.microsoft.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-queues/
Service Bus Topic
중요 개념: 가상의 큐가 각 토픽마다 할당된 것과 마찬가지.
http://azure.microsoft.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-topics-subscriptions/?fb=ko-kr
코드 들여다보기
• 바로풀기가 사용 중인 Service Bus Queue
2. Azure Notification Hub
그래서 많이 보이는 글
Azure Push Notification Hub
• Azure ServiceBus에 Token DB와 push endpoint를 추가한 형태
• 퍼포먼스는 ServiceBus에 종속적
• 입력은 초당 2000건
• 하지만 출력은 모른다!?
• 일종의 푸시 미들웨어
• 다양한 토큰규격, 핸드쉐이크 형태를 일원화하고 통합ID로 관리
• 한 유저의 멀티디바이스에 대응하기 편리
사용 형태
Device 1
Register
Gateway
Push
Notification
Hub
Request
Push
Notification
Hub
Device 1
Device 2
Device 3
1. 기기 등록
2. 전송
reg_id
handle
API Overview
• 등록 형태: 단말 별로 템플릿을 등록하여 처리
API Overview
• 전송은 단말 무관하게 코드 한 줄.
Notification Hub 작동 원리 (기본)
어딘가에서 입력
사용자 단말로 전송Google GCM
Apple APNS
Windows WNS
…
푸시 플랫폼 별
토큰을 이용하여 전송
Azure Topic 처리기
전송 결과 취득
불량 전송 건에 대한 피드백 처리
Notification Hub 작동 원리 (상세)
어딘가에서 입력
사용자 단말로 전송Google GCM
Apple APNS
Windows WNS
…
푸시 플랫폼 별
토큰을 이용하여 전송
Azure Topic 처리기
전송 결과 취득
불량 전송 건에 대한 피드백 처리
토픽1+채널+내용
토픽2+채널+내용토픽1
+내용
채널 + 토픽1 등록
Topic & Channel
Key-Values
1
2
4
5
6
3
푸시 태그를 잘 생각해서 써야 한다
• 태크는 Key이며, Key-Value 로 이루어진 값을 대상에게 전송합니다.
• Service Bus 토픽이 곧 Push Notification 태그
• 기본 활용: 한 ID의 단말에 보내고 싶다
• 태그명: userId
• 예시: userId=Youngjae
• 참고: userId=Youngjae로 등록된 모든 단말에 전송 (내 모든 단말)
• Microsoft를 “좋아요” 한 사람들에게 보내고 싶다.
• 태그명: like
• 예시: like=Microsoft
• Microsoft를 “좋아요” 한 한국어 유저들에게 보내고 싶다.
• 태그명1: like, 태그명2: locale
• 예시: like=Microsoft && locale=“ko-KR”
실제로는?
1. 태그에만 맡기기에는 서비스가 보다 세밀하게 타겟팅 하길 원함
2. 서비스가 워낙 변화무쌍하게 바뀌어서 푸시 DB를 갱신하는 것은 비효율적
3. 태그DB와 로직DB를 모두 관리해야 함
잘 안쓰임! 그냥 ID/전체 보내는 방식으로 커버
최소한의 카테고리를 태깅: locale, userId, gender
템플릿
• 템플릿은 클라이언트에서 $(name)과 같이 변수껍데기를 등록하면 보낼 때
name=“youngjae” 식으로 내용을 채워서 받을 수 있음.
• 사용 시나리오
• 한국어 유저의 폰 등록 Template = “$(Korean)”
• 서버 전송 Korean=“안녕”, English=“hello”
• 클라이언트는 푸시를 받을 때 “안녕“만 취득함.
• 토픽과 적절히 섞어 쓰면 맞춤 푸시를 보낼 수 있음.
• 태그는 수신 대상을 규정
• 템플릿은 해당 범위에 세부적인 맞춤 정보를 제공
• 적용시 중요: 서비스에서 기획이 명확하게 잡혀있어야 효과가 좋음.
• 안그러면 땜빵 템플릿이 넘칠 수도 있음.
실용적인 팁
• 항상 태그에 “userId:아이디“를 기본으로 적용하면 좋음.
• 해당 ID에 맞추어 모든 기기로 전송됨.
• 어차피 보낼 때 태그가 없으면 모두에게 보냄 (broadcast)
 장점이지만 대재앙이 될 수 있으니 서버에서 깐깐하게 처리할 것.
• 동일한 이름의 template은 덮어쓰기됨.
• 별도의 업데이트 처리 불필요.
• 푸시는 SMS가 아니므로 시간차가 있을 수 있음.
• Free 버전일 경우 간헐적으로 몰아서 처리됨 (경험상 약 1~2분)
또 난데없이 퀴즈퀴즈!
• 다음 중 Azure Notification Hub가 제공하는 기능이 아닌 것은?
1. REST API
2. MMS 전송
3. 예약된 푸시 전송
4. Amazon 디바이스 푸시
실제 적용 사례
바로풀기에 처음 사용했던 Azure 구성 (Apr. 2014)
Virtual Machine
WebApp
Mobile Service
Storage
Traffic Manager
Legend
MS-SQL
DB
API EndPoint
(Performance)
Spring F/W
+CentOS
(Large VM)
Spring F/W
+CentOS
(Small VM)
Storage Table
Storage
Queue
Storage
Blob
Web Frontend
WorkerRole
Push
ElasticSearch
EhCache
Backup
DB Azure SQL
User
MongoDB
General
Backup
바로풀기에 현재 사용하는 Azure 구성 (Oct. 2015)
Virtual Machine
WebApp
Push Notification
Storage
Traffic Manager
Legend
MS-SQL
DB
API EndPoint
(Performance)
REST
Storage Table
Service
Bus
Storage
Blob
Worker Role Push
Orient DB
Backup
DB
Azure SQL
User
General
Backup
Azure SQL
dJango (Web)
WebJobs
솔직히 써보자면…
• Service Bus는 안정성은 기대보다 높습니다
• Azure에서도 가장 안정성에 공들이는 부분.
• 2년간 Zero downtime
• https://azure.Microsoft.com/en-us/support/legal/sla/service-bus/v1_0/
• 그래도 이중화는 하세요
• Storage 좋습니다
• Azure 서비스 중 제일 좋아합니다
• WebJob은 작년에 이어 아직도 추천하지 않습니다
• WebRole이 Deploy가 느리다는 단점 외엔 더 믿을만합니다
• NewRelic이 지원 안됨!
• 작년보다 PaaS를 더 신뢰합니다
• WebSites 추천합니다. 특히 닷넷서버와 결합시 제로스트레스! 궁극의 PaaS!
• 사용경험에 직접적인 Frontend는 Traffic Manager를 이용한 이중화 필수입니다
Azure 꿀팁 몇가지
• “Service Bus를 쉽게 관리하는 툴 없나요?”
• Service Bus Explorer를 써보세요. 설명서, 다운로드
• 다운로드 받은 후 2.1.zip 파일을 압축 풀고 ServiceBusExplorer.exe를 실행하세요.
• “Azure Storage를 탐색기처럼 관리하는 툴 없나요?”
• Azure Storage Explorer를 써보세요.
• 더 전문적인 것 (유료): Azure Management Studio
Notification Hub 소스
• 꼭 한 단계씩 차근차근 해주세요.
• http://azure.microsoft.com/en-us/documentation/articles/notification-
hubs-android-get-started/?fb=ko-kr
• 메시지 보내는 서버 소스
• http://blogs.msdn.com/b/azuremobile/archive/2014/04/08/push-
notifications-using-notification-hub-and-net-backend.aspx
• 좋은 예시
• https://github.com/sabbour/breakingnews
• 안드로이드 프로그래머는 아래 링크 참조.
• http://www.slideshare.net/agrocholski/google-devfest-mn-notification-hubs
감사합니다. youngjae@bapul.net
http://aka.ms/td2015_again
TechDays Korea 2015에서 놓치신 세션은
Microsoft 기술 동영상 커뮤니티 Channel 9에서
추후에 다시 보실 수 있습니다.

Weitere ähnliche Inhalte

Was ist angesagt?

[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint PlatformMuleSoft
 
Airflow based Video Encoding Platform
Airflow based Video Encoding PlatformAirflow based Video Encoding Platform
Airflow based Video Encoding PlatformHotstar
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)Seongyun Byeon
 
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1VarnishCache入門Rev2.1
VarnishCache入門Rev2.1Iwana Chan
 
테스트자동화 성공전략
테스트자동화 성공전략테스트자동화 성공전략
테스트자동화 성공전략SangIn Choung
 
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018Amazon Web Services Korea
 
Facebook prophet
Facebook prophetFacebook prophet
Facebook prophetMinho Lee
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Hyoungjun Kim
 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
nginx 입문 공부자료
nginx 입문 공부자료nginx 입문 공부자료
nginx 입문 공부자료choi sungwook
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교Woo Yeong Choi
 
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with KubernetesKubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with KubernetesSeungYong Oh
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스NAVER D2
 

Was ist angesagt? (20)

[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint Platform
 
Airflow based Video Encoding Platform
Airflow based Video Encoding PlatformAirflow based Video Encoding Platform
Airflow based Video Encoding Platform
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
 
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1VarnishCache入門Rev2.1
VarnishCache入門Rev2.1
 
테스트자동화 성공전략
테스트자동화 성공전략테스트자동화 성공전략
테스트자동화 성공전략
 
Testes Unitários
Testes UnitáriosTestes Unitários
Testes Unitários
 
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
MSA를 넘어 Function의 로의 진화::주경호 수석::AWS Summit Seoul 2018
 
Facebook prophet
Facebook prophetFacebook prophet
Facebook prophet
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례Presto, Zeppelin을 이용한 초간단 BI 구축 사례
Presto, Zeppelin을 이용한 초간단 BI 구축 사례
 
Extensible Data Modeling
Extensible Data ModelingExtensible Data Modeling
Extensible Data Modeling
 
Models for hierarchical data
Models for hierarchical dataModels for hierarchical data
Models for hierarchical data
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
nginx 입문 공부자료
nginx 입문 공부자료nginx 입문 공부자료
nginx 입문 공부자료
 
Spock Framework
Spock FrameworkSpock Framework
Spock Framework
 
Postman
PostmanPostman
Postman
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
 
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with KubernetesKubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
Kubernetes Forum Seoul 2019: Re-architecting Data Platform with Kubernetes
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 

Andere mochten auch

Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT광운 이
 
푸시개발 정리 - Push Notification Summary
푸시개발 정리 - Push Notification Summary푸시개발 정리 - Push Notification Summary
푸시개발 정리 - Push Notification SummaryBrave Cheon
 
Mqtt 소개
Mqtt 소개Mqtt 소개
Mqtt 소개Junho Lee
 
안드로이드 플랫폼기반의 푸시서버 아키텍처
안드로이드 플랫폼기반의 푸시서버 아키텍처안드로이드 플랫폼기반의 푸시서버 아키텍처
안드로이드 플랫폼기반의 푸시서버 아키텍처JavaCommunity.Org
 
메시지 발송 브로커를 만들어보자
메시지 발송 브로커를 만들어보자메시지 발송 브로커를 만들어보자
메시지 발송 브로커를 만들어보자Bongki Seo
 
PHP에서 GCM 푸시 빠르게 보내기 (feat. Async / Generator)
PHP에서 GCM 푸시 빠르게 보내기 (feat. Async / Generator)PHP에서 GCM 푸시 빠르게 보내기 (feat. Async / Generator)
PHP에서 GCM 푸시 빠르게 보내기 (feat. Async / Generator)Changwan Jun
 
푸시윙 - 앱이 없는 웹사이트를 위한 무료 푸시 알림 서비스
푸시윙 - 앱이 없는 웹사이트를 위한 무료 푸시 알림 서비스푸시윙 - 앱이 없는 웹사이트를 위한 무료 푸시 알림 서비스
푸시윙 - 앱이 없는 웹사이트를 위한 무료 푸시 알림 서비스Hyun-Seok Lee
 
Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsSungMin OH
 
모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개Hyogi Jung
 
Introducing MQTT
Introducing MQTTIntroducing MQTT
Introducing MQTTAndy Piper
 
Google DevFest MN - Windows Azure Notification Hubs
Google DevFest MN - Windows Azure Notification HubsGoogle DevFest MN - Windows Azure Notification Hubs
Google DevFest MN - Windows Azure Notification HubsAdam Grocholski
 
자바기반 스케줄링 프로그래밍
자바기반 스케줄링 프로그래밍자바기반 스케줄링 프로그래밍
자바기반 스케줄링 프로그래밍JungGeun Lee
 
Mobile Push Notification Solution
Mobile Push Notification SolutionMobile Push Notification Solution
Mobile Push Notification Solution남익 이
 
Node.js Cloud Service Publish
Node.js Cloud Service PublishNode.js Cloud Service Publish
Node.js Cloud Service PublishHyun Jin Moon
 
Best work so far (new)
Best work so far (new)Best work so far (new)
Best work so far (new)shannonaharris
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Hyoungjun Kim
 
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발 모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발 Jay JH Park
 
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요Youngjae Kim
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQMessaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQPOSSCON
 

Andere mochten auch (20)

Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT
 
푸시개발 정리 - Push Notification Summary
푸시개발 정리 - Push Notification Summary푸시개발 정리 - Push Notification Summary
푸시개발 정리 - Push Notification Summary
 
Mqtt 소개
Mqtt 소개Mqtt 소개
Mqtt 소개
 
안드로이드 플랫폼기반의 푸시서버 아키텍처
안드로이드 플랫폼기반의 푸시서버 아키텍처안드로이드 플랫폼기반의 푸시서버 아키텍처
안드로이드 플랫폼기반의 푸시서버 아키텍처
 
메시지 발송 브로커를 만들어보자
메시지 발송 브로커를 만들어보자메시지 발송 브로커를 만들어보자
메시지 발송 브로커를 만들어보자
 
PHP에서 GCM 푸시 빠르게 보내기 (feat. Async / Generator)
PHP에서 GCM 푸시 빠르게 보내기 (feat. Async / Generator)PHP에서 GCM 푸시 빠르게 보내기 (feat. Async / Generator)
PHP에서 GCM 푸시 빠르게 보내기 (feat. Async / Generator)
 
푸시윙 - 앱이 없는 웹사이트를 위한 무료 푸시 알림 서비스
푸시윙 - 앱이 없는 웹사이트를 위한 무료 푸시 알림 서비스푸시윙 - 앱이 없는 웹사이트를 위한 무료 푸시 알림 서비스
푸시윙 - 앱이 없는 웹사이트를 위한 무료 푸시 알림 서비스
 
Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloops
 
모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개모바일 메신저 아키텍쳐 소개
모바일 메신저 아키텍쳐 소개
 
Introducing MQTT
Introducing MQTTIntroducing MQTT
Introducing MQTT
 
Google DevFest MN - Windows Azure Notification Hubs
Google DevFest MN - Windows Azure Notification HubsGoogle DevFest MN - Windows Azure Notification Hubs
Google DevFest MN - Windows Azure Notification Hubs
 
자바기반 스케줄링 프로그래밍
자바기반 스케줄링 프로그래밍자바기반 스케줄링 프로그래밍
자바기반 스케줄링 프로그래밍
 
Mobile Push Notification Solution
Mobile Push Notification SolutionMobile Push Notification Solution
Mobile Push Notification Solution
 
Node.js Cloud Service Publish
Node.js Cloud Service PublishNode.js Cloud Service Publish
Node.js Cloud Service Publish
 
Best work so far (new)
Best work so far (new)Best work so far (new)
Best work so far (new)
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218
 
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발 모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
모바일 네트워크 친화적인 글로벌 메시징 서비스 - ChatON 개발
 
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
[테크데이즈2015] 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요
 
Netty
NettyNetty
Netty
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQMessaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
 

Ähnlich wie [Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)

Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
한국 중소기업 개발자의 AWS 사용방법
한국 중소기업 개발자의 AWS 사용방법한국 중소기업 개발자의 AWS 사용방법
한국 중소기업 개발자의 AWS 사용방법Hyunmin Kim
 
Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리Youngjae Kim
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해Terry Cho
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
AWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
AWS Cloud Design Pattenr (Korean) - CDP Seminar in KoreaAWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
AWS Cloud Design Pattenr (Korean) - CDP Seminar in KoreaSORACOM, INC
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
2017 Ad-Tech on AWS 세미나ㅣ추천서비스 고군부투기 on AWS
2017 Ad-Tech on AWS 세미나ㅣ추천서비스 고군부투기 on AWS2017 Ad-Tech on AWS 세미나ㅣ추천서비스 고군부투기 on AWS
2017 Ad-Tech on AWS 세미나ㅣ추천서비스 고군부투기 on AWSAmazon Web Services Korea
 
모두의 클라우드 딥러닝
모두의 클라우드 딥러닝모두의 클라우드 딥러닝
모두의 클라우드 딥러닝NAVER Engineering
 
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015Amazon Web Services Korea
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기Miyu Park
 
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트Amazon Web Services Korea
 
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Amazon Web Services Korea
 
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017Amazon Web Services Korea
 

Ähnlich wie [Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재) (20)

Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
한국 중소기업 개발자의 AWS 사용방법
한국 중소기업 개발자의 AWS 사용방법한국 중소기업 개발자의 AWS 사용방법
한국 중소기업 개발자의 AWS 사용방법
 
KGC 2013 DevSisters
KGC 2013 DevSistersKGC 2013 DevSisters
KGC 2013 DevSisters
 
Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리Saturday Azure Live 1701 Azure WebApp 개념원리
Saturday Azure Live 1701 Azure WebApp 개념원리
 
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
소프트웨어 개발 트랜드 및 MSA (마이크로 서비스 아키텍쳐)의 이해
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
AWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
AWS Cloud Design Pattenr (Korean) - CDP Seminar in KoreaAWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
AWS Cloud Design Pattenr (Korean) - CDP Seminar in Korea
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
2017 Ad-Tech on AWS 세미나ㅣ추천서비스 고군부투기 on AWS
2017 Ad-Tech on AWS 세미나ㅣ추천서비스 고군부투기 on AWS2017 Ad-Tech on AWS 세미나ㅣ추천서비스 고군부투기 on AWS
2017 Ad-Tech on AWS 세미나ㅣ추천서비스 고군부투기 on AWS
 
모두의 클라우드 딥러닝
모두의 클라우드 딥러닝모두의 클라우드 딥러닝
모두의 클라우드 딥러닝
 
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015
AWS에 대해 궁금했던 10가지 질문들(윤석찬) - AWS 웨비나 시리즈 2015
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
 
Serverless Architecture - 김현민
Serverless Architecture - 김현민Serverless Architecture - 김현민
Serverless Architecture - 김현민
 
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
[AWS Innovate 온라인 컨퍼런스] 수백만 사용자 대상 기계 학습 서비스를 위한 확장 비법 - 윤석찬, AWS 테크 에반젤리스트
 
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
 
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
 

Mehr von Sang Don Kim

[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016Sang Don Kim
 
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)Sang Don Kim
 
[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)Sang Don Kim
 
[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)
[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)
[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)Sang Don Kim
 
[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)Sang Don Kim
 
[Td 2015]windows 10 엔터프라이즈 시나리오 part II 보안 및 관리(권순만)
[Td 2015]windows 10 엔터프라이즈 시나리오 part II   보안 및 관리(권순만)[Td 2015]windows 10 엔터프라이즈 시나리오 part II   보안 및 관리(권순만)
[Td 2015]windows 10 엔터프라이즈 시나리오 part II 보안 및 관리(권순만)Sang Don Kim
 
[Td 2015]windows 10 엔터프라이즈 시나리오 part I 배포 및 이미징(박성기)
[Td 2015]windows 10 엔터프라이즈 시나리오 part I   배포 및 이미징(박성기)[Td 2015]windows 10 엔터프라이즈 시나리오 part I   배포 및 이미징(박성기)
[Td 2015]windows 10 엔터프라이즈 시나리오 part I 배포 및 이미징(박성기)Sang Don Kim
 
[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)
[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)
[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)Sang Don Kim
 
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)Sang Don Kim
 
[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)
[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)
[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)Sang Don Kim
 
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)Sang Don Kim
 
[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)
[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)
[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)Sang Don Kim
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)Sang Don Kim
 
[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)
[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)
[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)Sang Don Kim
 
[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)
[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)
[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)Sang Don Kim
 
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)Sang Don Kim
 
[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)
[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)
[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)Sang Don Kim
 
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)Sang Don Kim
 
[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)
[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)
[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)Sang Don Kim
 
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)Sang Don Kim
 

Mehr von Sang Don Kim (20)

[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
[Td 2015] 국내에서 처음으로 선보이는 microsoft 차세대 서버 운영 체제 windows server 2016
 
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
 
[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)[TD 2015] Microsoft Azure IaaS v2(최정현)
[TD 2015] Microsoft Azure IaaS v2(최정현)
 
[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)
[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)
[TD2015] 이 시대에 소규모 게임 개발팀이 마소와 함께 살아가는 방법(송용성)
 
[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)
 
[Td 2015]windows 10 엔터프라이즈 시나리오 part II 보안 및 관리(권순만)
[Td 2015]windows 10 엔터프라이즈 시나리오 part II   보안 및 관리(권순만)[Td 2015]windows 10 엔터프라이즈 시나리오 part II   보안 및 관리(권순만)
[Td 2015]windows 10 엔터프라이즈 시나리오 part II 보안 및 관리(권순만)
 
[Td 2015]windows 10 엔터프라이즈 시나리오 part I 배포 및 이미징(박성기)
[Td 2015]windows 10 엔터프라이즈 시나리오 part I   배포 및 이미징(박성기)[Td 2015]windows 10 엔터프라이즈 시나리오 part I   배포 및 이미징(박성기)
[Td 2015]windows 10 엔터프라이즈 시나리오 part I 배포 및 이미징(박성기)
 
[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)
[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)
[Td 2015]함께하면 더 좋은 windows 10과 인텔 스카이레이크, 아키텍쳐와 인텔 그래픽스 최적화 살펴보기(하태동)
 
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
 
[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)
[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)
[Td 2015]틱틱대도 써야 하는 windows 10 앱 개발, c# tips &amp; tricks(송기수)
 
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
[Td 2015]치즈케이크 팩토리는 알겠는데, 데이터 팩토리는 뭔가요(한기환)
 
[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)
[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)
[Td 2015]조막만한 화면에서 대박만한 화면까지. 고생 끝 적응(adaptive ui) 시작(권영철)
 
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
[Td 2015]알아두면 핵 이득! vc++로 안드로이드 개발하기(김성엽)
 
[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)
[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)
[Td 2015]박애주의 office 365, 멀티플랫폼과 사랑에 빠지다(최한홍)
 
[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)
[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)
[Td 2015]맨땅에 헤딩하고 터득한 스토어 공략법(돈벌기)(육주용)
 
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
[Td 2015]라즈베리파이에 windows 10 io t core 맛있게 발라 먹기(유정현)
 
[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)
[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)
[Td 2015]디버깅, 어디까지 해봤니 당신이 아마도 몰랐을 디버깅 꿀팁 공개(김희준)
 
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
[Td 2015]녹슨 c++ 코드에 모던 c++로 기름칠하기(옥찬호)
 
[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)
[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)
[Td 2015]너에게만 나는 반응해 반응형 응용프로그램(이규원)
 
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
 

[Td 2015]개발하기 바쁜데 푸시서버와 메시지큐는 있는거 쓸래요(김영재)

  • 1. 개발하기 바쁜데 푸시와 메시지큐는 있는거 쓸래요 2015-10-27 Youngjae KIM, Azure MVP
  • 2. 저는요 • 김영재 • Azure MVP (2014~) • ㈜바풀, 바로풀기 서비스 개발총괄 • (전) 카이스트 디지털미디어연구소 연구원 • (전) 영국 Ubisense UK 기술컨설턴트 • (전) 일본 국립전자통신연구소 스마트홈 미들웨어 연구원 • 바로풀기 소개 • 소셜서비스 스타트업 (23억원 투자유치, 12명 직원) • 중고등학생 학습 서비스 MAU 1위
  • 3. 먹고 자고 코딩하는거 좋아하는 개발자
  • 4. 이 세션의 대상은 • 이득 • 다른 솔루션 유저 • 처음 관련된 시나리오의 제품을 만드시는 분 • 어쩌다 들어오신 분 • 손해 • 이미 오늘 소개할 Azure 서비스를 사용 중인분 • 어떤 기술 앞에서도 시큰둥한 분 • 절대로 클라우드를 도입할 가능성도 생각도 없으신 분
  • 5. ???
  • 7. 프로그래머란? • 컴퓨터가 문제를 해결하도록 시스템을 만드는 사람 • 저 수준의 데이터를 고 수준으로 바꾸는 사람
  • 8. 흔한 인터넷 서비스 시나리오 유저가 앱으로 무엇인가를 하면 백그라운드 작업 후에 잠시 후 푸시가 오고
  • 9. 프로그래머가 할 일은 • 무엇인가를 정의 • 작업에서 의미를 추출 • 푸시로 다음 데이터 흐름을 유도 유저가 앱으로 무엇인가를 하면 백그라운드 작업 후에 잠시 후 푸시가 오고
  • 10. 판단 • 돈 내고 쓰는 솔루션 vs. 서버를 직접 관리하는 자신감 • 더 빨리 런칭할 수 있는가 • 더 안정적으로 관리할 수 있는가 • 더 확장에 대비할 수 있는가 • 클라우드 사고방식. 동의 못하면 의미 없음 • 퍼포먼스는 확장성과 돈으로 커버 가능 • 그 대신 시간과 운영 편의를 얻는다
  • 11. Azure 3년 써보니… • 2년간 행복함 • 좋은 이유는 좋을 수 밖에 없도록 만들었기 때문
  • 12. 오늘 다룰 내용 • Azure가 제공하는 Message Queue • Push Notification Hub 사용법 • 이들을 이용한 WebJob 데모
  • 13. 흔한 인터넷 서비스 시나리오 유저가 앱으로 무엇인가를 하면 백그라운드 작업 후에 잠시 후 푸시가 오고
  • 14. 흔한 구조 REST API Background Worker Push Notification Server Message Queue (MQ)
  • 15. Azure 대응 #1 Web Role Worker Role Notification Hub Service Bus
  • 16. Azure 대응 #2 WebSites WebJobs Notification Hub Storage Queue
  • 17. 소개할 Azure 구성요소 • Azure Queue • Azure Service Bus • Azure WebJobs • Azure Push Notification Hub
  • 19. MQ의 조건 • 중요도순 • 안정성 • 퍼포먼스 (초당 처리량) • 확장성 • API 편의성 • 보안: 주로 내부 통신용으로 사용
  • 20. Comparison Azure Rabbit MQ 안정성 ++ ++ 퍼포먼스 ++ +++ 확장성 +++ + API +++ ++ AWS SQS와의 비교? - 두 클라우드는 무엇을 선택하든 성능, 가격, 안정성이 비슷합니다. 가격은 Azure가 좀 더 저렴 (후발주자니까?!) 가격 비교 - 100 msg/sec 이상은 RabbitMQ + Large VM * 3개 운영이 더 저렴 ($535 수준) [참고링크] - 시간비용까지 생각하면 200 msg/sec 정도를 기준으로 삼아도 될 듯
  • 21. “큐(queue)로 이벤트 처리하고 싶어요“ Azure Queue로 쉽고 빠르게 만들기 Service Bus로 발전적으로 만들기 동작원리 - Storage의 응용판 장점 - 대용량 대응 - Azure WebApp의 WebJob의 쉬운 바인딩 단점 - 큐 기능에만 충실할 뿐 동작원리 - Service Bus에 기록하면 Subscribe로 작동 장점 - 더욱 풍부한 메시징 API, AMQP - 다양한 유형의 브로커 처리 (topic, relay, …) 단점 - 저렴하다고 할 순 없음. 두 기술의 차이 상세 설명 • 스펙 비교: https://azure.microsoft.com/ko-kr/documentation/articles/service-bus-azure-and-service-bus-queues-compared-contrasted/ • 코드 비교: http://msdn.microsoft.com/en-us/magazine/jj159884.aspx
  • 22. 1.1 Azure Queue (Storage)
  • 23. 특징 • Blob기반 Database인 Azure Storage를 이용한 Queue • 그래서 가지는 특징은 • 대용량 큐 저장 가능 • 빠르게 넣고 뺄 수 있음 (latency < 10ms) • 저렴한 가격 • 메시지 단위 Lock • 그래서 발생한 단점은 • 순서 처리를 보장 안함 • 트랜잭션 안됨 • 폴링으로만 처리 • AMQP 같은 고상한건 지원 안함 • 임의로 만든 점 • 최대 7일 저장 (TTL)
  • 24. Azure Queue 사용 예시 어딘가에서 입력 Azure Storage Queue Blob Table Web App WebJob Queue는 입력받으면 WebJob에서 자동으로 실행, 결과는 Azure Table 등에 담을 수 있음. 트리거
  • 25. 솔직히… • 문서화가 너무 잘되어있어서 딱히 설명할 것이 없네요! • API 사용법: https://azure.Microsoft.com/en- us/documentation/articles/storage-dotnet-how-to-use-queues/ • 바로 데모 프로그램을 실행해봅시다
  • 26. Azure Queue 활용 예시 • Azure WebJob과 연동 • 콘솔프로그램을 만든 후 github에 올리면 자동 으로 Pull  Compile  Deploy  동작. • 브라우저에서 테스트 및 로그 확인 가능. • 자동 스케일링 지원. • 트리거, 계속, 스케줄링 등 실행유형 지정. • 참고사항 • 간단한 작업에 좋음 • 대표적인 예시: 이미지 압축 • 속도가 빠르진 않음 • 관련 문서 • WebJob 시작하기 • WebJob 관련 자료 모음
  • 27. 곁다리 지식: Azure WebJobs의 주요 특징 • 병렬적 처리: 16개(기본값)의 큐를 벌크로 받아와서 처리 • 멀티스레드로 동작: 병렬 같은 병렬 아닌 동작 • 그러므로 주의사항은! • 같은 메시지가 두 번 처리될 수도 있음. 즉, 같은 메시지에 대해 다른 결과가 나오도록 하면 안됨 • Azure WebApp의 인스턴스 수에 제약이 됨 • 간단해서 쓰는거지 좋아서 쓰는거 아니다! • 이미지 리사이즈 등에 사용
  • 28. 난데없이 퀴즈퀴즈! • 다음 중 Azure Queue Storage가 제공하는 기능이 아닌 것은? 1. 80GB 이상의 메시지 저장 2. 5일 이상의 TTL 3. AMQP v1.0 4. WebJob 바인딩
  • 30. Service Bus 개요 • Push Notification Hub도 Service Bus 중 Topic의 응용. • 구성 • Queue • Topic • Relay • Notification Hub
  • 31. Service Bus 간단 개념잡기 • Queue • 일명 ‘선입선출(FIFO)’ 방식의 데이터 처리를 위한 대기열. • 주로 이벤트 처리에 활용. • OS의 핵심 요소 중 하나. • Topic • Queue의 확장판으로 분기해주는 switch가 더해짐. • 일명 Publisher-Subscriber 방식이라고도 함. • 분산시스템의 핵심 요소 중 하나. • Relay • WCF를 활용한 서비스 제공 모델. • WCF 기반으로 서비스가 구축된 엔터프라이즈 환경에 적합. • 참고: WCF는 REST 기반 웹API 기능 외에, 동기화, 양방향성, 세션처리, 보안 등에 여지가 많음.
  • 32. Service Bus Queue 단순한 구조인만큼 코드도 간단함. http://azure.microsoft.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-queues/
  • 33. Service Bus Topic 중요 개념: 가상의 큐가 각 토픽마다 할당된 것과 마찬가지. http://azure.microsoft.com/en-us/documentation/articles/service-bus-dotnet-how-to-use-topics-subscriptions/?fb=ko-kr
  • 34. 코드 들여다보기 • 바로풀기가 사용 중인 Service Bus Queue
  • 37. Azure Push Notification Hub • Azure ServiceBus에 Token DB와 push endpoint를 추가한 형태 • 퍼포먼스는 ServiceBus에 종속적 • 입력은 초당 2000건 • 하지만 출력은 모른다!? • 일종의 푸시 미들웨어 • 다양한 토큰규격, 핸드쉐이크 형태를 일원화하고 통합ID로 관리 • 한 유저의 멀티디바이스에 대응하기 편리
  • 39. API Overview • 등록 형태: 단말 별로 템플릿을 등록하여 처리
  • 40. API Overview • 전송은 단말 무관하게 코드 한 줄.
  • 41. Notification Hub 작동 원리 (기본) 어딘가에서 입력 사용자 단말로 전송Google GCM Apple APNS Windows WNS … 푸시 플랫폼 별 토큰을 이용하여 전송 Azure Topic 처리기 전송 결과 취득 불량 전송 건에 대한 피드백 처리
  • 42. Notification Hub 작동 원리 (상세) 어딘가에서 입력 사용자 단말로 전송Google GCM Apple APNS Windows WNS … 푸시 플랫폼 별 토큰을 이용하여 전송 Azure Topic 처리기 전송 결과 취득 불량 전송 건에 대한 피드백 처리 토픽1+채널+내용 토픽2+채널+내용토픽1 +내용 채널 + 토픽1 등록 Topic & Channel Key-Values 1 2 4 5 6 3
  • 43. 푸시 태그를 잘 생각해서 써야 한다 • 태크는 Key이며, Key-Value 로 이루어진 값을 대상에게 전송합니다. • Service Bus 토픽이 곧 Push Notification 태그 • 기본 활용: 한 ID의 단말에 보내고 싶다 • 태그명: userId • 예시: userId=Youngjae • 참고: userId=Youngjae로 등록된 모든 단말에 전송 (내 모든 단말) • Microsoft를 “좋아요” 한 사람들에게 보내고 싶다. • 태그명: like • 예시: like=Microsoft • Microsoft를 “좋아요” 한 한국어 유저들에게 보내고 싶다. • 태그명1: like, 태그명2: locale • 예시: like=Microsoft && locale=“ko-KR”
  • 44. 실제로는? 1. 태그에만 맡기기에는 서비스가 보다 세밀하게 타겟팅 하길 원함 2. 서비스가 워낙 변화무쌍하게 바뀌어서 푸시 DB를 갱신하는 것은 비효율적 3. 태그DB와 로직DB를 모두 관리해야 함 잘 안쓰임! 그냥 ID/전체 보내는 방식으로 커버 최소한의 카테고리를 태깅: locale, userId, gender
  • 45. 템플릿 • 템플릿은 클라이언트에서 $(name)과 같이 변수껍데기를 등록하면 보낼 때 name=“youngjae” 식으로 내용을 채워서 받을 수 있음. • 사용 시나리오 • 한국어 유저의 폰 등록 Template = “$(Korean)” • 서버 전송 Korean=“안녕”, English=“hello” • 클라이언트는 푸시를 받을 때 “안녕“만 취득함. • 토픽과 적절히 섞어 쓰면 맞춤 푸시를 보낼 수 있음. • 태그는 수신 대상을 규정 • 템플릿은 해당 범위에 세부적인 맞춤 정보를 제공 • 적용시 중요: 서비스에서 기획이 명확하게 잡혀있어야 효과가 좋음. • 안그러면 땜빵 템플릿이 넘칠 수도 있음.
  • 46. 실용적인 팁 • 항상 태그에 “userId:아이디“를 기본으로 적용하면 좋음. • 해당 ID에 맞추어 모든 기기로 전송됨. • 어차피 보낼 때 태그가 없으면 모두에게 보냄 (broadcast)  장점이지만 대재앙이 될 수 있으니 서버에서 깐깐하게 처리할 것. • 동일한 이름의 template은 덮어쓰기됨. • 별도의 업데이트 처리 불필요. • 푸시는 SMS가 아니므로 시간차가 있을 수 있음. • Free 버전일 경우 간헐적으로 몰아서 처리됨 (경험상 약 1~2분)
  • 47. 또 난데없이 퀴즈퀴즈! • 다음 중 Azure Notification Hub가 제공하는 기능이 아닌 것은? 1. REST API 2. MMS 전송 3. 예약된 푸시 전송 4. Amazon 디바이스 푸시
  • 49. 바로풀기에 처음 사용했던 Azure 구성 (Apr. 2014) Virtual Machine WebApp Mobile Service Storage Traffic Manager Legend MS-SQL DB API EndPoint (Performance) Spring F/W +CentOS (Large VM) Spring F/W +CentOS (Small VM) Storage Table Storage Queue Storage Blob Web Frontend WorkerRole Push ElasticSearch EhCache Backup DB Azure SQL User MongoDB General Backup
  • 50. 바로풀기에 현재 사용하는 Azure 구성 (Oct. 2015) Virtual Machine WebApp Push Notification Storage Traffic Manager Legend MS-SQL DB API EndPoint (Performance) REST Storage Table Service Bus Storage Blob Worker Role Push Orient DB Backup DB Azure SQL User General Backup Azure SQL dJango (Web) WebJobs
  • 51. 솔직히 써보자면… • Service Bus는 안정성은 기대보다 높습니다 • Azure에서도 가장 안정성에 공들이는 부분. • 2년간 Zero downtime • https://azure.Microsoft.com/en-us/support/legal/sla/service-bus/v1_0/ • 그래도 이중화는 하세요 • Storage 좋습니다 • Azure 서비스 중 제일 좋아합니다 • WebJob은 작년에 이어 아직도 추천하지 않습니다 • WebRole이 Deploy가 느리다는 단점 외엔 더 믿을만합니다 • NewRelic이 지원 안됨! • 작년보다 PaaS를 더 신뢰합니다 • WebSites 추천합니다. 특히 닷넷서버와 결합시 제로스트레스! 궁극의 PaaS! • 사용경험에 직접적인 Frontend는 Traffic Manager를 이용한 이중화 필수입니다
  • 52. Azure 꿀팁 몇가지 • “Service Bus를 쉽게 관리하는 툴 없나요?” • Service Bus Explorer를 써보세요. 설명서, 다운로드 • 다운로드 받은 후 2.1.zip 파일을 압축 풀고 ServiceBusExplorer.exe를 실행하세요. • “Azure Storage를 탐색기처럼 관리하는 툴 없나요?” • Azure Storage Explorer를 써보세요. • 더 전문적인 것 (유료): Azure Management Studio
  • 53. Notification Hub 소스 • 꼭 한 단계씩 차근차근 해주세요. • http://azure.microsoft.com/en-us/documentation/articles/notification- hubs-android-get-started/?fb=ko-kr • 메시지 보내는 서버 소스 • http://blogs.msdn.com/b/azuremobile/archive/2014/04/08/push- notifications-using-notification-hub-and-net-backend.aspx • 좋은 예시 • https://github.com/sabbour/breakingnews • 안드로이드 프로그래머는 아래 링크 참조. • http://www.slideshare.net/agrocholski/google-devfest-mn-notification-hubs
  • 55. http://aka.ms/td2015_again TechDays Korea 2015에서 놓치신 세션은 Microsoft 기술 동영상 커뮤니티 Channel 9에서 추후에 다시 보실 수 있습니다.