Oxygen Cherry - Pencil
본문 바로가기

PM 부트캠프(22.12.12~23.03.15)/과제

Sleep Tracker의 데이터 구조가 어떻게 작동할지 짧은 고객 행동으로 추정해보자 (W6D1)

728x90

과제 ) 본인이 뽑은 프로덕트 개발적인 면을 생각하기

더보기
  1. 오늘 강의를 바탕으로 본인이 관심 있는 프로덕트에서 고객이 할 수 있는 행동에 대한 Flow Chart를 작성해 봅시다.
  2. 1번에서 선택한 행동 시 UI, 클라이언트, 서버, DB가 각각 어떻게 보이고 작동할지 예상하여 적어 봅시다.

과제 하시기 전에 확인해주세요.

Flow Chart 작성에 많은 시간을 할애하지 마세요. Excel, Word, PPT, Figma 등을 사용하게 간단하게 작성합시다. 어떤 행동을 작성할지에 대해서는 본인이 알아서 정하되,  왜 이런 행동을 작성하기로 하였는지에 대해서 과제에서 드러내 주세요. 오늘 과제가 완벽할 필요 없습니다! 본인이 이미 알고 있거나 배운 것을 기반으로 내용을 정리하여 과제를 완성하는 것이 더 중요합니다. W7D4까지 PMB에서 PM에게 필요한 개발 지식 커리큘럼이 끝나고 다시 한 번 회고할 목적으로 오늘의 과제를 준비하는 것입니다. 지금은 Before&After의 Before를 작성한다고 생각해주세요. 

 

⊙ 과제의 핵심 용어(또는 이론)

프로그램을 이루는 요소 
UI : 사용자가 보는 화면 
Front End - Client : ui 건축가 
Back End - Server : 보이지 않는 마술사 
Database : 프론트와 백엔드 소통을 도우며 데이터를 저장하는 시스템 

데이터 이동 흐름
UI → Client → app Server → Database → app Server → Client →UI 

 

 

따라서~ 이 구조가 내가 선택한 서비스에서는 어떻게 작동할런지 추정해보는 게 오늘 과제다. 

 


오늘 다룰 Product

Sleep Tracker: Sleep Cycle

수면의 질을 파악하여 숙면을 돕고 상쾌한 기상을 하게 하는 앱이다. 수면 패턴을 분석, 품질을 평가하여 통계와 분석을 해준다. 얕은 잠과 깊은 잠, 부족한 수면 시간을 분석해준다. 

- 수면 전 메모를 통해 커피 마시기, 스트레스, 통증, 야식 같은 이벤트가 수면의 질에 어떤 영향을 미치는지 확인 가능 
- 자는 동안 때때로 녹음을 해주어 코골이 탐지 가능 등 

이름 채널 분야 단계 시장 상황 출시 국내외
수면 추적기 모바일 어플 수면 관리(건강) ? ? 2020 국외

 

 

▼ 프로덕트 링크

더보기

링크1: 구글 스토어 

링크2: 구글 스토어에 연결된 개발자 페이지. 2020년 8월 26일에 마지막으로 업데이트된 개인정보약관이 있음 

 

▲ 링크를 구하려 했던 흔적들

 - 개인정보약관 최신 버전을 pc로 보고 싶었음  

coolappsteam: 개인정보정책의 당사 이메일 앞부분 

fasting app group: 구글 스토어 개발자 명

coolapps dev: 공식 사이트 로고

leap fitness: 앱 메인화면 소제목

emobistudio: 랜딩페이지 사이트 주소 뒷부분 http://sleeptracker.emobistudio.com 

 

 

 

⊙ 선정 사유 

이 어플은 최근에(저번 주?) 깔아서 사용하고 있는 어플이다. 아직 유용한지는 모르겠는데 사용이 간편해서 계속 쓰고 있다, 내가 기입한 취침, 기상 시간을 토대로 부족한 수면이 얼마나 되는지 계산해주고 수면의 질을 알려주니까 충분히 잤으니 정신 차리자고 마인드 컨트롤 할 때 써먹고 있다. 

