개발일지

SNS 로그인 구현, 어디까지 해봤니?

makeviibe 2025. 7. 15. 12:22

많은 서비스에서 SNS 로그인은 필수처럼 사용되지만, 막상 구현하려고 하면 생각보다 까다롭고 복잡합니다.

특히 "회원가입 프로세스와 어떻게 연결할 것인가?",

"기존 사용자와 충돌은 어떻게 처리할 것인가?" 같은 질문에 막히는 경우가 많습니다.

그래서 실제 서비스에서 사용한 SNS 로그인/회원가입 프로세스를 정리해봤습니다.


👣 기본 로그인 프로세스

  1. 사용자가 SNS 로그인을 시도합니다 (예: 네이버, 카카오, 구글 등)
  2. 프론트는 SNS 인증 서버로부터 Access Token을 발급받습니다.
  3. 백엔드는 이 토큰을 사용해 사용자 정보를 획득합니다.
  4. 사용자 정보(이메일/식별자 등)로 기존 계정을 조회합니다.
  5. 기존 계정이 있다면 → 로그인 처리

🧩 계정이 없는 경우 → 회원가입으로 전환

SNS 사용자 정보로 기존 계정이 없다면,

추가 정보 입력 & 전화번호 인증을 통한 회원가입으로 전환됩니다.

회원가입 과정:

  1. SNS Access Token 으로 사용자 정보 획득 (email, name, id 등)
  2. 사용자에게 전화번호 입력을 요청
  3. 입력된 전화번호로 인증 코드 발송 → 인증 확인
  4. 전화번호 중복 여부 확인
  5. 중복이 없다면 → 회원가입 처리 (User + UserAuth 저장)

⚠️ 중복된 전화번호가 있는 경우?

전화번호는 중복될 수 없기 때문에

이미 가입된 계정이 있다면 아래와 같이 안내합니다:

  1. 해당 전화번호로 가입된 계정의 SNS Provider 확인
  2. 사용자에게 아래와 같이 안내:

“해당 전화번호로 이미 가입된 계정이 있습니다.

이전에 ‘카카오 계정’으로 가입하셨습니다.”


🧠 실무에서 유의할 점

  • SNS 인증 후, 사용자 정보는 SNS마다 다릅니다.
  • → ID, 이메일, 이름, 프로필 이미지 등 필수값을 정규화해서 관리하세요.
  • 전화번호 인증 → 인증 여부 저장 후, 회원가입에 반드시 체크하세요.
  • SNS 탈퇴 시 처리도 고려해야 합니다. (ex. 연결 끊기 API, 로그인 차단 등)

✍️ 마무리

SNS 로그인은 사용자 편의성과 이탈 방지에 큰 장점이 있지만,

정확한 사용자 식별과 계정 중복 처리, 예외 플로우 관리가 중요합니다.

이번 글이 여러분의 SNS 로그인 개발에 도움이 되었으면 좋겠어요.

makeviibe는 이런 통합 로그인 시스템도 설계하고,

실제 서비스에 적용해오고 있습니다 😊