카카오 사용자 정보로 회원가입 설계

송영재·2022년 10월 23일

Spring

목록 보기
17/45
  • 32) 카카오 사용자 회원가입 설계

    👉 관심 상품 등록을 했을 때 회원 구분이 필요하기 때문에, 카카오서버에서 받은 사용자 정보를 이용해 회원 가입을 합니다.

    • 카카오로 부터 받은 사용자 정보
      1. kakaoId
      2. nickname
      3. email
      • 카카오 사용자 정보 JSON 의 예
        {
          "**id**": 1632335751,
          "properties": {
            "**nickname**": "르탄이",
            "profile_image": "http://k.kakaocdn.net/...jpg",
            "thumbnail_image": "http://k.kakaocdn.net/...jpg"
          },
          "kakao_account": {
            "profile_needs_agreement": false,
            "profile": {
              "nickname": "르탄이",
              "thumbnail_image_url": "http://k.kakaocdn.net/...jpg",
              "profile_image_url": "http://k.kakaocdn.net/...jpg"
            },
            "has_email": true,
            "email_needs_agreement": false,
            "is_email_valid": true,
            "is_email_verified": true,
            "**email**": "letan@sparta.com"
          }
        }
    • 테이블 설계 옵션
      1. 카카오 User 를 위한 테이블 (ex. KakaoUser) 을 하나 더 만든다.
        1. 장점: 결합도가 낮아짐
          1. 성격이 다른 유저 별로 분리 → 차후 각 테이블의 변화에 서로 영향을 주지 않음
          2. 예) 카카오 사용자들만 profile_image 컬럼 추가해서 사용 가능
        2. 단점: 구현 난이도가 올라감
          1. 예) 관심상품 등록 시, 회원별로 다른 테이블을 참조해야 함
            1. 일반 회원: User - Product
            2. 카카오 회원: KakaoUser - Product
      2. 기존 회원 (User) 테이블에 카카오 User 추가
        1. 장점: 구현이 단순해짐
        2. 단점: 결합도가 높아짐
          1. 폼 로그인을 통해 카카오 로그인 사용자의 username, password 를 입력해서 로그인한다면??
    • 회원 (User) 테이블에 적용하기로 결정
      • 패스워드를 UUID 로 설정한 이유 : 폼 로그인을 통해서 로그인되지 않도록!!

0개의 댓글