# 21. Core User Journeys And Task Time Budget

## 문서 목적

이 문서는 `KoTalk`의 핵심 UX를 기능 목록이 아니라 `반복 사용 장면`으로 정의한다.  
사용자가 제품을 평가하는 기준은 화면 수가 아니라, 자주 하는 일이 얼마나 짧고 덜 불안한가에 있다.

특히 이 문서는 아래 질문에 답하도록 설계한다.

- 처음 들어온 사용자가 얼마나 빨리 첫 메시지를 보낼 수 있는가
- 다시 들어온 사용자가 얼마나 빨리 끊긴 맥락을 회복하는가
- 업무 사용자가 얼마나 빨리 급한 방을 찾고 정리하는가
- 친근한 대화 사용자가 얼마나 부담 없이 들어오고 나갈 수 있는가
- 실패가 발생했을 때 얼마나 쉽게 복구되는가

## 핵심 제품 원칙

- 메신저의 본질은 `대화`, `정리`, `복귀`, `회복`이다.
- 반복 사용 루프는 설명보다 짧아야 한다.
- 사용자는 메신저를 배울 생각이 없다. 익숙한 구조 안에서 더 빨라졌다고 느껴야 한다.
- 시간 예산은 디자인 제약이다. 기획에서 허용하지 않은 지연은 구현에서도 허용하지 않는다.
- 업무와 친근한 대화는 같은 제품 안에서 공존하지만, 성공 기준은 다르다.

## 핵심 여정 목록

이 제품이 반드시 강해야 하는 핵심 여정은 아래 10개다.

1. 첫 가입 후 첫 메시지 전송
2. 앱 재실행 후 마지막 대화 복귀
3. 출근 직후 안읽음 정리
4. 회의 중 빠른 확인 답장
5. 긴 메시지 작성 중 앱 전환 후 복귀
6. 전송 실패 후 같은 맥락 안에서 재시도
7. 파일 또는 링크 재발견
8. 멀티 윈도우로 두 대화 병행
9. 외부 이동 중 모바일 웹으로 빠른 응답
10. 하루 마감 시 안읽음 0 만들기

## 시간 예산 프레임

시간 예산은 “좋으면 좋다” 수준의 희망 사항이 아니다.  
아래 수치를 초과하면 UX가 느리다고 본다.

| 여정 | 목표 시간 | 허용 최대 | 핵심 위험 |
|---|---:|---:|---|
| 첫 가입 -> 첫 메시지 | 30초 | 60초 | 가입 설명 과다, 첫 대화 미선택 |
| 재실행 -> 마지막 대화 복귀 | 2초 | 5초 | 세션 만료, 부트스트랩 실패 |
| 안읽음 정리 시작 | 3초 | 8초 | 필터 부재, 목록 정리 부족 |
| 회의 중 확인 답장 | 15초 | 30초 | 키보드/입력창 마찰, 탐색 지연 |
| 실패 메시지 재전송 | 5초 | 15초 | 인라인 재시도 없음 |
| 파일/링크 재찾기 | 10초 | 30초 | 검색/보관 구조 미비 |
| 대화 팝아웃 | 2초 | 5초 | 멀티 윈도우 부재 |
| 모바일 웹 링크 진입 | 3초 | 8초 | 중간 랜딩, 뷰포트 깨짐 |

## 여정 1. 첫 가입 후 첫 메시지 전송

### 성공 정의

- 사용자는 이름과 초대코드만 넣고 시작할 수 있어야 한다.
- 서버 주소, 앱 버전, 장치명 같은 기술 정보는 기본 흐름에 나오지 않아야 한다.
- 가입 직후 빈 대화 목록에서 멈추면 안 된다.
- 첫 메시지 전송 전까지의 화면 수는 최소여야 한다.

### 권장 흐름

1. 앱 또는 웹 실행
2. 이름 입력
3. 초대코드 입력
4. `대화 시작` 또는 `바로 시작`
5. 첫 대화 자동 열림
6. 입력창 포커스
7. 첫 메시지 전송

### 금지 요소

