[WORKSOUT] 알림 설정
화면 정보
섹션 제목: “화면 정보”| Screen ID | Screen Title | Screen Path |
|---|---|---|
| NTF-SET-01 | 알림 설정 | /notification/settings |
마케팅 정보 수신 동의 여부를 제어하는 화면. 스위치 하나로 마케팅 수신 동의/거부를 전환하며, 이에 따라 광고성 알림의 발송 및 알림센터 노출 여부가 결정된다. OS 알림 설정으로 이동하는 바로가기도 제공한다. (구 화면 코드: HM_131_Alarm_Setting)
화면 구성
섹션 제목: “화면 구성”화면 구성 및 동작 규칙
섹션 제목: “화면 구성 및 동작 규칙”| 요소 | 기준 |
|---|---|
| 뒤로가기 | 알림센터 화면으로 이동 |
| 마케팅 수신 동의 스위치 | ON/OFF 즉시 반영 |
| 동의 상태 표시 텍스트 (동의 시) | [웍스아웃] 마케팅 정보 수신 동의 처리됨 |
| 동의 상태 표시 텍스트 (거부 시) | [웍스아웃] 마케팅 정보 수신 거부 처리됨 |
| 휴대폰 설정 이동 버튼 | OS 설정 앱의 알림 설정 화면으로 이동 |
OS별 이동 경로
| OS | 경로 |
|---|---|
| iOS | 설정 앱 > 해당 앱의 알림 설정 화면 |
| Android | 설정 앱 > 앱 정보 > 알림 설정 화면 |
마케팅 수신 동의에 따른 알림 수신 정책
섹션 제목: “마케팅 수신 동의에 따른 알림 수신 정책”마케팅 수신 동의 시
| 구분 | 처리 |
|---|---|
| 앱 PUSH 알림 | 광고성 + 비광고성 모두 발송 |
| 알림센터 표시 | 광고성 + 비광고성 모두 표시 |
마케팅 수신 거부 시
| 구분 | 처리 |
|---|---|
| 앱 PUSH 알림 | 발송하지 않음 |
| 알림센터 표시 | 비광고성 알림만 표시 |
광고성 / 비광고성 분류 기준
| 카테고리 | 알림 종류 | 분류 |
|---|---|---|
| 브랜드 소식 | 전체 | 광고성 |
| 화보 | 전체 | 광고성 |
| 응모 | 응모 공지, 응모 시작 안내 | 광고성 |
| 응모 | 당첨자 발표 알림 | 비광고성 |
| 주문 | 주문 관련 알림 전체 | 비광고성 |
| 공지 | 프로모션 관련 안내 | 광고성 |
| 공지 | 프로모션과 무관한 공지 | 비광고성 |
마케팅 정보 수신 거부 시 제외되는 광고성 알림 목록(정책 문서 기준): 브랜드소식 전체 / 화보 전체 / 응모 - 응모 공지·응모 시작 안내 / 공지 - 프로모션 안내·쿠폰 안내. 마스터 문서의 “공지 - 프로모션 관련 안내”와 정책 문서의 “공지 - 프로모션 안내·쿠폰 안내” 표현 차이는 동일 항목으로 간주하고 병합했다.
스위치 전환 처리 흐름
섹션 제목: “스위치 전환 처리 흐름”OFF → ON (마케팅 동의)
| 케이스 | 처리 순서 |
|---|---|
이미 marketingApproved = true인 경우 |
모든 카테고리(1~5) 알림 ON 설정만 수행 |
marketingApproved = false인 경우 |
1. 마케팅 수신 동의 업데이트 (marketingApproved: true) → 2. 모든 카테고리(1~5) 알림 ON 설정 |
ON → OFF (마케팅 거부)
- 마케팅 수신 거부 업데이트 (
marketingApproved: false) - 모든 카테고리(1~5) 알림 OFF 설정
처리 후 토스트 메시지
- 동의 성공:
[웍스아웃] 마케팅 정보 수신 동의 처리 - 실패:
설정 변경에 실패했습니다
에러 처리 및 예외 상황
섹션 제목: “에러 처리 및 예외 상황”| 증상 | 예상 원인 | 1차 조치 |
|---|---|---|
| 스위치 초기 상태 불일치 | 설정 조회 API 실패 | GET /v1/notification/settings 응답 확인 |
| 스위치 전환 후 토스트 미표시 | 동의 업데이트 API 실패 | PUT /v1/users/agreements 응답 확인 |
| 전환 후 광고성 알림 노출 변화 없음 | 카테고리 설정 업데이트 실패 | POST /v1/notification/settings 요청/응답 확인 |
| OS 설정 이동 실패 | OS별 딥링크 오류 | iOS/Android 각 경로 확인 |
API 연동 명세
섹션 제목: “API 연동 명세”알림 설정 조회
섹션 제목: “알림 설정 조회”- 엔드포인트:
GET /v1/notification/settings - 호출 시점: 알림 설정 화면 진입 시
- 활용 필드:
marketingApproved(스위치 초기 상태),categories[].enabled(카테고리별 ON/OFF 상태)
사용자 정보 조회 (마케팅 동의 상태 확인)
섹션 제목: “사용자 정보 조회 (마케팅 동의 상태 확인)”- 엔드포인트:
GET /v1/users/info - 호출 시점: 스위치 OFF → ON 전환 시
- 활용 필드:
marketingApproved
알림 설정 업데이트
섹션 제목: “알림 설정 업데이트”- 엔드포인트:
POST /v1/notification/settings - 호출 시점: 마케팅 수신 동의/거부 처리 후
- 요청 데이터: 카테고리 1~5 전체를
enabled: true(동의 시) 또는enabled: false(거부 시)로 설정
사용자 동의 업데이트
섹션 제목: “사용자 동의 업데이트”- 엔드포인트:
PUT /v1/users/agreements - 호출 시점: 마케팅 수신 동의 상태 변경 시 (OFF → ON 중
marketingApproved = false일 때, ON → OFF는 항상) - 요청 필드:
agreements[].type = MARKETING,agreements[].agreed = true/false
스위치 전환별 API 호출 순서
| 전환 | 케이스 | 호출 순서 |
|---|---|---|
| OFF → ON | marketingApproved = true 이미 동의 |
POST /v1/notification/settings (카테고리 1~5 ON) |
| OFF → ON | marketingApproved = false 미동의 |
PUT /v1/users/agreements → POST /v1/notification/settings (카테고리 1~5 ON) |
| ON → OFF | 항상 | PUT /v1/users/agreements → POST /v1/notification/settings (카테고리 1~5 OFF) |
미결 사항
섹션 제목: “미결 사항”| 항목 | 내용 |
|---|---|
| 광고성 알림 세부 명칭 | 마스터 문서는 “공지 - 프로모션 관련 안내”, 정책 문서는 “공지 - 프로모션 안내, 쿠폰 안내”로 세부 명칭이 다름. 동일 항목으로 병합했으나 “쿠폰 안내”가 별도 항목인지 확인 필요 |