ݺߣ

ݺߣShare a Scribd company logo
앱스토어 도전기
‘보안카드 위젯’ 개발자의
노수진
연세대학교
소개
▸ 연세대학교 경영학과 (2009. 3 ~ )
▸ SW Developer (2015. 1 ~ 2015. 11)
▸ 모바일 프로그래밍 / Entrepreneurship
(2013. 1 ~ 2015. 1)
목차
▸ 앱 소개
▸ 보안을 위해 신경 쓴 기능들
▸ 유료/무료 버전 scheme 나누기
▸ 걸어온 길
▸ 앱스토어 리뷰 관리
▸ Q & A
탶임라인
▸ 2014년 12월 17일 출시
▸ 12월 19일 ‘금융’ 부분 유료앱 1위
▸ 12월 21일 앱스토어 유료앱 8위
▸ 2015년 1월 15일 버전 1.1.0 업데이트
▸ 1월 28일 앱스토어 유료앱 2위
▸ 2016년 6월 현재, 50~100위권
탶임라인
앱 소개
보안카드 위젯
▸ 2014년… 토스, 카카오페이, 네이버페이가 없던 그 시절
▸ 계좌이체할때 반드시 거쳐야 하는 보안카드 입력을 훨씬 편하게
▸ https://www.youtube.com/watch?v=xVxYTF_uPIs
▸ 보안카드를 입력해놓고 쓰는 앱이 없었던 것은 아니었지만 iOS
8에 추가된 신기능인 Today extension을 활용한 것은 최초
보안 이슈
PRIVACY
1. iOS Keychain Overview
▸ Core Data, NSUserDefaults, plist와 같은 iOS storage의 일종
▸ key-value 형태로 사용
▸ 암호화되어 저장
▸ Keychain Group 생성 가능
▸ 사용자가 앱을 삭제해도 데이터는 보존
▸ 접근 가능 시점과 접근 권한 세부 지정 가능
▸ iCloud Drive로 백업/복원, multidevice 지원 가능
PRIVACY
Keychain Group 생성
▸ 다른 앱들이 하나의 Keychain storage를 공유
▸ Today Extension은 모체 앱과 다른 앱으로 취급
▸ 별도 샌드박스, App Id, Provisioning Profile 등
▸ 앱과 위젯이 데이터를 공유하려면 App Group / Keychain
Group 활용 필수
PRIVACY
Keychain Group 생성
PRIVACY
PRIVACY
앱 삭제후 재설치시 Passcode 뚫리는 문제
▸ 현상 : Passcode와 보안코드는 사용자
의 개인정보이기 때문에 키체인에 저
장했지만 잠금 여부는
NSUserDefaults에 저장하고 있었음.
▸ 앱 삭제후 재설치시 잠금이 풀리고 저
장되어있던 보안코드가 고스란히 노출
▸ 해결 : 키체인에 저장한 내용은 앱이
삭제되어도 남아 있기 때문에 잠금 설
정 flag도 키체인에 저장하여 앱 재설
치 시에도 보안코드 데이터 보안 유지
PRIVACY
앱 삭제후 재설치시 Passcode 뚫리는 문제
▸ 활용 : 자동 로그인 기능이 있는 앱인데 가끔 로그인이 풀리거나
로그인정보가 사라지는 현상이 있는 경우, 관련 데이터를
NSUserDefaults에 저장하고 있는지 확인
▸ 실제로 NSUserDefaults에 저장해둔 데이터가 손실되었다는 제
보 다수 (Stackoverflow)
▸ 따라서 로그인이나 잠금 관련된 중요한 데이터는 키체인에 저장
‣ 애플 공식 가이드에 따르면 키체인에 저장할 만한 데이터는 메모
리에 올려두고 사용하지 말라고 권장
PRIVACY
아이폰이 잠금 상태일때 Today Extension 차단
▸ 아이폰의 잠금 화면에서도 알림 센터를 내려서 확인할 수 있기 때
문에, 이때 보안카드가 검색이 된다면 심각한 문제
▸ 해결 방법 : 접근 가능 시점과 접근 권한 세부 지정
PRIVACY
아이폰이 잠금 상태일때 Today Extension 차단
PRIVACY
▸ 0 : success
▸ -25240~-25279, -25290~-25329
PRIVACY
▸ 권한이 없을 시점에 데이터 접근 시
발생
예)
kSecAttrAccessibleWhenUnlocked
로 저장한 데이터를 잠금 상태에서 불러
올때
PRIVACY
PRIVACY
PRIVACY
멀티태스킹 시 노출되는 앱 스냅샷 블러 처리
▸ iOS 멀티태스킹 시 마지막 VC의 상태가 스
냅샷 형태로 남아 있어서 보안코드 노출 우
려
PRIVACY
멀티태스킹 시 노출되는 앱 스냅샷 블러 처리
▸ AppDelegate.m
- applicationDidEnterBackground:
- applicationDidBecomeActive:
PRIVACY
PRIVACY
iOS 커스텀 키보드 차단
▸ iOS8 에서 처음 소개된 커스텀 키보드
▸ 키보드 앱이 유저의 모든 입력값을 알 수 있음
▸ AppDelegate.m
PRIVACY
iOS 커스텀 키보드 차단
- application: shouldAllowExtensionPointIdentifier:
BUILD SCHEME
무료버전 & 유료버전 나누기
▸ 동기 : 수익 극대화
▸ 무료버전으로 진입 장벽을 낮춰 다운로드 유도
▸ 무료버전은 은행을 1곳만 등록 가능하고 배너광고 부착
▸ 인앱결제($0.99) 후 유료버전과 완전히 동일한 기능 제공
BUILD SCHEME
무료버전 & 유료버전 나누기
▸ xcconfig 파일과 Xcode의 Scheme 기능 활용
BUILD SCHEME
▸ Base.xcconfig
BUILD SCHEME
▸ Paid.xcconfig
BUILD SCHEME
▸ Freemium.xcconfig
BUILD SCHEME
▸ xcconfig 적용
BUILD SCHEME
▸ scheme 생성
BUILD SCHEME
▸ scheme 생성
BUILD SCHEME
▸ scheme 생성
BUILD SCHEME
▸ scheme 생성
BUILD SCHEME
▸ xcconfig 적용
▸ $(xcconfig파일에서 생성한 변수명)
▸ ${xcconfig파일에서 생성한 변수명}
BUILD SCHEME
▸ xcconfig 적용
▸ Info.plist
BUILD SCHEME
▸ xcconfig 적용
▸ 앱 아이콘
BUILD SCHEME
▸ xcconfig 적용
▸ GCC PREPROCESSOR MACRO
BUILD SCHEME
▸ xcconfig 적용
▸ 매크로로 무료버전에만 배너광고 삽입
▸ 무료버전에만 사용하는 pod
다운로드 수
걸어온 길
▸ 처음으로 외부에 공개하는 데이터
▸ ‘국내용’ 앱이라는 특성상 한국 앱스토어에만 한정
▸ 유료 앱 부분에 한정
걸어온 길
▸ 2014년 12월 17일 출시, 19일 ‘금융’ 카테고리 1위, 전체 18위
▸ 또 다시 이틀 뒤 21일 전체 8위 (누적)
▸ 약 한달 뒤, 2015년 1월 28일 전체 2위 (누적)
374
681
4430
걸어온 길
▸ 1.1 버전 업데이트 시점
▸ 별로 기능 추가 한게 없는
데판매량 급 증가
‣ 이쁜 아이콘의 영향이라고
추측
▸ 처음 5위권 진입한 1월 24일 ~ 3월 3일(39일) 까지 계속 5위권
유지
▸ 5위 이내 일때 하루 평균
▸ 1일 최다 다운로드
걸어온 길
8260
211.8
330
▸ 10~30위권 유지할 때
▸ 30~100위
걸어온 길
30~50
10~20
걸어온 길
흥미로운 발견
▸ 2015년 다운로드수 그래프
▸ 힌트 : 10월 23일
걸어온 길
흥미로운 발견
▸ 2015년 다운로드수 그래프
▸ 10월 23일 아이폰 6s 국내 출시
▸ 사람들이 폰을 새로 산 후 / 바꾼 후 새 앱을 다운로드
▸ 이때를 공략해서 공격적인 마케팅 실시!
앱스토어 리뷰 관리
APP STORE REVIEWS
앱스토어 랭킹 알고리즘
▸ 전체 다운로드 수
▸ 다운로드 증가 추세
▸ 그리고.. 리뷰 평점과 retention!?
APP STORE REVIEWS
https://techcrunch.com/2013/08/23/apples-app-store-rankings-algorithm-changed-to-favor-ratings-and-possibly-engagement/
유료앱 상위 100위 앱 중
평점이 최소 4별 이상인 비율
APP STORE REVIEWS
앱스토어 리뷰 관리의 필요성
http://www.apptentive.com/blog/app-store-ratings-reviews-guide/
무료앱 상위 100위 앱 중
평점이 최소 4별 이상인 비율
최고매출 상위 100위 앱 중
평점이 최소 4별 이상인 비율
APP STORE REVIEWS
앱스토어 리뷰 관리의 필요성
http://www.apptentive.com/blog/app-store-ratings-reviews-guide/
평점 2별인 앱을 다운받을지
고려해보겠다는 비율
평점 3별인 앱을 다운받을지
고려해보겠다는 비율
평점 4별인 앱을 다운받을지
고려해보겠다는 비율
APP STORE REVIEWS
앱스토어 리뷰 관리의 어려움 SELF-SELECTION BIAS
http://www.apptentive.com/blog/app-store-ratings-reviews-guide/
부정적인 경험 후 리뷰를 남기는 비율 긍정적인 경험 후 리뷰를 남기는 비율
▸ 부정적인 경험쪽으로 bias된 유저그룹이 남긴 리뷰와 별점은 대
표성을 갖기 어려움에도 어쩔수 없다
APP STORE REVIEWS
‘보안카드 위젯’의 리뷰 관리
APP STORE REVIEWS
‘보안카드 위젯’의 리뷰 관리
ㅗㅗ
APP STORE REVIEWS
‘보안카드 위젯’의 리뷰 관리
ㅗㅗ
▸ 앱스토어 사용자들에게도 도움이 되지 않고 좋을게 없는 이런 리
뷰는 우측하단 신고 버튼 활용
APP STORE REVIEWS
‘보안카드 위젯’의 리뷰 관리
APP STORE REVIEWS
‘보안카드 위젯’의 리뷰 관리
리뷰가 아니고 욕설입니다
▸ 신고가 적합하다면 2~3일 내로 부적절한 리뷰 삭제
▸ 업데이트 직후 리뷰가 얼마 없을때는 1별 짜리 리뷰가 평균 별점
0.5~1별을 좌지우지
▸ 평균 별점 1개의 차이는 15% -> 50% -> 96%
‘보안카드 위젯’의 리뷰 관리
APP STORE REVIEWS
APP STORE REVIEWS
‘보안카드 위젯’의 리뷰 관리
정말 좋은 앱이지만 리뷰 쓰라고 강요 좀 작작해라
평가하기 싫음 안하는거지 할때마다 떠서 내가줄 별은 없다
▸ 좋은 리뷰는 기분이 좋지만 나쁜 리뷰는 개선점을 찾는데 크나큰
도움
▸ 합당한 리뷰는 받아드려서 앱을 개선
APP STORE REVIEWS
LESSON LEARNED
▸ 대대적인 UI 변화가 있었던 3월 2.0 버전 업데이트
▸ 기존 유저들의 강한 반발
전체
2.0 버전
APP STORE REVIEWS
LESSON LEARNED
▸ 별점 2.5점
▸ 급격한 변화를 지양하자
▸ 또 한편으로는…
▸ 대부분의 유저는 아무 불평없이 잘 사용하고 있을지도 모르지만
강한 불만을 표한 30명 남짓한 리뷰로 인해 낮아진 별점 때문에
다운로드가 감소하고 순위 하락
▸ 그래도 어쨌든…
▸ 개인 개발자에게는 별점이 중요하기 때문에 피드백 반영해서 업
데이트 예정
APP STORE REVIEWS
앱스토어 RATINGS & REVIEWS
▸ 앱스토어 내 경쟁이 끝없이 심해지는 요즘 앱스토어 별점은 그 어
느때보다 중요
▸ 별점과 리뷰는 앱스토어에서 내 앱이 발견되고, 유저들이 trial 해
보게 하는 중요한 역할
마무리
Q & A