- 가입 직후 사용자가 직접 방을 선택해야 하는 흐름
- 고급 설정이 기본 필드처럼 보이는 구성
- 설명 카드가 입력보다 시선을 강하게 빼앗는 구성
- 첫 화면에서 피드형 콘텐츠를 먼저 보여 주는 구조

### KPI

- 첫 메시지 완료율
- 가입 포기율
- 가입 화면 체류 시간
- 고급 설정 진입률

## 여정 2. 앱 재실행 후 마지막 대화 복귀

### 성공 정의

- 사용자는 “다시 들어왔는데 바로 이어진다”를 느껴야 한다.
- 로그인 만료, 재연결, 초기 동기화는 사용자에게 과도하게 보이지 않아야 한다.
- 복귀 후 마지막 읽음 위치와 초안이 남아 있어야 한다.

### 권장 흐름

1. 앱 재실행
2. 저장된 세션 확인
3. 액세스 토큰 재검증 또는 조용한 재발급
4. 마지막 대화 자동 열림
5. 마지막 읽음 위치와 초안 복구

### 실패 시 기대 UX

- 세션 만료 시 곧바로 가입 화면으로 보내지 않는다.
- 먼저 `이 기기에서 계속 사용`과 같은 복구 액션을 제공한다.
- 복구가 실패해도 초안과 최근 대화 맥락은 최대한 보존한다.

### KPI

- 세션 복구 성공률
- 재실행 후 첫 상호작용까지 시간
- 세션 오류로 온보딩으로 되돌아간 비율

## 여정 3. 출근 직후 안읽음 정리

### 성공 정의

- 사용자는 타이핑 없이 급한 방과 급하지 않은 방을 구분할 수 있어야 한다.
- 정리 전에 읽어야 할 대상이 무엇인지 목록만 보고 판단 가능해야 한다.
- 전체 대화 수가 많아도 `오늘 처리할 것`이 먼저 보이도록 해야 한다.

### 필요한 도구

- `전체 / 안읽음 / 고정`
- 추후 `멘션`, `답장 필요`, `오늘 처리`
- 정렬 우선순위: 안읽음 > 고정 > 최신
- 마지막 메시지 미리보기 1줄
- 시간과 unread 수의 빠른 스캔

### KPI

- 안읽음 0 달성까지 걸린 시간
- 검색 없이 목록만으로 찾은 비율
- 안읽음 필터 사용률

## 여정 4. 회의 중 빠른 확인 답장

### 성공 정의

- 사용자는 15초 안에 읽고 짧게 답할 수 있어야 한다.
- 회의 중 긴 조작이나 복잡한 탐색은 금지한다.
- 조용히 보내기, 확인 완료, 나중에 답장 같은 경량 처리 도구가 필요하다.

### 권장 UX

- 모바일 웹은 한 손 조작 기준
- 데스크톱은 팝아웃 창 또는 트레이 진입 기준
- 입력창은 바로 보이고, 전송 실패 시 같은 위치에서 재시도 가능해야 한다

### KPI

- 알림 클릭 후 답장 완료 시간
- 회의 중 모드 사용률
- 조용히 보내기 또는 짧은 답장 패턴 사용률

## 여정 5. 긴 메시지 작성 중 앱 전환 후 복귀

### 성공 정의

- 작성 중 텍스트는 대화별로 자동 보존되어야 한다.
- 앱 전환, 창 이동, 네트워크 단절, 새로고침 뒤에도 초안이 남아 있어야 한다.
- 사용자는 “다시 써야 하나”를 걱정하지 않아야 한다.

### 요구 정책

- 대화별 초안 저장
- 저장 시점: 입력 멈춤 500~1000ms, 창 비활성화, 앱 종료 직전
- 복구 시점: 대화 재열기, 세션 복구 완료 직후
- 동일 대화 다중 창 충돌 정책

### KPI

- 초안 복구 성공률
- 초안 유실 제보 수
- 초안이 있는 대화 재열기 비율

## 여정 6. 전송 실패 후 같은 맥락 안에서 재시도

### 성공 정의

- 실패는 토스트가 아니라 메시지 문맥 안에서 보여야 한다.
- 실패 버블은 사라지지 않고, 재시도 액션이 같은 위치에 있어야 한다.
- 중복 전송은 자동으로 막아야 한다.

