Skip to content

Latest commit

 

History

History
125 lines (86 loc) · 3.89 KB

File metadata and controls

125 lines (86 loc) · 3.89 KB

Guest To Social Linking Plan

목표

  • 현재의 비회원으로 화단 만들기 진입 장점을 유지한다.
  • 사용자가 식물, 방명록, 피드 등을 써본 뒤 원할 때 소셜 계정으로 연동할 수 있게 한다.
  • 장기적으로는 계정 복구와 다기기 사용성을 확보한다.

현재 판단

지금 UX 상태

  • 비회원 시작도 초반에 닉네임을 입력한다.
  • 소셜 신규 가입도 초반에 닉네임을 입력한다.
  • 그래서 둘의 초기 마찰은 현재 거의 비슷하다.

바로 비회원 가입을 없애지 않는 이유

  • 첫 진입 장벽은 비회원이 가장 낮다.
  • 소셜 로그인 강제는 첫 사용 이탈을 늘릴 가능성이 있다.
  • 서비스 특성상 먼저 써보고 나중에 계정 보존 필요성을 느끼게 만드는 쪽이 자연스럽다.

추천 방향

단기

  • 비회원 가입 유지
  • 소셜 신규 가입도 유지
  • 설정 화면 또는 특정 시점에서 소셜 계정 연동 진입점 제공

중기

  • 비회원 유저가 식물 등록, 방명록 작성, 피드 참여 등 핵심 행동 후 계정 연동의 장점을 설명하며 연동을 유도
  • 예시 문구:
    • 기기 변경 시 기록을 보존할 수 있어요
    • 방명록과 식물 기록을 안전하게 저장할 수 있어요

장기

  • 연동률과 이탈률을 보고 비회원 축소 여부 판단
  • 실제 데이터상 문제 없을 때만 소셜 우선 정책 검토

MainAPP 변경 포인트

1. 설정 화면에 소셜 계정 연동 메뉴 추가

  • 위치: OptionScreen
  • 목적: 언제든 사용자가 계정을 승격할 수 있게 함

2. 연동 전용 화면 또는 바텀시트 추가

  • 선택지:
    • 구글 연동
    • 카카오 연동
  • 주의:
    • 이미 다른 계정에 연결된 소셜 계정인지 에러 처리 필요

3. 연동 유도 진입 타이밍 설계

  • 예시:
    • 첫 방명록 작성 직후
    • 첫 아바타 등록 완료 후
    • 설정 화면 상단 배너

4. 연동 완료 후 사용자 안내

  • 문구 예시:
    • 이제 소셜 계정으로 로그인해도 현재 텃밭을 그대로 이어서 사용할 수 있어요.

MainBE 변경 포인트

1. 비회원 계정과 소셜 계정 연결 API 추가

  • 예시 엔드포인트:
    • POST /api/v1/auth/link-social
  • 입력값 예시:
    • Supabase access token
  • 처리 내용:
    • 현재 로그인된 비회원 사용자와 소셜 계정을 연결
    • 이미 다른 유저에 연결된 소셜 계정이면 차단

2. User 엔티티에 계정 상태 구분 정리

  • 현재는 비회원/소셜 구분이 명확하지 않을 수 있음
  • 최소한 아래 식별값이 필요함
    • anonymous/guest 여부
    • oauthProvider
    • oauthSubject
    • linkedAt

3. 중복 계정 충돌 처리

  • 같은 소셜 계정이 이미 다른 사용자에 연결된 경우
  • 현재 게스트 계정 데이터와 병합할지, 차단할지 정책 필요
  • 추천은 초기엔 병합 금지, 연결 차단이다

4. 로그인 응답 구조 정리

  • 연동된 계정인지
  • 신규 소셜 가입인지
  • 기존 연동 계정 로그인인지
  • 프론트가 명확히 분기할 수 있게 응답값 보강 필요

권장 정책

초기 정책

  • 비회원 -> 소셜 연동: 허용
  • 이미 독립적으로 생성된 다른 소셜 계정과 데이터 병합: 금지
  • 충돌 시 사용자에게 새 계정 생성 대신 기존 계정이 존재한다고 안내

이유

  • 병합 로직은 방명록, 피드, 정원, 아바타, 알림, 팔로우 등 전체 도메인을 건드려 리스크가 크다.
  • 먼저 단일 사용자에 소셜 식별자 연결까지만 구현하는 것이 안전하다.

결론

  • 지금은 비회원 가입 제거보다 비회원 유지 + 나중에 소셜 연동이 더 적절하다.
  • 구현 우선순위는
    1. 설정의 소셜 연동 진입점
    2. MainBE 계정 연결 API
    3. 충돌 처리 정책 순서가 맞다.