More Related Content

개인 개발자의 앱스토어 도전기 (D2 오픈세미나 발표)

  • 1. 앱스토어 도전기 ‘보안카드 위젯’ 개발자의 노수진 연세대학교
  • 2. 소개 ▸ 연세대학교 경영학과 (2009. 3 ~ ) ▸ SW Developer (2015. 1 ~ 2015. 11) ▸ 모바일 프로그래밍 / Entrepreneurship (2013. 1 ~ 2015. 1)
  • 3. 목차 ▸ 앱 소개 ▸ 보안을 위해 신경 쓴 기능들 ▸ 유료/무료 버전 scheme 나누기 ▸ 걸어온 길 ▸ 앱스토어 리뷰 관리 ▸ Q & A
  • 4. 탶임라인 ▸ 2014년 12월 17일 출시 ▸ 12월 19일 ‘금융’ 부분 유료앱 1위 ▸ 12월 21일 앱스토어 유료앱 8위 ▸ 2015년 1월 15일 버전 1.1.0 업데이트 ▸ 1월 28일 앱스토어 유료앱 2위 ▸ 2016년 6월 현재, 50~100위권
  • 6. 앱 소개 보안카드 위젯 ▸ 2014년… 토스, 카카오페이, 네이버페이가 없던 그 시절 ▸ 계좌이체할때 반드시 거쳐야 하는 보안카드 입력을 훨씬 편하게 ▸ https://www.youtube.com/watch?v=xVxYTF_uPIs ▸ 보안카드를 입력해놓고 쓰는 앱이 없었던 것은 아니었지만 iOS 8에 추가된 신기능인 Today extension을 활용한 것은 최초
  • 8. PRIVACY 1. iOS Keychain Overview ▸ Core Data, NSUserDefaults, plist와 같은 iOS storage의 일종 ▸ key-value 형태로 사용 ▸ 암호화되어 저장 ▸ Keychain Group 생성 가능 ▸ 사용자가 앱을 삭제해도 데이터는 보존 ▸ 접근 가능 시점과 접근 권한 세부 지정 가능 ▸ iCloud Drive로 백업/복원, multidevice 지원 가능
  • 9. PRIVACY Keychain Group 생성 ▸ 다른 앱들이 하나의 Keychain storage를 공유 ▸ Today Extension은 모체 앱과 다른 앱으로 취급 ▸ 별도 샌드박스, App Id, Provisioning Profile 등 ▸ 앱과 위젯이 데이터를 공유하려면 App Group / Keychain Group 활용 필수
  • 12. PRIVACY 앱 삭제후 재설치시 Passcode 뚫리는 문제 ▸ 현상 : Passcode와 보안코드는 사용자 의 개인정보이기 때문에 키체인에 저 장했지만 잠금 여부는 NSUserDefaults에 저장하고 있었음. ▸ 앱 삭제후 재설치시 잠금이 풀리고 저 장되어있던 보안코드가 고스란히 노출 ▸ 해결 : 키체인에 저장한 내용은 앱이 삭제되어도 남아 있기 때문에 잠금 설 정 flag도 키체인에 저장하여 앱 재설 치 시에도 보안코드 데이터 보안 유지
  • 13. PRIVACY 앱 삭제후 재설치시 Passcode 뚫리는 문제 ▸ 활용 : 자동 로그인 기능이 있는 앱인데 가끔 로그인이 풀리거나 로그인정보가 사라지는 현상이 있는 경우, 관련 데이터를 NSUserDefaults에 저장하고 있는지 확인 ▸ 실제로 NSUserDefaults에 저장해둔 데이터가 손실되었다는 제 보 다수 (Stackoverflow) ▸ 따라서 로그인이나 잠금 관련된 중요한 데이터는 키체인에 저장 ‣ 애플 공식 가이드에 따르면 키체인에 저장할 만한 데이터는 메모 리에 올려두고 사용하지 말라고 권장
  • 14. PRIVACY 아이폰이 잠금 상태일때 Today Extension 차단 ▸ 아이폰의 잠금 화면에서도 알림 센터를 내려서 확인할 수 있기 때 문에, 이때 보안카드가 검색이 된다면 심각한 문제 ▸ 해결 방법 : 접근 가능 시점과 접근 권한 세부 지정
  • 16. PRIVACY ▸ 0 : success ▸ -25240~-25279, -25290~-25329
  • 17. PRIVACY ▸ 권한이 없을 시점에 데이터 접근 시 발생 예) kSecAttrAccessibleWhenUnlocked 로 저장한 데이터를 잠금 상태에서 불러 올때
  • 20. PRIVACY 멀티태스킹 시 노출되는 앱 스냅샷 블러 처리 ▸ iOS 멀티태스킹 시 마지막 VC의 상태가 스 냅샷 형태로 남아 있어서 보안코드 노출 우 려
  • 21. PRIVACY 멀티태스킹 시 노출되는 앱 스냅샷 블러 처리 ▸ AppDelegate.m - applicationDidEnterBackground: - applicationDidBecomeActive:
  • 23. PRIVACY iOS 커스텀 키보드 차단 ▸ iOS8 에서 처음 소개된 커스텀 키보드 ▸ 키보드 앱이 유저의 모든 입력값을 알 수 있음
  • 24. ▸ AppDelegate.m PRIVACY iOS 커스텀 키보드 차단 - application: shouldAllowExtensionPointIdentifier:
  • 25. BUILD SCHEME 무료버전 & 유료버전 나누기 ▸ 동기 : 수익 극대화 ▸ 무료버전으로 진입 장벽을 낮춰 다운로드 유도 ▸ 무료버전은 은행을 1곳만 등록 가능하고 배너광고 부착 ▸ 인앱결제($0.99) 후 유료버전과 완전히 동일한 기능 제공
  • 26. BUILD SCHEME 무료버전 & 유료버전 나누기 ▸ xcconfig 파일과 Xcode의 Scheme 기능 활용
  • 35. BUILD SCHEME ▸ xcconfig 적용 ▸ $(xcconfig파일에서 생성한 변수명) ▸ ${xcconfig파일에서 생성한 변수명}
  • 36. BUILD SCHEME ▸ xcconfig 적용 ▸ Info.plist
  • 37. BUILD SCHEME ▸ xcconfig 적용 ▸ 앱 아이콘
  • 38. BUILD SCHEME ▸ xcconfig 적용 ▸ GCC PREPROCESSOR MACRO
  • 39. BUILD SCHEME ▸ xcconfig 적용 ▸ 매크로로 무료버전에만 배너광고 삽입 ▸ 무료버전에만 사용하는 pod
  • 41. 걸어온 길 ▸ 처음으로 외부에 공개하는 데이터 ▸ ‘국내용’ 앱이라는 특성상 한국 앱스토어에만 한정 ▸ 유료 앱 부분에 한정
  • 42. 걸어온 길 ▸ 2014년 12월 17일 출시, 19일 ‘금융’ 카테고리 1위, 전체 18위 ▸ 또 다시 이틀 뒤 21일 전체 8위 (누적) ▸ 약 한달 뒤, 2015년 1월 28일 전체 2위 (누적) 374 681 4430
  • 43. 걸어온 길 ▸ 1.1 버전 업데이트 시점 ▸ 별로 기능 추가 한게 없는 데판매량 급 증가 ‣ 이쁜 아이콘의 영향이라고 추측
  • 44. ▸ 처음 5위권 진입한 1월 24일 ~ 3월 3일(39일) 까지 계속 5위권 유지 ▸ 5위 이내 일때 하루 평균 ▸ 1일 최다 다운로드 걸어온 길 8260 211.8 330
  • 45. ▸ 10~30위권 유지할 때 ▸ 30~100위 걸어온 길 30~50 10~20
  • 46. 걸어온 길 흥미로운 발견 ▸ 2015년 다운로드수 그래프 ▸ 힌트 : 10월 23일
  • 47. 걸어온 길 흥미로운 발견 ▸ 2015년 다운로드수 그래프 ▸ 10월 23일 아이폰 6s 국내 출시 ▸ 사람들이 폰을 새로 산 후 / 바꾼 후 새 앱을 다운로드 ▸ 이때를 공략해서 공격적인 마케팅 실시!
  • 49. APP STORE REVIEWS 앱스토어 랭킹 알고리즘 ▸ 전체 다운로드 수 ▸ 다운로드 증가 추세 ▸ 그리고.. 리뷰 평점과 retention!?
  • 51. 유료앱 상위 100위 앱 중 평점이 최소 4별 이상인 비율 APP STORE REVIEWS 앱스토어 리뷰 관리의 필요성 http://www.apptentive.com/blog/app-store-ratings-reviews-guide/ 무료앱 상위 100위 앱 중 평점이 최소 4별 이상인 비율 최고매출 상위 100위 앱 중 평점이 최소 4별 이상인 비율
  • 52. APP STORE REVIEWS 앱스토어 리뷰 관리의 필요성 http://www.apptentive.com/blog/app-store-ratings-reviews-guide/ 평점 2별인 앱을 다운받을지 고려해보겠다는 비율 평점 3별인 앱을 다운받을지 고려해보겠다는 비율 평점 4별인 앱을 다운받을지 고려해보겠다는 비율
  • 53. APP STORE REVIEWS 앱스토어 리뷰 관리의 어려움 SELF-SELECTION BIAS http://www.apptentive.com/blog/app-store-ratings-reviews-guide/ 부정적인 경험 후 리뷰를 남기는 비율 긍정적인 경험 후 리뷰를 남기는 비율 ▸ 부정적인 경험쪽으로 bias된 유저그룹이 남긴 리뷰와 별점은 대 표성을 갖기 어려움에도 어쩔수 없다
  • 54. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리
  • 55. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리 ㅗㅗ
  • 56. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리 ㅗㅗ ▸ 앱스토어 사용자들에게도 도움이 되지 않고 좋을게 없는 이런 리 뷰는 우측하단 신고 버튼 활용
  • 57. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리
  • 58. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리 리뷰가 아니고 욕설입니다
  • 59. ▸ 신고가 적합하다면 2~3일 내로 부적절한 리뷰 삭제 ▸ 업데이트 직후 리뷰가 얼마 없을때는 1별 짜리 리뷰가 평균 별점 0.5~1별을 좌지우지 ▸ 평균 별점 1개의 차이는 15% -> 50% -> 96% ‘보안카드 위젯’의 리뷰 관리 APP STORE REVIEWS
  • 60. APP STORE REVIEWS ‘보안카드 위젯’의 리뷰 관리 정말 좋은 앱이지만 리뷰 쓰라고 강요 좀 작작해라 평가하기 싫음 안하는거지 할때마다 떠서 내가줄 별은 없다 ▸ 좋은 리뷰는 기분이 좋지만 나쁜 리뷰는 개선점을 찾는데 크나큰 도움 ▸ 합당한 리뷰는 받아드려서 앱을 개선
  • 61. APP STORE REVIEWS LESSON LEARNED ▸ 대대적인 UI 변화가 있었던 3월 2.0 버전 업데이트 ▸ 기존 유저들의 강한 반발 전체 2.0 버전
  • 62. APP STORE REVIEWS LESSON LEARNED ▸ 별점 2.5점 ▸ 급격한 변화를 지양하자 ▸ 또 한편으로는… ▸ 대부분의 유저는 아무 불평없이 잘 사용하고 있을지도 모르지만 강한 불만을 표한 30명 남짓한 리뷰로 인해 낮아진 별점 때문에 다운로드가 감소하고 순위 하락 ▸ 그래도 어쨌든… ▸ 개인 개발자에게는 별점이 중요하기 때문에 피드백 반영해서 업 데이트 예정
  • 63. APP STORE REVIEWS 앱스토어 RATINGS & REVIEWS ▸ 앱스토어 내 경쟁이 끝없이 심해지는 요즘 앱스토어 별점은 그 어 느때보다 중요 ▸ 별점과 리뷰는 앱스토어에서 내 앱이 발견되고, 유저들이 trial 해 보게 하는 중요한 역할
  • 65. Q & A