왜, 어떻게, 무슨 정보를 수집해서 어떻게 활용하길래 내 렘 수면 시간이 어떤지, 깊고 얕은 잠이 얼마나 되는지, 어느 정도  침대에 뒤척이다 언제쯤 잠드는지 여부를 알려주는지 궁금했다. 

궁금한 김에 개인정보약관을 살펴봐야겠다고 마음 먹었다. 뭔가 수집 정보가 독특할 거 같고, 그 정보를 토대로 통계를 내주므로 이번 과제에 적합할 거라 생각했다. 내 생각에는 이번 과제는 데이터의 흐름을 추정해보는 게 하나의 관건 같다. 

 

 

 

▼ 선택하지 않은 것... 

 

하루조각 개인정보방침

건강 정보 조회 • 수면정보(수면일시, 수면시작시각, 수면종료시각)
• 걸음 수 (걸음날짜, 걸음 수)
※ IOS 사용자는 Apple 헬스 데이터를 수집하며, AOS 사용자는 하루조각에서 자체적으로 수집합니다.
※ 정보주체는 단말기 설정을 변경함으로써 건강정보 수집을 차단할 수 있습니다.

 

마이데이터 기반 서비스라서 하면 괜찮겠다 싶었는데 안한 이유는 

얻어가는 정보를 정확히 어떻게 하는 건지 그냥 매번 잘 때마다 눌러야 하는건지 확실히 모르는데다가 

또한 내가 안써봤기 때문에 작성할 수가 없었다. 

 

근데 차라리 이걸 할걸... 이게 더 간단할 거 같고 어쩌면 더 배울 게 있었을텐데 

쉬운 과제를 내주면 빨리 하고 다른 과제를 보충할 생각을 해야지 

엇디하야 어려운 길로 스스로 들어가는가 중생이여 

 

 


 

| Flow Chart

1. 데이터 동기화 할 때, 구글 계정의 정보를 앱 서버에 저장하고, 로컬 장치에 있는 수면 시간 등의 정보를 앱 서버에 전달

2. 일반 실행 시, 수면 시간과 노이즈 데시벨 로그를 로컬 장치에 저장하여 수면 패턴 분석

 

 

두 가지 행동에 대한 플로우 차트를 그려보았다. 

① 수면을 기록하는 행위: 실행 후 메인화면의 '지금 취침'을 누르면 되는 간단한 작업  

② 데이터를 백업하는 행위: (최초 1회) 구글 계정을 연동, 동기화 새로고침 

 

굳이 왜 두 개나...

구글 계정을 연동할 때 수집하는 정보는 약관을 참조하였다. 하단 설명에 깜빡하고 생략한 거 같아서 덧붙임. 

 

 

⊙ 데이터 수집 근거

앱 내부 설정 - 개인정보정책을 살펴보았다. 

 

필수 수집: 이메일주소, 이름, 성씨, 전화번호, 성별, 암호, 사용량(Usage), Health 데이터

선택: 체중, 키, 체온, 월경 주기, 증상, 건강(성 활동 포함) 및 관련 활동에 대한 기타 정보.

 

자체 회원가입이 없던데 어떻게 수집한다는 말인지, 체중이랑 월경 주기가 쓰이는 요소가 없던데 어디서 언제 수집한다는 건지 모르겠다. 

 

[수면 데이터]

수면 정보(취침 및 기상 시간, 소음 크기 등), 분석, 통계, 오디오(수면 시간 중 일부 녹음)는 고객 장치에 로컬로 저장이 됨. 

계정에 동기화를 하거나, 피드백 이메일을 보낼 때 취침 및 기상 시간과 소음 데시벨 로그(Noise decibel value logs)는 수집할 수 있음. 설정에서 데이터 삭제를 클릭할 경우 업로드한 내용까지 모두 삭제됨. 

 

 

 

