Skip to content
HongSeok Ju edited this page Sep 25, 2023 · 1 revision

회원가입 (M)

이메일 회원가입

  • 사용자 정보 입력 → 인증 확인(이메일, 문자 메시지) → 가입 처리

    → 위치/결제 정보 수집에 대해서는?

    → 로그인 후 진행? or 회원가입 처리 후 추가 정보 입력?

    → 회원가입 시에는 사용자 개인 정보만 입력 추가 주문에 관련된 정보는 추후 수집

1

  • 인증 시 휴대폰 인증 먼저 진행 후 이메일 인증

    → 동일 휴대폰 일 시 이미 가입 된 아이디 정보 제공 동일 번호로는 재 가입 불가

    → 휴대폰 번호가 다르더라도 같은 이메일로 재 가입 불가

    → 이메일을 사용한 회원가입이 아닌 Kakao등 해당 이메일을 가진 OAuth로 가입이 이미 되어있어도 이메일 회원가입 불가

    → 왜 같은 번호, 같은 이메일로 여러 가입이 안될까?

    → [내 생각] 쿠폰을 주는 이벤트가 있다고 가정한다면 하나의 번호로 여러 계정을 만들어 중복 수혜를 받는 인원이 나타날 듯 하여 제한한 것 같긴 하다

    → [배민 개인 정보 처리 방침] 회원가입 남용(부정 거래) 라고 적혀 있는 것을 보아 내 생각과 어느 정도는 일치하는 듯 하다

2

  • 사용자 인증 확인 시 어떤 방법을 사용? → 휴대폰 인증(인증 번호), 이메일 주소 확인(인증 번호)

    → 왜 두 번 인증이 이루어지는지?

    → 이메일은 굳이? 왜 필요한 것인지? → 로그인 시 아이디로 이메일을 사용, 정말 본인 이메일인지 확인을 위해

    → 휴대폰 인증 → 현금 영수증, 포장 및 방문 주문 등 이유로 개인 휴대 번호 수집 및 인증

    → 휴대폰 인증은 어떻게 이루어질까?

    배민 내부 서버에서 인증 번호를 문자를 통해 전송하여 인증

    → 외부 API 사용해서 인증 기능

3

배달의 민족 휴대폰 인증 시 KG 모빌리언스에서 인증 확인

4

KG 모빌리언스 내부 통신사로 본인인증 처리 관련 제공 정보
  • 어떤 값을 받을 까?

    → 인증 시 (이름, 생년월일, 휴대폰 번호),

      가입 시 (이메일 주소, 비밀번호, 닉네임)
    

OAuth 회원가입

  • 회원가입 → 휴대폰 인증 → 닉네임 입력

    카카오 로그인 시 이메일, CI 필수 값 → 회원 비교 식별

  • 이메일이 중복 시 (OAuth에서 사용하는 이메일과 이메일 계정과 중복)

    → 이전에 존재하는 계정으로 연결 후 휴대폰 인증 진행

5

→ 다른 이메일로 가입되어 있는 상태에서 OAuth 로그인을 진행하면 존재하는 계정 찾아서 연결 해줌 어떻게 되지?

**시나리오**

1. `user@naver.com` 으로 이메일 회원가입
    1. `user@naver.com` 을 가진 Kakao 회원가입 시 이메일 확인을 통한 계정 찾아 사용
2. `user@gmail.com` 으로 이메일 회원가입
    1. `user@naver.com` 을 가진 Kakao 회원가입 시 어떻게 존재 계정 여부를 찾는지?
        
        → CI라는 값 때문에 회원을 식별 가능
        
        → `user@gmail.com` 으로 이메일 회원가입 후 `user@naver.com` 을 가진 Facebook 으로 가입을 하면 CI값을 Facebook은 제공을 하지 않기 때문에 존재 계정 여부를 보여주지 않음 대신 추후 휴대폰 번호 인증 시 존재 계정을 보여줘서 연결 하도록

CI란

