Skip to content

feat: 온보딩 직후 홈 알림 허용 모달 및 빈 시간 추천 기본값 적용 #61

Description

@haewonwon

배경

온보딩 완료 후 사용자가 처음 홈 화면에 진입할 때, 알림 허용 여부를 묻는 모달을 노출하고 선택 결과를 앱 설정에 반영해야 한다.

동시에 온보딩 직후에는 빈 시간 추천 관련 기본값을 사용자 UI 없이 내부/서버에 적용해야 한다.

이 두 가지는 목적이 다르지만, 온보딩 완료 → 홈 첫 진입 시점에 함께 처리되는 후속 플로우다.


목표

1. 알림 허용 모달 (사용자 facing)

온보딩 완료 후 홈에 처음 들어왔을 때 모달을 노출한다.

사용자 선택 결과
알림 허용 아래 3종 알림 설정 모두 ON + OS 알림 권한 요청
허용 안 함 아래 3종 알림 설정 모두 OFF

모달 카피 (Figma 기준)

  • 타이틀: 더 정확한 일정 추천을 위해 알림을내도 될까요?
  • 설명: 일정 완료 확인, 컨디션 기록, 맞춤 일정 추천 알림을 보내드릴게요.
  • 버튼: 알림 허용 / 허용 안 함

반영 대상 알림 3종

  1. 일정 종료 알림
  2. 컨디션 기록 알림
  3. 추천 일정 알림

모달은 일괄 opt-in/opt-out이다. 항목별 선택은 모달에서 하지 않는다.

이후 사용자는 설정 페이지에서 항목별 ON/OFF를 변경할 수 있어야 한다.

2. 빈 시간 추천 기본값 (silent / non-UI)

온보딩 직후 아래 값을 설정 UI에 노출하지 않고 기본값으로 적용한다.

항목 기본값
빈 시간 추천 여부 허용
추천 기준 (최소 빈 시간) 15분
제외 시간대 00:00~07:00, 22:00~24:00

예시 동작:

  • 새벽 3시 빈 시간 → 추천 안 함
  • 오전 10시 20분 빈 시간 → 추천 후보
  • 밤 11시 빈 시간 → 추천 안 함

이 값은 추천 알고리즘 규칙이며, 알림 ON/OFF와는 별개 축이다.


두 축 정리

알림 모달 빈 시간 추천 기본값
사용자 노출 ✅ 홈 첫 진입 모달 ❌ UI 없음
설정에서 변경 ✅ (3종 토글) ❌ 스펙상 온보딩 직후 고정 기본값
역할 푸시 알림 수신 여부 언제/어떤 빈 시간에 일정을 추천할지

현재 코드베이스 갭

  • 온보딩 마지막(transport-screen)에서 바로 /(tabs) 이동, 홈 첫 진입 모달 없음
  • settings-screen 알림 토글 2종만 존재 (일정 종료 / 컨디션 기록), 추천 일정 알림 없음
  • 알림 토글은 로컬 useState만 사용, API/persist 미연동
  • OS 알림 권한 요청 미구현
  • ai-recommendation 도메인/일정 추천 기준 설정 화면은 별도 존재하나, 온보딩 직후 silent 기본값(15분, 07시·2224시 제외) 자동 적용 로직 없음

작업 범위

A. 홈 첫 진입 알림 모달

  • 온보딩 완료 후 홈 최초 1회 모달 노출 조건 정의 (로컬 flag 또는 서버 상태)
  • 알림 허용 모달 UI 구현 (Figma)
  • 알림 허용 → 3종 ON + OS 알림 권한 요청 (expo-notifications 등)
  • 허용 안 함 → 3종 OFF
  • 설정 화면 알림 토글을 3종으로 확장하고 모달 결과와 동기화
  • i18n 추가

B. 빈 시간 추천 silent 기본값

  • 온보딩 완료 직후 아래 기본값 적용
    • 빈 시간 추천: 허용
    • 최소 15분
    • 제외: 00:00 ~ 07:00, 22:00 ~ 24:00
  • 저장 위치 결정 (서버 API / domain store / 기존 ai-recommendation 연동)
  • 설정 UI에는 노출하지 않음 (후속에 설정 화면으로 올라오면 별도 이슈)

C. 라우팅 연계


열린 질문

  1. 알림 3종 설정 저장소: 서버 API 있는지, 어떤 도메인/endpoint인지
  2. 빈 시간 추천 기본값: onboarding API에 포함되는지, ai-recommendation/settings API인지
  3. 모달 재노출: "허용 안 함" 후 앱 재실행 시 다시 보여줄지
  4. OS 권한 거부 시 앱 내 토글 상태 처리 (ON 유지 vs OFF 강제)
  5. recommendation-criteria-screen과 silent 기본값의 관계 (같은 store/API를 쓸지, 온보딩 직후만 seed할지)

검증

  • 온보딩 완료 후 홈 첫 진입 시 모달 1회 노출
  • 알림 허용 → 3종 ON + OS 권한 요청
  • 허용 안 함 → 3종 OFF
  • 설정 페이지에서 3종 개별 토글 변경 가능
  • 온보딩 직후 빈 시간 추천 기본값(15분, 0 ~ 7시·22 ~ 24시 제외)이 내부/서버에 적용됨
  • 모달은 알림만 건드리고, 추천 기준 기본값은 별도로 적용됨
  • npm run type-check
  • npm run lint

완료 조건

  • 온보딩 직후 홈 첫 진입 알림 모달이 스펙대로 동작한다.
  • 알림 3종은 모달에서 일괄 설정되고, 이후 설정 페이지에서 항목별 수정 가능하다.
  • 빈 시간 추천 기본값은 UI 없이 온보딩 직후 적용된다.
  • 알림 설정과 추천 알고리즘 기본값이 서로 다른 책임으로 분리되어 있다.

관련 파일 (예상)

  • src/screens/home/home-screen.tsx
  • src/screens/onboarding/transport-screen.tsx
  • src/screens/settings/settings-screen.tsx
  • src/screens/settings/recommendation-criteria-screen.tsx (연계 검토)
  • src/domains/ai-recommendation/*
  • src/translations/ko.ts

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions