이전 직장을 다니면서 야근하고 야식먹고, 일주일에 술을 3~4번씩 먹다가 살이 10kg나 찐적이 있다. 엄청 후회하고 운동을 시작했는데, 먹는 양이 줄지 않아서 다이어트에 실패한 경험이 있다. 나중에 퇴사를 하고 집에서 놀면서 살을 빼려고 했는데, 운동하기는 귀찮고 해서 간헐적 단식을 했고 2개월 사이에 8kg나 빠졌었다. 문제는 지금 다시 살이 쪘다는 것이다. 그래서 다시 간헐적 단식을 하려 하는데, 요즘 PM 공부를 하느라 워낙 스트레스를 많이 받아서 나 혼자의 의지로는 힘들거 같다는 판단이 섰다. 그래서 '단식 추적기' 앱을 받아서 실천하려고 하는데, 마침 해당 앱을 오늘 과제의 주제로 사용할 수 있을거 같았다.
'단식 추적기'의 고객 행동 Flow Chart
아래와 같이 단식추적기를 사용하는 유저가 앱을 설치하는 시점부터 사용(경험)하는 단계까지 어떤 행동을 하게 되는지 flow chart를 이용해 보여주려 한다. '가입 및 설정 단계' 에서는 순차적으로 세부 단계를 통해 고객의 현재 상태 파악하기 위한 데이터 수집을 진행하고, 목표와 단식 플랜을 설정한다. '경험 단계'는 크게 가지 기능으로 분류 되는데, '단식' 항목을 제외하면 모두 부가적인 기능들이다.

위 flow chart가 잘 안보일 경우 아래 링크를 통해 확인 부탁드린다.
'단식 추적기'의 고객 행동에 따른 데이터 이동
유저가 해당 앱을 사용하면서 실행하는 여러 행동을 포괄적으로 묶어 '데이터 입력'과 '데이터 요청'으로 구분하여 유저한테는 어떤 화면이 보이고, 유저가 입력하는 데이터가 어떻게 전송되고 도착하는지 설명하려 한다.
1. UI 단계 (데이터 입력)
유저가 사용하기 편리한 GUI를 통해 데이터를 입력한다. 아래는 목표 체중을 입력하는 단계 화면이다.

2. 클라이언트 단계 (데이터 저장)
위와 같이 입력된 체중은 유저의 데이터에 추가 된다. 아래 화면의 유저 데이터에 '현재 체중 = 65kg'가 입력된 것을 확인할 수 있다.

3. 서버 단계 (데이터 전송 및 가공)
클라이언트에 저장된 유저 데이터는 앱 서버로 전송되고, 비정형 데이터는 전처리(가공) 진행 후 데이터베이스로 전송된다. 여기서 가공된 데이터는 데이터베이스의 효율성을 위해 데이터가 효율적인 형태로 변형된다고 생각한다. 아래는 내가 추측하는 가공된 형태의 데이터 예시다.
| 분류 | 가공 전 | 가공 후 |
| 성별 (카테고리 ID = 00) | 남 | 0 (남성 = 0, 여성 = 1) |
| 단식 강도 (카테고리 ID = 01) | 쉬운 | 0 (쉬운 = 0, ... , 어려운 = 4) |
| 단식 경험 여부 (카테고리 ID = 02) | 가끔 | 1 (없음 = 0, 가끔 = 1, 매일 = 2) |
4. 데이터베이스 단계 (데이터 저장)
데이터베이스는 가공된 데이터가 저장되어있으므로 아래와 같은 형태를 지니고 있지 않을까 추측해본다.
예시
김OO(User ID = 1926751)의 단식 강도 = "1926751.01.0"
김OO(User ID = 1926751)의 단식 강험 여부 = "1926751.02.1"
위와 같이 4단계를 통해 고객이 입력한 데이터가 데이터베이스에 저장되지 않을까 싶다. 그리고 고객이 특정 데이터를 요청한 경우, 위 4단계를 반대로 진행하면 된다고 생각한다. 물론 중간에 유저가 볼 수 있는 형식으로 데이터 포맷 전환도 이뤄져야 한다. 이해를 돕기 위해 데이터 이동 경로를 도식화하였으니 아래 파일을 참고 바란다.