[CI DI 란?](https://www.ihee.com/614) [CI](https://parti.coop/g/home/news/5/50275)

6

OAuth, 본인 인증 시 수집 항목 CI 포함 - 배달의 민족(개인정보 처리 방침 2023.08.29 시행 본)

7

휴대폰 본인 인증 시 수집 항목 CI 포함 - KG 모빌리언스(개인정보 처리 방침 2023.08.31 시행 본)

  • CI 값이 외부에서 생성되어 제공되는 값이면 값을 받아올 수 없어서 단순히 이메일 주소나 휴대폰 번호를 통해 중복 관리를 해야 할 듯하다
  • 카카오에서도 CI값을 제공 받기 위해서는 사업자 정보를 등록한 후 검수 신청을 통해 제공을 받을 수 있다 KG 모빌리언스도 동일 할 듯하다

궁금한 점

  • 이메일로 회원가입 계정이랑 OAuth 가입한 계정이 같은 계정으로 연결을 하면 어떤 방식으로 저장을 해둘까?

    → 이건 테이블/도메인 설계 문제

저장 할 값

Customer

  • email
  • name
  • nickname
  • password
  • birth date
  • phone number

Address

  • main address
  • detail address
  • latitude
  • longitude

정리

배민 Flow

  • 일반 회원가입

휴대폰 인증 처리 → CI 값을 통한 사용자 식별

→ 존재 할 경우 해당 아이디로 로그인

→ 미 존재 경우 email(추가 인증 → 중복 검증), 비밀번호, 닉네임 입력 후 회원가입 처리

→ 바로 로그인 처리

  • OAuth 회원가입

OAuth 인증 서버를 통한 인증 처리 → CI 값을 통한 사용자 식별

→ 존재 할 경우 해당 아이디로 연결 → 휴대폰 인증 처리

→ 기존 가입한 아이디와 휴대폰 번호 미 일치 시 회원가입 실패

→ 기존 가입한 아이디와 휴대폰 번호 일치 시 회원가입 처리

→ 미 존재 경우 휴대폰 인증 처리 → 닉네임 입력 후 회원가입 처리

바로 로그인 처리

Flow

  • 문제점

CI 값 : CI 값을 받아 올 수 없어 사용자 식별에 사용 할 수 없음 (카카오, KG 모빌리언스 등)

문자 인증 : 직접 문자 인증을 구현한다 해도 SMS 사용 시 요금 과금

  • 일반 회원가입

사용자 개인 정보 입력(이메일, 이름, 닉네임, 비밀번호, 생일, 핸드폰 번호) → 입력 폼 시점에 이메일 중복 검증 후 이메일 전송하여 인증 처리

→ 존재 할 경우 가입 불가

→ 미 존재 경우 가입 가능

→ 앞서 휴대폰 인증 과정 생략

  • OAuth 회원가입

OAuth 인증 서버를 통한 인증 처리 → 이메일 값을 통한 중복 검증

→ 존재 할 경우 가입 불가 (사용자 인증 믿음 부족)

→ 배민의 회원가입에서 장점이 이메일과 소셜로그인이 하나로 통합되어서 이메일 가입 후 추후 소셜로그인으로 회원가입 시 편하게 로그인 할 수 있다는 점이라고 생각을 하는데 이러면 그런 장점이 사라짐

→ OAuth도 결국 해당 서비스에 가입을 하기 위해서는 이메일 인증을 받기 때문에 OAuth 끼리의 이메일은 믿을 수 있으나 일반 회원가입에서 이메일 인증이 없기 때문에 가입을 하지 못하도록 결정

→ 일반 회원가입 시 이메일 인증을 받으면 괜찮지 않을까?

→ 일반 회원가입 시 이메일 인증 필수로 받고 OAuth 회원가입시 일치하는 이메일이 있을 경우에도 회원가입 처리 → 대신 닉네임과 휴대폰 번호 입력받지 않고 바로 회원가입 처리

→ 미 존재 경우 → 휴대폰 번호, 닉네임 입력 후 회원가입 처리

로그인 (M)

  • 이메일 로그인

    아이디, 비밀번호 입력 → 로그인 처리

  • OAuth 로그인

    존재 시 로그인 처리

    미 존재 시 회원가입 처리 후 바로 로그인 처리까지

  • 로그인 후 JWT 발급

  • 여러 기기 로그인 (S)

개인 정보 확인(My Page 등) (S)

  • 어떤 값을 보내줄 지?

  • 대표 이메일 설정 (여러 이메일 등록 가능)

    왜 있는거지?

    배민 가입 후 이메일 회원 탈퇴 시 대표 이메일 변경?

    OAuth 회원가입만 진행 했을 경우 이메일 추가 가능

8

배달 주소 입력 (M)

9

  • 새로운 주소 입력 시 해당 주소를 사용하도록 변경
  • 로그인 후 추후 입력 받을 수 있도록