AWS 월간 웨비나 8월 녹화 동영상은 아래 링크를 참고하십시오.
https://aws.amazon.com/ko/blogs/korea/category/webinar/
---
모바일 시장이 확대됨에 따라 적은 비용으로 더 빠르게 모바일 사용자를 대상으로 한 모바일 앱 및 웹 서비스를 개발하는 것이 점차 더 중요해지고 있습니다.
이 강연에서는 AWS가 제공하는 Amazon Cognito, Mobile Analytics 및 SNS 등 모바일 서비스들과 SDK를 통해 더 빠르게 모바일 서비스를 개발해 사용자의 요구 사항에 대응하고 확장성을 갖춘 모바일 앱을 만드는 방법에 대해알아봅니다.
또한, AWS Lambda라는 클라우드 함수를 이용한 손쉬운 비지니스 로직 구현, 새로 나온 Amazon DeviceFarm을 통한 자동화된 앱 테스트 및 Amazon API Gateway를 통한 모바일 백엔드 구축 방법 등 서버 없이도 효율적인 모바일 서비스 아키텍처를 구성하는 방법을 알려드립니다
3. User
Applica,on
Applica,on
Service
Middleware
Service
Language
Interpreter
Opera,ng
System
Host
개발에만 집중하세요!
클라우드컴퓨팅이란?
4. v
Your
Mobile
App
사용자 인증
사용자 권한 부여
사용자 행동 분석
미디어의 저장 및 공유
인증정보 단말간 공유
미디어 전송
공유 데이터의 저장
실시간 데이터 스트림
처리
재방문 추적
푸시 알림 전송
모바일앱
요구사항
5. v
모바일 개발자 가라사대…
직면한 문제점
핵심 UX 만드는데도 시간 증가
효율적 백엔드 API 개발 필요
기기 플랫폼 파편화
앱 테스트 및 운영 비용 증가
사용자에게 줄 핵심 기능 구현 시간 저하
앱개발은 만만한 작업이 아니다!
모바일 앱 코드
사용자 인증 및 관리
사용자 데이터 싱크
비동기 커뮤니케이션
활성 디바이스 분석
사용자 행태 분석
사용자 참여 분석
푸시 노티피케이션
사용자 이벤트 기능처리
플랫폼 독립적 모바일 백엔드
데이터 유효성 및 전송
파일 및 미디어 저장
공유 데이터베이스 스토리지
데이터 수집
기타등등…
6. v
AWS 가라사대…
모바일 앱 코드
사용자 인증 및 관리
사용자 데이터 싱크
비동기 커뮤니케이션
디바이스 대응
푸시 노티피케이션
사용자 이벤트 기능처리
플랫폼 독립적 모바일 백엔드
데이터 유효성 및 전송
파일 및 미디어 저장
공유 데이터베이스 스토리지
데이터 수집
기타등등…
Amazon Mobile Analytics
Amazon SNS Mobile Push
AWS Lambda
Mobile-optimized Connectors
(Amazon Kinesis, Amazon S3,
Amazon DynamoDB, Amazon SQS)
Amazon Cognito
7. v
AWS 가라사대…
모바일 앱 관리
서버 없는 모바일 백엔드
API 개발 및 인증 관리
SDK 생성 및 개발자 지원
앱 자동 테스트
품질 관리 향상
다양한 디바이스 대응
AWS Device Farm
Amazon API Gateway
8. Amazon
Cognito
Amazon Mobile
Analytics
Amazon SNS
Mobile Push
Amazon Kinesis
Recorder
DynamoDB
Mapper
S3 Transfer
Manager
SQS Client Amazon SES
Client
AWS 글로벌 인프라
핵심 서비스
모바일 최적화
커넥터
모바일 최적화
서비스
모바일 앱, 모바일 게임, IoT 디바이스
AWS 모바일 SDK(iOS, Android), API 엔드포인트, AWS 관리 콘솔
컴퓨팅 스토리지 네트워크 데이터 분석 데이터베이스
모바일용
인터페이스
AWS Lambda
Lambda
Functions
λ
λ
λ
λ
AWS 모바일 빌딩 블럭
Amazon API
Gateway
Amazon
Device Farm
9. v
AWS Mobile SDK
다운로드: http://aws.amazon.com/ko/mobile/sdk
10. v
AWS Mobile SDK
Amazon Mobile
Analytics
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Amazon S3
Transfer Manager
Amazon CloudFront
(Device Detection)
Amazon DynamoDB
(Object Mapper)
Amazon Kinesis
(Recorder)
Amazon Mobile
Analytics
Amazon SNS
Mobile Push
Your
Mobile
App
사용자 인증
사용자 권한 부여
사용자 행동 분석
미디어의 저장 및 공유
인증정보 단말간 공유
미디어 전송
공유 데이터의 저장
실시간 데이터 스트림 처리
재방문 추적
푸시 알림 전송
AWS Mobile SDK
11. v
Amazon Cognito 소개
간단한 인증 방
식 제공 및 접
근 관리
모바일 및 AWS 전
체 서비스에 적용
가능한 안전한 아
이덴티티 관리
가장 안전한
베스트 프랙티
스 적용
다양한 소셜 로그
인 방식을 통해 쉽
게 로그인 가능
Guest
Your own
Auth
디바이스 및 플
랫폼간 데이터
동기화
디바이스 및 플랫
폼 관계 없이 사용
자 인증 및 데이터
동기화
12. v
Amazon Cognito: 동기화 기능 예제
CredentialsProvider 및 CognitoClient 초기화
데이터 동기화
원하는 데이터 셋이나 키/값 설정
provider = new CognitoCachingCredentialsProvider (context, AWS_ACCOUNT_ID,
COGNITO_POOL_ID, COGNITO_ROLE_UNAUTH, COGNITO_ROLE_AUTH, Regions.US_EAST_1);
cognito = new CognitoSyncManager (context, Regions.US_EAST_1, provider);
dataset.synchronize(new SyncCallback(){..});
cognito.openOrCreateDataset(datasetName);
dataset.put(key, value);
13. v
Amazon Mobile Analytics
비용이
저렴하다!
다양한 통계 분석을
60분 이내에
수행 가능
빠르다!
수백만의 사용자로 부터
오는 수십억건 데이터도
무료로 분석 가능!
데이터는
나의 것!
“간단하고도 비용 효율적인 모바일 앱 분석 도구”
수집된 데이터는
모두 자신의
AWS 자원에 저장!
14. v
주요 지표
(한라인코드로만도 추가 가능)
1. Monthly Active Users (MAU)
2. Daily Active Users (DAU)
3. New Users,
4. Daily Sessions,
5. Sticky Factor,
6. 1-Day Retention,
7. Avg. Revenue per DAU,
8. Daily Paying Users,
9. Avg. Paying DAU
15. v
Mobile Analytics 적용 코드 예제
앱 코드에서 MobileAnalyticsManager 초기화
별도 원하는 추가 이벤트 수집의 경우 선언
OnResume() 혹은 OnPause() 추가
private static MobileAnalyticsManager analytics;
analytics = MobileAnalyticsManager.getOrCreateInstance(
this.getApplicationContext(),"yourCompany.yourAppId",
Regions.YOUR_REGION, config, cognitoProvider );
EventClient eventClient = analytics.getEventClient();
MobileAnalyticsEvent visitEvent = eventClient.createEvent("speedSet");
eventClient.recordEvent(visitEvent);
analytics.getSessionClient().resumeSession();
analytics.getSessionClient().pauseSession();
Analytics.getEventClient().submitEvents();
16. v
서드파티를 활용한 시각화
mobile
client
Amazon
S3
Amazon
Redshift
Amazon Mobile
Analytics
외부 데이터
17. v
Amazon SNS
Cross-platform
Mobile Push
Internet
Apple APNS
Google GCM
Amazon ADM
Windows WNS and
MPNS
Baidu CP
With Amazon SNS,
developers can
send push
notifications on
multiple platforms
and reach mobile
users around the
world
Amazon SNS 모바일 푸시
Android Phones and Tablets
Apple iPhones and iPads
Kindle Fire Devices
Android Phones and Tablets in China
iOS
Windows Desktop and Windows Phone
Devices
18. 철수 영희
민수
• 지연 속도 없이 빠르게 데이터 추가
및 높은 성능을 가진 DynamoDB를
앱에서 간단한 코드로 접근 가능
• 모바일 클라이언트 데이터를 그대
로 싱크 가능
• 멀티 디바이스에서 쉽게 이용 가능
게임 점수
철수
1500
영희
800
민수
750
DynamoDB Connector: Object Mapper
19. v
S3 Connector: 모바일 전송 관리
S3 Connector
멀티 파트 데이터 업로드(photos, videos, audio)
빠른 다운로드(e.g. assets)
자동 재시작
중단/재시작/취소 기능 제공
네이티브 OS 친화적
앱스토어 출시 사이클과 상관 없이
동적으로 자원을 업데이트할 수 있
었으며, 170MB가 넘는 다바이스별
이미지를 모바일에서 직접 다운르도
하여 서버 확장성을 고려할 필요가
없이 더 품질 높은 고해상도 이미지
전송도 가능
Amazon S3 connector를 통해 동적으
로 게임 자원을 백그라운드로 다운로드
하여 사용자 경험이 늘어났습니다. Douglas Hare
CEO, Outplay Entertainment
”
“
20. v
S3 이미지 관리 예제
// Creating the transfer manager
TransferManager transferManager = new
TransferManager(credentialProvider);
// Upload image
Upload upload = transferManager.upload(BUCKET_NAME, fileName, file);
// Download image
Download = transferManager.download(BUCKET_NAME, mKey, file);
// Pause, and Resume
try {
PersistableDownload persistableDownload = download.pause();
//do something if we didn’t abort
} catch(PauseException e) {
//do something if we aborted
}
download = transferManager.resumeDownload(persistableDownload);
21. v
Amazon
Kinesis
Amazon
Redshift
Kinesis
enabled
Apps on EC2
AWS
Mobile
SDK
Kinesis Connector for Mobile Apps
For sophisticated
User Behavior
Real-time
Analysis
Amazon Kinesis를 통해
실시간 사용자 액션을 직
접 모바일로 전송하여 분
석 할 수 있었습니다.
”
“
Amazon
EMR
22. 더 자세한 것은…
hCp://www.slideshare.net/awskorea/kr-‐webinar-‐2015-‐aws-‐mobile-‐services
23. v
AWS Mobile SDK
Amazon Mobile
Analytics
Amazon Cognito
(Sync)
AWS Identity and
Access Management
Amazon Cognito
(Identity Broker)
Amazon S3
Transfer Manager
Amazon CloudFront
(Device Detection)
Amazon DynamoDB
(Object Mapper)
Amazon Kinesis
(Recorder)
Amazon Mobile
Analytics
Amazon SNS
Mobile Push
Your
Mobile
App
사용자 인증
사용자 권한 부여
사용자 행동 분석
미디어의 저장 및 공유
인증정보 단말간 공유
미디어 전송
공유 데이터의 저장
실시간 데이터 스트림 처리
재방문 추적
푸시 알림 전송
AWS Mobile SDK
비지니스 로직/기능
AWS Lambda
24.
25. AWS Lambda: 이벤트 기반 코드 실행
유연한 자동 확장서버 설치 불필요
실행 시간에 따라 과금
프로그램 코드
“서버 없이도 클라우드 기반 무상태(Stateless) 함수 실행”
26. 활용 예제: Data Triggers-Mobile Backend
AWS
Lambda
λ
Amazon
Cognito
User
data
change
Send
SNS
no,fica,ons
Update
DynamoDB
Table
30. v
다양한 활용 예제
• S3에 ZIP 파일 업로드시 자동 압축 해제 하기
• S3에 동영상 파일 업로드시 인코딩 하기
• S3에 XLS 파일 업로드시 DynamoDB로 저장하기
• S3에 정적 블로그 호스팅 하기
• Node.js 문자 인식 라이브러리로 이미지내 문자 인식하기
• Node.js 크롤러를 이용한 간단한 웹 크롤러 개발하기
• Node.js 활용 Cron Job 만들기
hCps://github.com/awscodes/lambda-‐snippet
31. v
예제: LambdaChat
• 예제: http://lambda-chat.s3-website-us-east-1.amazonaws.com/
• 코드: https://github.com/cloudnative/lambda-chat
33. v
AWS Region
AUTHENTICATED
(ASSUMED
ROLE)
서버없는 모바일 앱
AWS 모바일 서비스 기반
Download
Photos
&
App
Files
Session
and
Device
Data,
User
Behavior
Social
Content
(Tagging,
Likes,
Comments,
etc.)
Auto
Export
Metadata
Image
Manipula,on
40
Func,on
Invoked
Mul,-‐part
Upload
User
Login
Auto
with
Web
Iden,ty
Token
User
Friends
AWS
Mobile
SDK
Session
&
Photo
Metadata
Role
Associated
With
Iden,ty
Pool
AWS
Lambda
Amazon
CloudFront
Amazon
Mobile
AnalyBcs
Amazon
DynamoDB
Amazon
Cognito
Amazon
IAM
Amazon
S3
Geo
Look
up
Amazon
SNS
Mobile
Push
Amazon
RedshiH
Targeted
34. Q: AWS 자원의 이벤트 없이도
AWS Lambda 함수를 실행할 수 있을까?
Q: 모바일 백엔드를 위한
API 관리를 쉽게 할 수 없을까?
36. API 관리에 대한 고객 피드백
API 버전 및 단계별 관리 비용이 높다
서드파티 개발자 접근 모니터링에 시간이 많이 든다
인증 관리 및 키 발급 관리도 힘들다.
트래픽이 갑자기 올라가면 확장성 고려를 해야 한다
서버 없이 개발을 하려고 한다면, 솔루션은?
37. v
Amazon API Gateway 소개
버전 관리 및 출시 단계별 관리 가능
개발자를 위한 API 키 발급 및 관리 용이
API 접근 인증을 위한 Signature Ver.4 지원
백엔드 보호를 위한 요청 모니터링 및 제한
AWS Lambda 활용
38. v
API Gateway 활용 이점
API 응답을 손쉽게 캐싱해서 제공
Amazon CloudFront를 활용하여 지연 속도 감소 및
DDoS 방어력 향상
iOS, Android 및 JavaScript SDK 자동 제작
Swagger 표준 형식 지원
요청/응답 데이터 변형 가능
40. v
API 시작하기
• API 생성하기
• API 리소스 정의하기
• 리소스에 대한 메소드 정의하기
• REST 호출을 위한 HTTP verb 사용
Pet
Store
/pets
/pets/{petId}
•
GET
•
POST
•
PUT
41. v
API 배포하기
• API 설정을 원하는 배포 단계에 따라
개별 구성 가능
• 각 단계는 전혀 다른 사용자 및 서비
스 환경을 가지게 됨:
• Dev (e.g., example.com/dev)
• Beta (e.g., example.com/beta)
• Prod (e.g., example.com/prod)
• As many stages as you need
Pet
Store
dev
beta
gamma
prod
42. v
API 버전 및 단계별 관리 방법
API
1
(v1)
Stage
(dev)
Stage
(prod)
API
2
(v2)
Stage
(dev)
43. v
맞춤형 도메인 지원
• 소유하고 있는 자체 도메인 사용 가능
• HTTPS 인증서와 함께 API Gateway에 제공
• 자체 도메인명은 API 혹은 각 단계에 지정 가능
• Beta (e.g., yourapi.com/beta)
• Prod (e.g., yourapi.com/prod)
45. v
API Key를 통한 사용량 측정
• API keys 생성 지원
• API 및 단계 수준별 접근 제어 가능
• Amazon CloudWatch 로그를 통한 API
Key 접근 통계 측정 가능
46. v
API Key에 대한 바른 인식 및 사용법
• “key”가 보안을 의미하지만, API Key는 앱 코
드에 담기므로 보안을 의미 하지 않음
• API keys는 앱 및 사용자 트래픽을 측정하는
데에만 사용 필요
• API keys는 더 강력한 인증 메카니즘 안에서
사용해야 함
47. v
AWS signature version 4 적용 방법
• API 호출을 서명 및 인증하기 위해 AWS
signature version 4 활용 가능
• Amazon Cognito 및 AWS Security Token Service (AWS
STS)을 통해 앱에 대한 임시 인증 토큰 생성
• 별도 헤더를 통해 Oauth나 유사한 다른 인증
메카니즘을 사용할 수 있음
• 백엔드로 별도 헤더를 전송하기 위해 API 메소드에 설정
가능
48. v
Signature version 4를 통한 API 호출 인증
Call login API, no
authentication
required
Client API Gateway Backend
/login
AWS
Lambda
fn_login
User
accounts
database
Credentials
verified
Amazon Cognito
developer
authenticated
identities
Access and
secret key/login
Receives
credentials to
sign API calls
56. v
입출력 변환
• 데이터 변환에 Velocity 템플릿을 사용
• 출력 결과 필터링
• 테스트나 불필요한 데이터 제거
• API 성능 향상을 위해 데이터셋 크기 필터링
• GET to POST
• GET 호출로 받은 모든 파라미터를 내부 API 백엔드로 POST로 변환해서 제공 가능
• JSON to XML
• JSON 입력 결과를 내부 API 백엔드로 XML 변환 가능
• AWS Lambda로 부터 받은 JSON 결과를 XML로 변환 가능
57. v
변환 예제: JSON to XML
API Gateway Back end
GET
-‐
/sayHello
AWS
Lambda
fn_sayHell
o
/sayHello
{
“message” : “hello world”
}
<xml>
<message>
Hello world
</message>
</xml>
#set($root = $input.path('$'))
<xml>
<message>
$root.message
</message>
</xml>
59. v
네이티브 SDK 자동 생성
• API 배포(Deployement) 기준에 따라 SDK 자동 생성 가능
• 호출 및 응답 모델이 생성되어 있는 경우, SDK에서 메소드 입출력
처리 가능
• 응답에 대한 트래픽 제한 처리 가능
• AWS 임시 크리덴셜(Signature Version 4 지원)을 기반으로 호출 서
명 가능
• 안드로이드, iOS 및 JavaScript 지원
91. v
API Gateway 가격 정책
• 1백만 호출당 $3.50
• AWS Free Tier
• 12개월 동안 월 백만 호출 무상 제공
• 데이터 전송 비용 (표준 AWS 가격)
• $0.09/GB for the first 10 TB
• $0.085/GB for the next 40 TB
• $0.07/GB for the next 100 TB
• $0.05/GB for the next 350 TB
Cache
memory
size
(GB)
Price
per
hour
(USD)
0.5
$0.020
1.6
$0.038
6
$0.200
13
$0.250
28
$0.500
58
$1.000
118
$1.900
237
$3.800
Dedicated
cache
pricing
92. v
Amazon API Gateway
API 버전
관리
API 트래픽
관리
데이터 캐싱 인증 및 보안
SDK 자동
생성
“확장성과 보안성 높은 API 개발, 관리 모니터링 서비스”
94. v
앱의 품질이 중요하다!
• 48%의 사용자 버그나 성능 문제가 있다면 앱
을 삭제한다.
• 32%의 사용자 이러한 문제가 발생하면 경쟁
앱을 찾는다.
• 이용자 획득 비용은 앱마다 2.74달러로 되어
있으며, 2014년 4월에 비해서 연간 80%증가
Failing to meet mobile app user expectations -‐‑‒ A mobile app user survey from
Dimensional Research (2015/3/30)
http://go.saas.hp.com/apppulse-‐‑‒mobile-‐‑‒survey
Mobile Marketing Costs See Unprecedented Year-‐‑‒over-‐‑‒Year Growth, According to
the Fiksu Indexes (2015/5/29)
https://www.fiksu.com/about/news-‐‑‒releases/fiksu-‐‑‒indexes-‐‑‒mobile-‐‑‒marketing-‐‑‒costs-‐‑‒see-‐‑‒
unprecedented-‐‑‒year-‐‑‒over-‐‑‒year-‐‑‒growth
95. v
고품질 앱을 제공하는 것이 왜 어렵나?
• 대부분의 문제는 기기 스펙에 기인
• 사용자가 갖고 있는 실제 기기와 같은 것
에서 테스트해야함
• 시장에는 많은 디바이스와 OS버전 조합
이 존재
• 대량 테스트 디바이스를 테스트하는 것
은 매우 높은 비용
• 수작업에 의한 테스트는 시간 많이 소요
Open Signal -‐‑‒ Android Fragmentation Visualized (2014/8)
http://opensignal.com/reports/2014/android-‐‑‒fragmentation/
96. v
디바이스/OS의 변화는 가속되는 중
• 사용자가 갖고 있는 Android 기기 종류
는 전년 11,868개에서 , 2014년 8월에
는 18,796로 증가
• Android 사용자의 38%는 Jelly Bean,
39%는 KitKat, 12%는 Lolipop, 10%는
아직 Gingerbread와 Ice Cream
Sandwich를 이용
Open Signal -‐‑‒ Android Fragmentation Visualized (2014/8)
http://opensignal.com/reports/2014/android-‐‑‒fragmentation/
Android Developers (2015/6)
http://developer.android.com/intl/zh-‐‑‒CN/about/dashboards/index.html
97. v
테스트에 드는 비용 및 복잡성 증가
• 엔터프라이즈 IT테스트와 QA예산 전체 비
율은 2012년 18%에서 2014년 26%로 증가
했으나, 여전히 35%는 불만족
• 40% IT경영자가 앱을 적절히 테스트할 시
간이 부족
• 51% 개발자가 비용과 시간의 제약 때문에
테스트가 힘듬
Capgemini -‐‑‒ World Quality Report 2014-‐‑‒15
https://www.capgemini.com/thought-‐‑‒leadership/world-‐‑‒quality-‐‑‒report-‐‑‒2014-‐‑‒15
77%
of
Mobile
App
Purchasers
Have
Concerns
When
Buying
Mobile
Apps
-‐
Harris (2013/8/20)
http://www.businesswire.com/news/home/20130820006244/en/77-‐‑‒Mobile-‐‑‒App-‐‑‒Purchasers-‐‑‒
Concerns-‐‑‒Buying-‐‑‒Mobile#.Vaz9yaad1N0
99. Android, iOS, Fire OS앱을 올
리고 테스트 내용을 설정하
여 디바이스 선택
선택한 디바이스를 병렬적
으로 앱을 빠르게 테스트
가능
버그, 성능 등의 문제를 몇
분 안에 상세하게 테스트
결과 제공
YOUR
APP +
AWS Device Farm
AWS클라우드에 호스팅 된 수많은 스마트 폰, 태블릿, 기타의 실제 기기를 통해
빠르게 Android, iOS, Fire OS앱을 테스트 및 품질 향상 가능
100. 자체 테스트 팜 운영
• 초기 투자/운용에 높은 비용 필요
• 신규 기기 추가와 OS 업데이트 비용
• 기기 사용을 온라인 상태 유지 필요
• 병렬 실행, 데이터 수집, 레포팅 등
자동화를 위한 기반 솔루션에 투자
필요
AWS Device Farm의 장점
AWS Device Farm
• 종량 과금제에 따른 비용 절감
• 신규 기기 및 OS에 빠른 접근 가능
• AWS 데이터 센터에서 높은 신뢰성
과 가용성 보장
• 앱의 품질에만 집중 할 수 있음
119. v
디바이스 종류
• 디바이스 프로파일은 제조 회사/모델/OS버전/통신사를 기준으로 제공
• AWS데이터 센터에 호스팅 되어 있어 사용자 요구에 따라 확장 가능
• 클라우드 서비스를 위한 충분한 용량 (다수 디바이스 프로파일)을 보유
• 보안 요구 조건을 충족 (예: 루트 권한이 동작않음)
• 시장 정보를 바탕으로 기기 선택 및 제공 (새로운 디바이스 지속 추가)
신규 기기 입고
최신 기기를 활용 가능 AWS 데이터센터
120. v
디바이스 선택
• 호환성 있는 모든 디바이스에서 개별적으로 선택 가능
• 이용하고 싶은 디바이스를 사전에 선택하는 디바이스 풀 작성 가능
주의 기본적인 몇개의 시용 디바이스밖에 이용할 수 없음. 모든 디바이스를 이용하려면 별도 신청이 필요
121. v
기본 탑재 테스트 종류
• Fuzz 테스트
Fuzz 테스트는 앱에 여러 사용자 입력(터치, 스와이프, 키보드 입력)을 주
고 UI테스트. 이벤트 수, 시간 간격, 무작위 이벤트에 사용되는 랜덤값
(seed)를 설정할 수 있다. 테스트후, 같은 랜덤값(seed)을 이용하면 같은 이
벤트 재현 가능
• 참고 사항
• 테스트 케이스 없이도 테스트 가능
• 짧은 시간내에 호환성 문제를 파악 가능
• 아래와 같은 테스트 진행 가능
ü 앱 설치/실행 / Fuzz 테스트 / 앱 제거
122. v
테스트 프레임웍 지원
• 테스트 자동화 프레임웍
• Appium(JUnit, TestNG)
• Calabash
• JUnit, Espresso, Robotium
• uiautomator
• XCTest(Xcode5~), KIF
• 참고사항
• 프로젝트별로 최적인 솔루션을 사용해서 테스트를 만들 수 있다.
• 개발 팀과 QA팀에서 요건이 다르더라도 하나의 공통 플랫폼에 통합
수 있다.
• 새롭게 출현하는 체제도 지원됨으로써 통합 수 있다.
127. v
병렬 테스트
• 병렬 테스트
• 선택한 기기로 병렬로 테스트 실행 가능
• 클라우드 기반 충분한 기기 ( 많은 동일한 디바이스 프로파일) 보유
• 디바이스 프로파일 이용이 많아지면 기기마다 큐 대기
• 테스트가 완료되면 기기 기반으로 결과 제공
• 참고사항
• 자동 테스트를 하루 몇 번씩 실행하는 경우
• 자기 자동화 솔루션에서 대량 기기를 병렬 테스트할 수 있는 인프라를 구
축하는 것은 복잡하고 기술적 도전이지만, AWS Device Farm로 있으면 쉽
게 구현 가능
128. v
실제 시나리오를 재현 가능한 환경 설정 가능
• 언어/지역 선택
• 위치 정보(위경도)
• 네트워크 상황
• WiFi, Bluetooth, GPS,
NFC
• 추가 데이터
• 다른 앱 설치
139. v
보안 관련 사항
• AWS Device Farm과 모든 통신은 SSL 통해 제공
• 테스트가 끝나면 설치된 앱은 모두 제거
• 전화 번호, 추가 계정, 외부 데이터를 포함한 디바이스상의 모든 데이터 삭제
• AWS 위에 임시 저장된 앱과 파일은 자동적으로 30일 경과후 삭제
• 테스트 중 각 기기는 그 사용자가 점유
• 각 기기는 독립되어 있어 WiFi, Bluetooth 등으로 다른 기기 접속 불가
• 외부 네트워크 접속은 인터넷만 가능하고 다른 기기 접속망은 없음
• 일부 기기에만 테스트 가능 (모든 기기를 이용하려면 별도 신청 필요)
140. • 업로드할 수 있는 앱은 최대 4GB까지
• 이용 가능 기기 갯수의 상한은 없으나, 병렬 테스트 최대 5개 까지 가능
• Wi-Fi에 의한 인터넷 접속은 가능
• 통신사 연결이나 전화 발신 SMS 송신 불가
• 카메라를 통한 사진을 찍을수는 있으나 기기 설치 환경상 블랙 이미지
• 안드로이드의 경우 Google Play서비스는 있으나 실계정 연동은 안됨
• 제조 업체와 통신사의 최소 기본앱만 설치되어 있음
• PhoneGap, Titanium, Xamarin, Unity 등의 하이브리드앱도 제공
기타 참고 사항
142. v
기업 형태별 활용 사례
• 엔터프라이즈 및 대형 업체
ü 모든 모바일 비즈니스에 활용할 수 있는 플랫폼
ü 자비로 자동화 솔루션을 구축/운용할 필요 없음
ü 새로운 기기에 대한 빠른 대응 가능
• 중소 규모 업체
ü 테스트하지 못했던 기기에 대한 대응 가능
ü 수작업이 아닌 자동화를 통한 효율적 테스트 가능
• SI업체 및 컨설팅 기업
ü 외부 개발 서비스를 제공하기 위한 플랫폼 활용
ü 재사용 가능한 기술과 자산 구축을 통한 비지니스 확대
143. v
활용 로드맵
• 기존 자동 테스트 이용 혹은 계획중
• 더 많은 기기에 테스트 활용 필요
• 직접 기기 및 QA룸을 운영하고 싶지 않을 때
• → Device Farm 프레임웍 기반 테스트 진행
• 아직 테스트 자동화를 이용하지 않음
• 테스트 스크립트를 작성하는 자원 부족
• 앱 테스트를 위한 자원 부족
→ Device Farm Fuzz 테스트 진행
145. v
이용 요금
• 종량 과금
테스트에 필요한 Device Minutes에 의해서 결정
• 즉, 디바이스 사용 시간에 따라 과금
• 무료 한도:250 Device Minutes
• 이후: 1 Device Minute 0.17달러
• 정액 요금
• 1개 장치에 월 250달러
• 정액으로 디바이스 활용 가능
• 서브 스크립션을 변경하지 않아도 언제든지 수많은
Android장치에서 필요한 디바이스를 선택 가능
146. v
2개 기기 실제 정액 요금
병렬 테스트
시간
1
2
3
4
종량 요금
월간 250×2=$500
147. v
실제 기기에서
자동 테스트
안드로이드, iOS
및 Fire OS 지원
앱 및 디바이스
설정 가능
세부 테스트 결과
및 로그 분석
Amazon DeviceFarm
“클라우드를 통해 간단하게 모바일 앱 테스트 가능!”
148. • 클라우드 기반의 Android, iOS, Fire OS 실제 장치에서 테스트 진행 가능
• 주요 테스트 프레임워크 활용 가능
• 기본 탑재된 Fuzz 테스트 활용 가능
• 병렬 테스트를 통해 짧은 시간에 결과 도축
• 실제 시나리오 재현을 위한 테스트 환경 설정 가능(언어, 위치 및 기기 상태)
• 테스트 결과 확보 가능 (스크린 샷, 디바이스 로그, 성능 데이터 등)
• Jenkins 지속적 통합(CI)과 다른 워크 플로우의 일부로 테스트를 실시 가능
AWS Device Farm 요약
149. v
Amazon
Cognito
Mobile
Analytics
SNS
Mobile
Push
Free
Tier:
1
Million
push
messages
every
month
Free
Tier
1
Million
syncs/month
+
10GB
of
storage
for
Amazon
Cognito
Free
Tier:
100
Million
events
every
month
AWS 모바일 무료 서비스
hCp://aws.amazon.com/mobile
AWS
Lambda
Free
Tier
:
1M
free
requests
per
month
400,000
GB-‐
seconds
of
compute
,me
per
month
AWS
Device
Farm
Free
Tier
:
250
Device
minutes
per
month
150. 여러분의 피드백을 기다립니다!
• 공식 블로그: http://aws.amazon.com/ko/blogs/korea
• 한국어 공식 소셜 미디어
@AWSKorea
AmazonWebServices
AWSKorea
AWSKorea
‘좋아요’ 눌러주세요!