# Notification, Focus, And Attention Policy

## 목적

메신저는 메시지를 보내는 도구이기 전에 사용자의 집중을 훼손하지 않아야 하는 작업 환경 도구다.  
이 문서는 `알림을 많이 주는 메신저`가 아니라 `중요할 때만 정확히 개입하는 메신저`를 만들기 위한 기준을 정의한다.

업무적 소통에서는 방해를 줄이고, 친근한 대화에서는 부담 없이 반응할 수 있어야 한다.  
같은 제품 안에서 두 맥락을 동시에 만족시키려면 알림의 양이 아니라 알림의 `맥락 적합성`, `예상 가능성`, `복귀 용이성`이 좋아야 한다.

## 문제 정의

현재 다수의 메신저는 다음 패턴에서 사용자의 피로를 만든다.

- 알림이 대화 단위가 아니라 메시지 단위로 과도하게 울린다.
- 중요한 업무방과 사적인 잡담방이 같은 세기로 끼어든다.
- 지금 왜 알림이 온 것인지 설명되지 않는다.
- 무음 처리 후 다시 복귀하는 루프가 불편하다.
- 알림을 눌러도 정확한 메시지 위치와 문맥으로 복귀하지 못한다.
- 사용자는 결국 앱 전체를 꺼 버리거나 OS 수준에서 강제 차단한다.

KoTalk는 알림 정책을 기능 부속물이 아니라 핵심 UX 시스템으로 취급한다.

## 핵심 원칙

### 1. 알림은 메시지 수가 아니라 사건 단위로 묶는다

- 같은 대화에서 짧은 시간에 연속 메시지가 올 경우 묶음 알림으로 축약한다.
- 업무 시간대에는 `방금 4개의 새 메시지`보다 `회의방에서 결론 요청` 같은 요약형 표현을 우선한다.
- 모바일 웹과 안드로이드에서는 잠금 화면 공간이 제한되므로 더 강한 요약 정책을 쓴다.

### 2. 사용자가 지금 무엇을 하고 있는지 우선 고려한다

- 현재 보고 있는 대화에서는 새 알림 배너를 띄우지 않는다.
- 전체 화면 공유, 발표, 영상회의, 게임, 집중 모드 상태일 때는 개입 강도를 낮춘다.
- 데스크톱은 활성 창, 팝아웃 창, 백그라운드 상태를 기준으로 정책을 달리한다.

### 3. 중요도는 보낸 사람보다 맥락으로 계산한다

- 즐겨찾기 대화, 멘션 포함, 할 일 요청, 파일 검토 요청, 일정 직전 메시지는 상향 조정한다.
- 단순 이모지 연속, 짧은 잡담, 이미 읽은 스레드의 비핵심 답글은 하향 조정한다.
- 업무용 태그가 붙은 방이라도 모든 메시지를 고중요로 보지 않는다.

### 4. 무음은 죄책감 없이 쉽게 걸고, 쉽게 푼다

- 한 번 탭으로 `1시간`, `오늘만`, `이번 회의 중`, `계속`을 바로 선택한다.
- 무음 상태는 리스트에서 은은하지만 명확하게 보인다.
- 무음 해제는 설정 깊숙한 곳이 아니라 대화 헤더에서 바로 가능해야 한다.

### 5. 알림은 반드시 정확한 복귀를 보장한다

- 알림에서 진입하면 해당 메시지, 답글 묶음, 관련 파일 카드, 읽지 않은 구간까지 바로 내려간다.
- 복귀 후에는 `왜 이 알림이 왔는지`를 1초 안에 이해할 수 있어야 한다.

## 제품별 정책

## 데스크톱

- 우선 채널: 토스트 알림, 작업 표시줄 배지, 시스템 트레이, 창 제목 배지, 팝아웃 창 강조
- 우선순위:
  - 1단계: 직접 멘션, 할 일 지정, 승인 요청, 회의 직전
  - 2단계: 즐겨찾기 대화의 새 메시지
  - 3단계: 일반 대화의 묶음 알림
- 다중 창 사용 시:
  - 이미 팝아웃으로 열려 있는 대화는 해당 창만 약하게 강조
  - 메인 창이 최소화되어 있으면 토스트와 트레이 배지 동시 사용
- 업무 모드:
  - 상태를 `집중`, `회의`, `자리 비움`으로 둘 수 있다.
  - `집중`에서는 오직 1단계 알림만 실시간 노출
  - 나머지는 집중 종료 후 요약 카드로 한 번에 복귀

## 모바일 웹

- 우선 채널: 앱 내부 배너, 브라우저 푸시, 홈화면 배지 유사 표현
- 브라우저 권한 허용 이전에는 강한 푸시 유도를 하지 않는다.
- 세션이 불안정한 모바일 브라우저 특성상 `놓친 대화 묶음` 복귀가 더 중요하다.
- 상단 배너는 짧고 한 줄이어야 하며, 읽기와 전송 중일 때는 시야를 가리지 않아야 한다.

