AWS에서는 다양한 언어에 대한 기계 번역(Translate) 등 AI 기능에 대한 API 서비스를 제공합니다. 본 실습에서는 이들 서비스(Serverless) 환경으로 AWS Amplify를 활용하여 소셜 모바일 앱을 안드로이드 기반으로 만들어 봅니다. 이를 위해 사용자 인증(Cognito), Graphql(Appsync) 등의 기능을 함께 활용합니다. 만들어진 앱은 AWS Device Farm을 통해서 클라우드 상에서 테스트 할 수 있습니다. 추가적으로Amazon Pinpoint를 이용하여 사용자 이벤트를 수집하고 분석하는 기능을 활용합니다.
4. 글 목록
Demo 시나리오 설명
워크샵 환경 준비: https://bit.ly/2krxQ5g
사용자 설정 번역새 글 작성가입/로그인
5. Demo 체험
아래 3가지 기능을 경험해 보세요
• 가입하기
• 게시물 작성하여 Post하기
• 게시물 내용 번역하기
안드로이드 APK 다운로드 : https://bit.ly/2kv5W8B
* 안드로이드 장치나 에뮬레이터가 없는 분은 Device Farm으로 체험할 수 있습니다.
12. Amazon Cognito
웹과 앱을 위한 사용자 가입, 로그인 및 액세스 제어
안전하고 확장 가능한
사용자 디렉터리
소셜 및 엔터프라이즈
자격 증명 연동
AWS 리소스에 대한
액세스 제어
쉽게 앱과 통합
13. Amazon Cognito 구동 방식
Get AWS credentials
Access AWS services
Authenticate 1
Redirect /
Post back
Access serverless backend
Federating
IdP
IdP Token
CUP TokenCUP Token
CUP Token
AWS STS
AWS STS
Amazon
Cognito user
pool
Amazon
Cognito
identity pool
2
3
4
56
16. 데이터를 읽는 쿼리
데이터를 작성하는 변형
실시간 데이터 구독
query GetPost {
getPost(id: ”1”) {
id
title
}
}
mutation CreatePost {
createPost(title: “Dev Day”) {
id
title
}
}
subscription OnCreatePost {
onCreatePost {
id
title
}
}
API를 위한 쿼리 언어
20. Amplify 와 AI 서비스를 활용한
서버리스 기반 소셜 안드로이드
앱 만들기 - Pinpoint
김현수, AWS 솔루션즈 아키텍트
21.
22. 성공적인 사용자 참여 유도
사용자 관리 잠재 고객 관리 타겟팅 채널 캠페인
인사이트
23. 사용자 이해
상세 분석을 위한
사용자 데이터 Export
머신런닝을 사용하여 사용자
선호도나 행동을 예측
소유중인 사용자 데이터
제 3자의 데이터
실시간 수집한 데이터
24. 잠재 고객 선별
유연한 잠재 고객 정의를
위해 세그먼트를 쉽게
결합하거나 억제
적절한 세그먼트 생성을
위한 컨트롤 기능 제공
기존 정적 세그먼트
동적 잠재 고객 세그먼트
25. 적시 메시지 전송
특정 사용자들에게 직접
트랜잭션 메시지 발송
실시간 액션을 기반으로
즉시 메시지 트리거
사용자가 가장 참여를
잘 하는 시간대에 스케줄링
자동화된
개인화 추천
사용자의 수명
가치를 극대화
일관된 경험을 위한
다중 캠페인 워크플로우
26. 채널 선호도
특정 사용자의 채널 실적에
대한 통찰력 확보
이메일, SMS, 푸시 및 음성
메시지를 손쉽게 생성
높은 전송 신뢰도 및
통제를 가진 메시지 전달
27. 고객 참여 분석
통합 성능 분석을 위해
외부 시스템의 데이터와
핀포인트 데이터를 결합
더 높은 전송 성공 보장을
위한 메시지 전달 결과를
신속하게 감지하고 해결
A/B 테스팅 참여 유도 및
이벤트 지표 측정
스팸이 아닌 받은
편지함으로 가는데
도움이 되는 도구
이메일 전송 문제를
발송 전에 적극적으로
감지하고 해결
세계 최고의 ISP로부터
통찰력을 얻은 이메일
수신함으로의 배달 가능성
28. AWS 서비스와 Pinpoint 서비스의 통합
AWS
Amplify
AWS
AppSync
Amazon
DynamoDB
Amazon
Kinesis Data Firehose
Amazon
Elasticsearch Service
AWS
Lambda
Amazon
S3
AWS
Glue
Amazon
Athena
Amazon
QuickSight
Amazon
Personalize
AWS
Step Functions
Amazon
SNS
Amazon
SES
Amazon
Pinpoint
29. Pinpoint를 활용한 분석 예
AWS Cloud
Marketer
Analyst
Customer
Endpoint
Marketer
Developer
Analyst
AWS
Amplify
Amazon Cognito
Authentication
AWS
AppSync
Amazon
DynamoDB
Update data in table
Amazon
Pinpoint
App client to
Pinpoint mapping
Forward response data
Amazon
Kinesis Data Firehose
Response data
Amazon
Elasticsearch Service
Visualization
Kibana
AWS
Lambda
Amazon
S3
Preprocessed dataResponse raw data
AWS
Glue
Crawlers
Amazon
Athena
Ad-hoc query
Data catalog
ETL job
result
Amazon
QuickSight
Visualization
Amazon
Personalize
Train model for personalization
and recommendation
Create segment/campaign
View dashboard
30.
31. Demo 설명
AWS Cloud
AWS Amplify
Amazon Pinpoint
AWS Tools and SDKs
Developer CLI Env
awsconfiguration.json
notifications
Android Studio
32. Hands-On-Lab URL
• Amplify
Cognito
• AppSync
Translate
• Pinpoint
• Device Farm
실습 시작: https://xmrrh.github.io/socialapp/pinpoint/
메뉴 > 서비스 구성 > Push 메시지 보내기
33. Amplify 와 AI 서비스를 활용한
서버리스 기반 소셜 안드로이드
앱 만들기 – Device Farm
강승욱, AWS 솔루션즈 아키텍트
34.
35. Device Farm?
실제 물리 디바이스에
병렬로 빠르게 테스트 가능
웹브라우저나 로컬 세션에서
동작 제스쳐, 넘기기 동작과
같은 실제 액션을 수행
테스트 자동화 원격 액세스 원격 디버깅
선호하는 IDE(예: Xcode 및
Android Studio)로 Android
및 iOS 앱 실행 및 디버깅
36. AWS Device Farm
§ Android and iOS (Native, hybrid, web) 지원
§ Scale: 2000개 이상의 디바이스 프로파일 사용 가능
§ Security: 독점 디바이스 사용, 사용 데이터 30일 유지
§ Flexibility: Fuzzy테스트 외에 여러 프레임워크 지원
§ Reports: Results, videos, screenshots, logs, perform
ance
§ Integration: Jenkins, Android Studio, SDKs, CLI,
Remote Tools
37. 모바일 앱 테스트의 어려움
테스트 프레임워크의 다양함
테스트 결과수많은 모바일 장치와 OS 버전이 필요
42. Device Farm Fuzz Test
Built in Fuzz Test
Fuzz 테스트는 앱에 여러 사용자
입력(터치, 넘기기, 키보드 입력)을 통해
UI 테스트 실시(안드로이드는 화면
인식 퍼지 테스트 제공)
이벤트 수, 간격, 랜덤 이벤트에
사용되는 난수(seed)를 설정
장점
테스트 스크립트 없이 테스트 수행
• 몇 분 내에 호환성 문제를 파악 가능
• 별도의 테스트 툴이 필요하지 않음
43. Device Farm Test Framework
테스트 자동화 프레임 워크
• Appium(JUnit, TestNG)
• Calabash
• Instrumentation ※Android 만 지원
(JUnit, Espresso, Robotium)
• UIautomator
장점
• 단계별 테스트 요소를 체크할 수 있다.
• 프로젝트 별로 최적인 솔루션을 사용해
테스트를 만들 수 있다.
• 개발 팀과 QA팀에서 요건이 다르더라도
하나의 공통 플랫폼에 통합 수 있다
44. Device Farm Remote Debugging
원격 액세스 기능
• 로컬 개발 플랫폼에서 원격
액세스 세션을 통한 해당
디바이스와의 상호작용
• 세션으로 디바이스와의
실시간 상호 작용
• 두개 이상의 세션을 사용 가능
• Device Farm 프라이빗
디바이스가 있는 고객만 사용
45. AWS Device Farm 요약
§ 수많은 Android, iOS, Fire OS가 운용중인 실제 모바일
디바이스 에서 테스트 실시
§ 복수의 프레임워크를 제공
§ 테스트 스크립트가 불필요한 Built-in Fuzz테스트 이용
가능
§ 테스트를 병렬 실행할 수 있고 몇 분 만에 결과를 얻기
§ 실사용 시나리오와 같은, 테스트 환경을 설정 가능