📘 [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는 앞으로도
기능 구현보다 선택의 이유가 설명되는 프로젝트로 완성해 나가려 합니다.
읽어주셔서 감사합니다 🙇♀️
'코디챗봇 프로젝트' 카테고리의 다른 글
| [Aura_Ai] [6편] 프로젝트 배포 (0) | 2026.02.13 |
|---|---|
| [Aura_Ai] [5편] 데이터 가공으로 UX 개선하기 (0) | 2026.02.02 |
| [Aura_Ai] [4편] GPT API를 활용한 서비스 설계 (0) | 2026.02.01 |
| [Aura_AI] [2편] App Router 환경에서 OAuth 인증 설계하기 (0) | 2026.01.23 |
| [Aura_AI] [1편] 화면만 그리던 프론트엔드 개발자가 ‘20단계 몰입 프로젝트’를 시작한 이유 (1) | 2026.01.11 |