코디챗봇 프로젝트

[Aura_AI] [3편] OAuth만으로는 부족해서 자체 회원가입을 추가한 이유

frontend-diary-log 2026. 1. 23. 19:45

📘 [Aura_AI 프로젝트 회고 ③]

OAuth만으로는 부족했다 — 자체 회원가입을 추가한 이유

안녕하세요.
Aura_AI 프로젝트의 인증 파트를 정리하며,
**Google OAuth + 자체 회원가입(ID/PW)**을 함께 설계한 이유를 공유하려 합니다.

이번 글은
“OAuth를 어떻게 구현했는가”가 아니라,

“왜 OAuth만으로는 충분하지 않았고,
서비스 관점에서 어떤 선택을 했는가”

에 대한 이야기입니다.


1️⃣ OAuth 로그인만으로 시작했지만, 한계가 보이기 시작했다

Aura_AI 프로젝트의 초기 인증 구조는 Google OAuth 단일 로그인이었습니다.

  • 로그인 진입 장벽이 낮고
  • 구현 속도가 빠르며
  • 보안 부담이 적다

는 장점 덕분에,
프로젝트 초반에는 가장 합리적인 선택이었습니다.

실제로 Day 7에서는 다음을 목표로 했습니다.

  • Google OAuth 로그인 성공
  • App Router 환경에서 세션 안정화
  • 로그인 후 /chat 페이지 진입

기능적으로는 완성된 상태였습니다.

하지만 서비스를 “사용자 관점”으로 바라보자
몇 가지 의문이 생겼습니다.


2️⃣ “이 서비스는 누구를 위한 서비스인가?”

Aura_AI는 단순한 데모가 아니라,

  • 사용자 취향(스타일)
  • 거주 지역
  • 날씨 기반 추천
  • 개인화된 AI 응답

을 핵심 가치로 하는 서비스입니다.

즉, **“로그인”보다 중요한 것은 “유저 정보의 축적”**이었습니다.

이 시점에서 OAuth 구조의 한계가 명확해졌습니다.

OAuth 단독 구조의 한계

  • Google 계정이 없는 사용자 진입 불가
  • 이메일 외의 정보 수집 흐름이 애매함
  • “회원가입” 개념이 서비스적으로 드러나지 않음
  • 이후 DB 기반 개인화 로직 확장 시 구조가 불명확

👉 서비스의 성장 방향과 맞지 않는다는 판단이 들었습니다.


3️⃣ 그래서 선택한 구조: OAuth + 자체 회원가입 공존

Day 8에서는 과감하게 인증 구조를 확장했습니다.

추가한 기능

  • 이메일 / 비밀번호 기반 회원가입
  • MySQL DB에 유저 정보 저장
  • 비밀번호 해시(bcrypt) 적용
  • 입력값 유효성 검사 (클라이언트 + 서버)
  • 이메일 / 닉네임 중복 체크
  • 회원가입 후 자동 로그인 → /chat 이동

즉,

**“소셜 로그인으로 빠른 진입”**과
“자체 계정으로의 명확한 사용자 관리”

동시에 만족하는 구조입니다.


4️⃣ OAuth vs 자체 회원가입, 무엇이 더 좋은가?

이 프로젝트에서 내린 결론은 명확합니다.

둘 중 하나를 고르는 문제가 아니다.
서비스 성격에 따라 ‘함께 가져가는 문제’다.

OAuth의 역할

  • 진입 장벽 최소화
  • 빠른 체험 유도
  • UX 중심

자체 회원가입의 역할

  • 서비스 정체성 강화
  • 사용자 데이터 명확화
  • 개인화 로직 확장 기반
  • DB 중심 서비스 구조

Aura_AI처럼
AI 추천 + 개인화가 핵심인 서비스에서는
자체 회원가입 구조가 필수적이라고 판단했습니다.


5️⃣ “기능 구현”보다 중요했던 실무 포인트

이번 인증 확장에서
단순히 “된다”가 아니라
실무 기준으로 신경 쓴 포인트는 다음과 같습니다.

✅ 비밀번호는 반드시 해시 저장

  • bcrypt 적용
  • 평문 저장 금지

✅ 프론트 + 서버 이중 검증

  • 클라이언트 Regex 검증
  • 서버 재검증으로 우회 방지

✅ 중복 체크는 DB에서 한 번 더

  • 코드 로직 + DB UNIQUE 제약
  • 데이터 무결성 보장

✅ 회원가입 후 자동 로그인

  • 불필요한 재로그인 제거
  • UX 전환율 개선

6️⃣ 이 구조가 “포트폴리오”에서 가지는 의미

OAuth만 구현했다면
“요즘 다들 하는 로그인 구현”으로 끝났을 수 있습니다.

하지만 이번 구조를 통해:

  • 인증 전략을 서비스 관점에서 설명 가능
  • OAuth와 Credentials 차이를 이해하고 선택
  • 보안 / UX / 확장성을 함께 고려한 설계 경험
  • 프론트엔드에서 백엔드 데이터 흐름까지 이해하고 있다는 증명

이 가능해졌습니다.


7️⃣ 다음 단계

다음 단계에서는
OAuth 유저와 자체 회원가입 유저를 하나의 전역 상태로 관리하기 위해
Zustand 기반 인증 상태 통합을 진행할 예정입니다.

“로그인 방식은 다르지만,
앱에서는 동일한 사용자로 다루는 구조”

를 만드는 과정입니다.


마치며

이번 Day 8 작업은
단순히 회원가입 기능을 추가한 날이 아니라,

“이 서비스는 어떤 사용자 경험을 제공할 것인가”

를 기준으로
인증 구조를 다시 설계한 날이었습니다.

Aura_AI는 앞으로도
기능 구현보다 선택의 이유가 설명되는 프로젝트로 완성해 나가려 합니다.

읽어주셔서 감사합니다 🙇‍♀️