그 뒤에는

  • 소셜 로그인 시 그 계정에 있는 개인 데이터 몇을 볼 수 있다는 내용
  • Apple Health Kit나 Google Fit과 연동할 수 있음
    • 체중, 체온, 소모 칼로리, 심박수, 걸음 수/거리 및 건강에 대한 기타 데이터를 가져옴
  • 개인정보를 사용하는 경우에 대한 설명 등이 있다. 

 

▼ 개인정보 공유에 관한 원문 (안읽음)

더보기

We may share your personal information in the following situations:

With Service Providers: We may share Your personal information with Service Providers to monitor and analyze the use of our Service, to show advertisements to You to help support and maintain Our Service, to advertise on third party websites to You after You visited our Service, for payment processing, to contact You.

Forums Cookies (Webview browser cookies) - Forum Cookies generally are used to deliver or optimize our services, to communicate with users or manage their forum accounts, to develop content, or for the purposes of research and analysis. you may refuse to accept browser cookies by activating the appropriate setting. However, if you select this setting you may be unable to access certain parts of our services.
Third-Party Advertisers - We may use third-party advertising companies to serve ads when you visit the Application. These companies may use information about your visits to the app that are contained in cookies in order to optimize the performance of the marketing campaigns and provide ads about goods and services of interest to you. We NEVER shares any data you are tracking in the app (e.g. when you get your Personal Data) with third-Party Advertisers.
Analytics - We use third party analytics tools, Google Analytics, to help us measure traffic and usage trends for the Service. Google Analytics collects information such as device, location and app usage information. We may use the information get from Google Analytics only to customize and personalize your App experience for statistical purposes and analytics.
For Business transfers: We may share or transfer Your personal information in connection with, or during negotiations of, any merger, sale of Company assets, financing, or acquisition of all or a portion of our business to another company.
With Affiliates: We may share Your information with Our affiliates, in which case we will require those affiliates to honor this Privacy Policy. Affiliates include Our parent company and any other subsidiaries, joint venture partners or other companies that We control or that are under common control with Us.
With Business partners: We may share Your information with Our business partners to offer You certain products, services or promotions.
With other users: when You share personal information or otherwise interact in the public areas with other users, such information may be viewed by all users and may be publicly distributed outside. If You interact with other users or register through a Third-Party Social Media Service, Your contacts on the Third-Party Social Media Service may see Your name, profile, pictures and description of Your activity. Similarly, other users will be able to view descriptions of Your activity, communicate with You and view Your profile.

 

▼ 서비스 사용 시 자동으로 수집되는 사용 데이터에 대한 원문 (안읽음)

더보기

Usage Data
Usage Data is collected automatically when using the Service.

Usage Data may include information such as Your Device's Internet Protocol address (e.g. IP address), browser type, browser version, the pages of our Service that You visit, the time and date of Your visit, the time spent on those pages, unique device identifiers and other diagnostic data.

When You access the Service by or through a mobile device, We may collect certain information automatically, including, but not limited to, the type of mobile device You use, Your mobile device unique ID, the IP address of Your mobile device, Your mobile operating system, the type of mobile Internet browser You use, unique device identifiers and other diagnostic data.

We may also collect information that Your browser sends whenever You visit our Service or when You access the Service by or through a mobile device, below list can provide a non-exclusive list of the contents of Usage Data:
Hardware model; Information about operating system and its version;
Screen size and density; Language and country; Unique device identifiers (e.g. IDFA);

Time zone; Device mute status (related to reminder function)


In order to provide a better user experience, we have integrated data statistics tools in the App, they won't collect users’ health data or privacy data and are only used for CRASH targeting and AB-testing for new features and design, The details are as follows:
Device information, Screen Size, OEM Name, Model, Device system information, OS Name, OS Version, OS Build, Time Zone, System Language, Carrier Country, Carrier Name, Location information, Locale, Country Area, Application information, App Name, App Build, APP Version Number, SDK Name, SDK Version

 


 

