feat: 생년월일 필드 추가 + 카카오 스코프 확장 + 채널 연동 문서

- signup.html: 수집 목적 안내 카드, 생년월일(선택) 필드, 필수/선택 배지
- app.py: /api/signup에 birthday 처리, get_or_create_user birthday 파라미터
- mileage_schema.sql: users 테이블 birthday 컬럼 추가
- dbsetup.py: 기존 DB 마이그레이션 (ALTER TABLE ADD birthday)
- kakao_client.py: scope에 phone_number,birthday,birthyear 추가
- privacy.html: 항목별 수집 목적 테이블, 필수/선택 구분, 9항 신설
- kakao-phone-request.md: 전화번호+생일 스코프 신청 사유 문서
- kakao-channel-integration.md: 채널 API 분석 및 알림톡 로드맵
- kakao-chanell-rest-api.md: 카카오 채널 REST API 원문 참고 문서

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
thug0bin
2026-02-25 10:12:41 +09:00
parent 2b3d8649ba
commit f969756caa
9 changed files with 984 additions and 36 deletions

View File

@@ -1,6 +1,20 @@
# 카카오 개인정보 동의항목 - 전화번호 수집 신청
# 카카오 개인정보 동의항목 - 추가 스코프 신청
## 수집 사유 (신청 폼에 입력할 내용)
## 요청 스코프 목록
| 스코프 | 항목 | 필수/선택 | 현재 상태 |
|--------|------|-----------|-----------|
| `profile_nickname` | 닉네임 | 필수 | 승인됨 |
| `profile_image` | 프로필 이미지 | 필수 | 승인됨 |
| `account_email` | 이메일 | 선택 | 승인됨 |
| `name` | 이름 | 필수 | 승인됨 |
| `phone_number` | 전화번호 | 필수 | **신청 필요** |
| `birthday` | 생일 (월/일) | 선택 | **신청 필요** |
| `birthyear` | 출생연도 | 선택 | **신청 필요** |
---
## 1. 전화번호 (phone_number) 수집 사유
```
청춘약국 마일리지 적립 서비스에서 고객 식별을 위해 전화번호가 필요합니다.
@@ -16,6 +30,8 @@
전화번호로 조회합니다.
3. 오프라인 연계: 약국 방문 시 포인트 사용을 위해 전화번호로
본인 확인이 필요합니다.
4. 동명이인 구분: 이름만으로는 동일인 여부를 확인할 수 없어,
전화번호가 필수적인 고유 식별 수단입니다.
[현재 상황]
전화번호를 카카오에서 받지 못하는 경우, 카카오 로그인 후
@@ -30,22 +46,60 @@
- 제3자 제공: 없음
```
## 2. 생일/출생연도 (birthday, birthyear) 수집 사유
```
청춘약국 마일리지 서비스에서 생년월일 정보를 선택적으로 수집하여
맞춤형 서비스를 제공하고자 합니다.
[생년월일이 필요한 이유]
1. 생일 기념 이벤트: 회원 생일에 마일리지 포인트 2배 적립 이벤트를
제공합니다. 생일 당일 구매 시 기본 적립률(3%) 대신 6%를 적립합니다.
2. 연령대별 맞춤 건강 정보: 구매 이력과 연령대를 결합하여
맞춤 건강 정보 및 추천 제품을 안내합니다.
(예: 50대 이상 → 관절/영양 보충제 정보, 20~30대 → 피부/다이어트 관련)
3. 서비스 통계: 연령대별 이용 현황 분석으로 서비스 품질을 개선합니다.
[선택 항목]
생년월일은 선택 수집 항목이며, 미제공 시에도 마일리지 적립·조회 등
기본 서비스 이용에는 제한이 없습니다.
[수집 범위]
- 수집 항목: 생일(월/일), 출생연도
- 이용 목적: 생일 이벤트, 연령대별 맞춤 서비스
- 보유 기간: 회원 탈퇴 시까지
- 제3자 제공: 없음
```
---
## 회원가입 시나리오 (회원가입 화면 설명용)
### 시나리오 1: 카카오 로그인으로 QR 적립 (메인 플로우)
### 시나리오 1: 직접 회원가입 (수동)
```
1. https://mile.0bin.in 접속
2. "회원가입" 메뉴 클릭 → https://mile.0bin.in/signup 이동
3. 이름(필수), 전화번호(필수), 생년월일(선택) 입력
4. 개인정보 수집·이용 동의 체크
5. "가입하기" 버튼 클릭
6. 가입 완료 → 마이페이지 이동 가능
```
### 시나리오 2: 카카오 로그인으로 QR 적립 (메인 플로우)
```
1. 고객이 약국에서 의약품 구매 후 영수증을 받음
2. 영수증에 인쇄된 QR 코드를 스마트폰 카메라로 스캔
3. https://mile.0bin.in/claim?t=거래번호:인증코드 페이지 이동
4. "카카오로 적립하기" 버튼 클릭
5. 카카오 로그인 동의 화면 표시 (닉네임, 프로필, 이메일, 이름, 전화번호)
5. 카카오 로그인 동의 화면 표시 (닉네임, 프로필, 이메일, 이름, 전화번호, 생년월일)
6-A. [전화번호 수집 가능 시] → 자동으로 마일리지 적립 완료
6-B. [전화번호 미수집 시] → 전화번호 입력 화면으로 이동 → 수동 입력 후 적립
7. 적립 완료 화면 표시 (적립 포인트, 총 잔액)
```
### 시나리오 2: 카카오 로그인으로 마이페이지 조회
### 시나리오 3: 카카오 로그인으로 마이페이지 조회
```
1. https://mile.0bin.in 접속
@@ -54,7 +108,7 @@
4. 마이페이지 이동 (적립 내역, 포인트 잔액 확인)
```
### 시나리오 3: PWA 앱에서 자동 적립 (재방문 고객)
### 시나리오 4: PWA 앱에서 자동 적립 (재방문 고객)
```
1. 이전에 카카오 로그인으로 적립한 이력이 있는 고객
@@ -62,18 +116,29 @@
3. 세션이 유지되어 있으므로 입력 없이 자동 적립 완료
```
---
## 제출 체크리스트
- [x] 회원가입 링크: `https://mile.0bin.in`
### 전화번호 (phone_number) 신청
- [x] 회원가입 링크: `https://mile.0bin.in/signup`
- [x] 개인정보 처리방침: `https://mile.0bin.in/privacy`
- [ ] 회원가입 화면 스크린샷: 카카오 로그인 버튼이 보이는 적립 화면 캡처
- `/claim?t=거래번호:인증코드` 페이지 또는 메인 페이지 캡처
- 개인정보가 보이면 마스킹 필요
- [ ] 수집 사유: 위 텍스트 복사하여 입력
- [ ] 회원가입 화면 스크린샷: `/signup` 페이지 캡처 (전화번호 필드 + 수집 목적 안내 + 개인정보 동의 포함)
- [ ] 수집 사유: 위 "1. 전화번호 수집 사유" 텍스트 복사하여 입력
### 생일/출생연도 (birthday, birthyear) 신청
- [x] 회원가입 링크: `https://mile.0bin.in/signup`
- [x] 개인정보 처리방침: `https://mile.0bin.in/privacy`
- [ ] 회원가입 화면 스크린샷: `/signup` 페이지 캡처 (생년월일 필드 + "선택" 배지 + 수집 목적 안내 포함)
- [ ] 수집 사유: 위 "2. 생일/출생연도 수집 사유" 텍스트 복사하여 입력
## 스크린샷 촬영 가이드
회원가입 화면으로 제출할 스크린샷:
1. `https://mile.0bin.in` 메인 페이지 캡처 (카카오로 시작하기 버튼 포함)
2. 또는 적립 페이지 `/claim?t=xxx` 캡처 (카카오로 적립하기 버튼 + 개인정보 동의 체크박스 포함)
3. 캡처 시 개인정보(전화번호 등)가 보이면 마스킹 처리
1. `https://mile.0bin.in/signup` 페이지 캡처
- "수집 항목 및 이용 목적" 안내 카드가 보이게
- 전화번호(필수), 이름(필수), 생년월일(선택) 필드가 보이게
- 각 필드 아래 수집 목적 설명이 보이게
- 개인정보 동의 체크박스가 보이게
2. 캡처 시 개인정보(전화번호 등)가 보이면 마스킹 처리
3. 화면이 길면 2장으로 나누어 캡처 (상단: 수집 항목 안내 + 입력 필드, 하단: 동의 + 가입 버튼)