## 안드로이드

- 시스템 알림 채널을 `업무 중요`, `일반 대화`, `무음 요약`, `시스템`으로 분리한다.
- 대화별 맞춤 알림음을 허용하되, 기본값은 최대한 차분하게 유지한다.
- 빠른 답장 액션은 텍스트 한 줄과 자주 쓰는 반응 두 개 수준에서 시작한다.
- 야간 시간대에는 진동과 화면 깨움 강도를 낮춘다.

## 사용자 장치

### 방 단위 집중 도구

- `핀`: 좌측 상단 노출과 함께 알림 우선순위 상향
- `무음`: 우선순위 하향, 기본 리스트 내 존재감 축소
- `나중에 보기`: 읽음 처리 없이 일정 시간 후 재부상
- `업무방`: 할 일/파일/링크 우선 정렬
- `친한 대화`: 반응, 사진, 빠른 답장 우선

### 하루 흐름 단위 도구

- 오전 업무 시작 시 `오늘 다시 볼 대화` 자동 묶음
- 점심 이후 `놓친 업무 알림 요약`
- 퇴근 후 `사적 대화 우선` 또는 `모두 조용히`
- 휴가/출장 모드 시 자동 응답과 알림 하향

## UI 원칙

- 흰색 원톤 UI 안에서 알림은 색보다 구조로 구분한다.
- 빨간색 배지는 최소화하고, 숫자보다 상태 의미가 먼저 보여야 한다.
- 읽지 않음은 굵기, 점, 구획선으로 표현하고 과도한 색 점유를 피한다.
- 토스트는 둥근 그림자 카드보다 플랫한 머티리얼 시트에 가깝게 간다.
- 문구는 짧고 명확해야 한다.
  - 좋은 예: `회의방에서 나를 언급했어요`
  - 나쁜 예: `새 메시지가 도착했습니다`

## 업무적 소통에서 체감 효율을 높이는 장치

- `승인 요청`, `검토 필요`, `읽기만 하면 됨` 같은 라이트 태그를 메시지에 붙일 수 있다.
- 태그가 붙은 메시지는 알림 정책도 달라진다.
- 회의 10분 전에는 관련 대화만 상단으로 부상한다.
- 파일이 첨부된 후 아무 반응이 없는 경우, 재알림보다 `미확인 파일` 카드로 정리해 보여 준다.
- 여러 방에서 동시에 호출될 때는 대화별 알림 대신 `지금 처리해야 할 3건` 식 요약 패널을 우선한다.

## 친근한 소통에서 체감 효율을 높이는 장치

- 친한 대화는 장문 알림보다 사진, 반응, 답장 맥락이 더 중요하다.
- 같은 사람의 짧은 연속 메시지는 말풍선 흐름으로 묶어 보여 주고 알림도 한 번만 준다.
- 가벼운 이모지 반응은 무음이 기본이다.
- 생일, 약속 당일, 사진 공유 등 정서적 사건은 별도 요약 카드로 우아하게 보여 준다.

## 실패 시나리오와 복구

- 토큰 만료로 알림 진입이 실패하면 로그인 화면으로 보내지 않고 `세션 복구 후 이어서 열기`를 먼저 시도한다.
- 대화가 삭제되었거나 접근 불가해진 경우 이유를 설명하고 인접한 안전 화면으로 보낸다.
- 네트워크 불안정 상태에서는 알림 클릭 후 로딩 스켈레톤과 마지막 캐시를 먼저 보여 준다.
- 알림을 누른 직후 실제 메시지까지 점프하지 못하면 사용자 신뢰가 크게 무너진다. 이 경로는 최고 우선 QA 대상이다.

## 측정 지표

- 알림 클릭 후 정확한 메시지까지 도달하는 비율
- 불필요한 알림으로 평가된 비율
- 무음 설정 후 다시 해제되는 비율
- 집중 모드 사용자의 업무방 응답 속도 변화
- 대화별 알림 해제 후 앱 전체 이탈률 감소
- 알림에서 진입한 사용자의 5분 내 재이탈률

## MVP에서 반드시 들어갈 것

- 대화별 무음
- 묶음 알림
- 즐겨찾기/멘션 기반 우선순위
- 알림에서 정확한 대화/메시지 복귀
- 모바일 웹과 데스크톱 공통의 `놓친 대화 요약`

## 후속 단계

- 캘린더/회의 상태 연동
- 사용자별 집중 패턴 학습
- 팀 단위 알림 프리셋
- 안드로이드 웨어러블 요약 알림

## 완료 기준

- 사용자가 `이 앱은 나를 계속 흔드는 앱`이 아니라 `필요한 순간에만 정확히 부르는 앱`이라고 느껴야 한다.
- 업무 시간대에 알림 자체를 꺼 버리지 않아도 견딜 수 있어야 한다.
- 친한 대화와 업무 대화의 개입 강도가 명확히 구분되어야 한다.