### UX 규칙

- 실패 카피는 짧고 중립적으로
- `다시 보내기`, `초안으로 되돌리기`, `삭제` 3개 액션 우선
- 네트워크가 회복되면 자동 재전송 여부를 선택할 수 있게 설계

### KPI

- 실패 후 재전송 성공률
- 전송 실패가 대화 이탈로 이어진 비율
- 중복 전송 발생률

## 여정 7. 파일 또는 링크 재발견

### 성공 정의

- 사용자는 “어제 보낸 링크”, “지난주 받은 파일”을 빠르게 찾아야 한다.
- 방 안 검색과 전역 검색이 역할을 나눠야 한다.
- 파일과 링크는 메시지 원문에만 묻혀 있으면 안 된다.

### 요구 정책

- 방별 `파일`, `링크`, `이미지` 탭
- 전역 검색에서 `메시지`, `파일`, `링크`, `사람` 분리
- 최근 공유 자산의 빠른 접근

### KPI

- 검색 성공률
- 파일/링크 재열람 빈도
- 전역 검색 사용률

## 여정 8. 멀티 윈도우로 두 대화 병행

### 성공 정의

- Windows 사용자에게는 단일 창보다 멀티 윈도우가 더 빠른 장면이 많다.
- 메인 창을 유지한 채 급한 방을 새 창으로 떼어낼 수 있어야 한다.
- 창 위치와 크기는 기억되어야 한다.

### 요구 기능

- 대화 팝아웃
- 새 창에서 검색 결과 열기
- 창별 초안/읽음 상태 동기화
- 멀티 모니터 위치 기억

### KPI

- 새 창 열기 사용률
- 멀티 윈도우 세션 길이
- 창 복귀 정확도

## 여정 9. 외부 이동 중 모바일 웹으로 빠른 응답

### 성공 정의

- 링크를 눌렀을 때 곧바로 목적 대화로 들어가야 한다.
- 목록과 대화가 동시에 보여 잘리는 레이아웃은 금지한다.
- 뒤로가기와 입력창은 항상 뷰포트 안에 있어야 한다.

### KPI

- 모바일 웹 링크 진입 성공률
- 대화 진입까지 시간
- 입력창 가시성 문제 제보 수

## 여정 10. 하루 마감 시 안읽음 0 만들기

### 성공 정의

- 사용자는 하루 끝에 정리되지 않은 항목을 한 번에 볼 수 있어야 한다.
- 읽기 완료, 나중에 보기, 보관, 고정 같은 마감 행동이 짧아야 한다.

### 요구 기능

- 오늘 안읽음 묶음 보기
- 나중에 볼 항목 보관
- 대화별 상태 요약
- 다음날 첫 진입 시 이어지는 정리 큐

### KPI

- 안읽음 0 달성률
- 다시 볼 항목 저장률
- 다음날 복귀 성공률

## 플랫폼별 시간 예산 차이

### Windows

- 검색과 멀티 윈도우가 강점이어야 한다.
- 긴 답장, 병렬 처리, 파일 재확인에서 시간 우위를 만들어야 한다.

### Mobile Web

- 첫 진입, 짧은 답장, 이동 중 확인, 링크 진입에서 강해야 한다.
- 설치 없이 빠르다는 인상이 핵심이다.

### Android

- 모바일 웹보다 더 빠른 알림 복귀와 오프라인 내성이 우위가 되어야 한다.

## 문서와 구현 연결 규칙

- 각 여정은 반드시 설계 문서와 구현 상태표에 연결된다.
- 각 여정에는 현재 상태, 목표 상태, 릴리즈 기준이 있어야 한다.
- 스크린샷은 화면만 보여 주지 말고 어떤 여정을 대표하는지 기록한다.

## 결론

이 문서의 목적은 “좋은 기능을 많이 넣자”가 아니다.  
`KoTalk`가 사용자의 시간을 실제로 아껴 주는지, 그리고 실패 상황에서도 다시 일을 시키지 않는지를 판단하는 기준을 세우는 데 있다.
