Step 1 온보딩 ──→ Step 2 대시보드 ◄──────────────────┐
│ │ │
│ └── [+ 종목 추가] ──→ Step 3 검색
│ │
├── 종목 카드 클릭 ──────────→ Step 4-A 개별 토론
│ │
└── 포트폴리오 요약 클릭 ────→ Step 4-B 포트폴리오 회의
│
결과 → Step 2에 요약 표시
→ 카카오톡 알림 발송
| Step | 페이지 | URL | 핵심 역할 |
|---|---|---|---|
| Step 1 | 로그인 & 온보딩 | /login → /onboarding |
카카오 OAuth + 투자 성향 설정 |
| Step 2 | 메인 대시보드 | /dashboard |
결과를 보는 곳 — 시장 요약 + 관심종목 ML 점수 + 포트폴리오 결과 요약 |
| Step 3 | 종목 검색 | /search |
종목을 찾는 곳 — 검색 + 관심종목 추가 |
| Step 4 | 종목 상세 & 토론장 | /stock/:code /stock/portfolio |
토론이 일어나는 곳 — 개별 종목 토론 + 포트폴리오 회의 |
핵심 원칙:
/login카카오 OAuth 로그인 단일 방식
카카오톡 알림 연동이 핵심 기능이므로, 카카오 로그인 필수. 소셜 로그인을 여러 개 두면 카톡 연동 안 된 유저가 생김.
로그인 플로우:
[사용자] 카카오 로그인 버튼 클릭
↓
[카카오] OAuth 인증 → 동의 항목:
- 프로필 정보 (닉네임, 프로필 사진)
- 카카오톡 채널 추가 (★ 핵심)
- 카카오톡 메시지 발송 동의
↓
[서버] 카카오 토큰 수신 → JWT 발급 → DB 유저 생성
↓
[서버] 카카오톡 채널 친구 추가 자동 처리
- 채널 추가 동의 시 → 알림톡 발송 가능 상태
- 미동의 시 → 대시보드에서 재유도 배너 표시
↓
[클라이언트] 신규 유저 → /onboarding 이동
기존 유저 → /dashboard 이동
카카오 OAuth 필요 스코프:
| 스코프 | 용도 | 필수 여부 |
|---|---|---|
profile_nickname |
유저 닉네임 표시 | 필수 |
profile_image |
프로필 사진 | 선택 |
talk_message |
나에게 보내기 (알림) | 필수 |
plusfriends |
카카오톡 채널 추가 상태 확인 | 필수 |