| UI, 클라이언트, 서버, DB 간 작동 분석

UI ─ 버튼 클릭 → Client  ─ 내 수면 정보와 현재 시간 → app Server ─ 야 저장해! → Database ─ ㅇㅋ 했음. 현재 시간→ app Server ─ 현재 시간 표시해! → Client ─ ㅇㅋ 했음 →UI

 

⊙ 데이터를 백업하는 경우 - 예전에 로그인한 전적이 있을 때 

client (고객 스마트폰)에 저장된 수면 정보 

 

1. client(고객 스마트폰)에 사용 데이터가 저장되어 있음

  • 오디오 녹음 
- 소음 데시벨 로그, 오디오 클립
  • 취침 및 기상 시간
  • 통계 및 분석 데이터
  • 수면 메모
  • 그 외 설정값(asmr 생성 등)

2. client에서 앱 서버로 일부 데이터를 전송 

  • 새로고침 일자와 시간 
  • 소음 데시벨 로그
  • 취침 및 기상 시간
  • 통계 및 분석 데이터, 수면 메모, 그 외 설정값도 함께 저장되는지는 정확한 확인 필요 
    ※ 최종 수정일이 언제인지 모르는 앱 내부 개인정보처리방침에서는 위에 두 가지만 저장된다고 표시되어 있음. 

3. 앱 서버에서 데이터 베이스로 데이터를 전송

5. 데이터 베이스가 앱 서버로 '새로고침 일자와 시간' 정보를 반환 

6. 앱 서버가  '새로고침 일자와 시간' 를 ui에 띄우라고 명령 

7. 데이터가 다시 client로 이동

8. client가  '새로고침 일자와 시간' 데이터를 출력하여 ui에 마지막 동기화 시간이 현재로 수정되어 표시됨 

 

 

다른 액션일 때, 최초 로그인할 때는 제3자인 구글에서 여러 정보(이름, 이메일 주소, 연락처 목록 등 이미 연결된 데이터)를 전달받아서 데이터베이스에 고유값으로 넣고 그중에 이메일 주소만 빼내어 클라이언트에 전달, ui로 표현하는 과정이 추가될 듯하다. 

 

 

 


여담

<질문 3가지> 

다른 액션일 때, 새로 로그인할 때는 제3자인 구글에서 정보를 전달 받아서 데이터베이스에 고유값으로 넣고 그중에 프로필 이미지랑 이메일 주소만 빼내서 클라이언트에 전달, ui로 표현하는 과정이 추가될 듯하다.

 

근데 고객의 허락을 받고 제3자한테서 정보를 받아올 때는 어떻게 표현해야 한단 말인가?? 

마이데이터 서비스의 경우에는? 

 

수면 보고서를 볼 때는, 기록된 데이터로 프로그래밍이 분석을 해주는 거겠지만 로컬에 저장된다니까 이런 구조를 생각해보는 사례랑은 거리가 멀겠지? 

 

로그인 정보는 기본키로 쓰기 위해서 받는 것인가? 당연하겠는데 그럼 기본키로 쓰는 관계형 데이터 베이스냐고 추측하면 너무 나간 거겠지? 그러면 노sql에서는 계정 정보를 어떻게 저장하는 거쥐? 

 

-- 

Third-Party = 타사 

 

과제를 했지만 여전히 풀리지 않았다

도대체 어떻게 수면 분석을  해주는 거냐? 

미세한 소리 변화로 렘 수면인지 아닌지 알 수 있는 건가?? 

찾아봐야겠다... 일단 자고 ㅇ_ㅇ;;


분석 참고 글

 

 

 

 


W6D1 [코드스테이츠 PMB 16기] 과제

데이터 구조 작동 추정

 

 

 

728x90