🔑
Devise
Rails 표준 인증 시스템
Devise는 Rails에서 가장 널리 사용되는 인증 gem입니다.
10가지 모듈:
database_authenticatable— 비밀번호 해싱 및 로그인registerable— 회원가입recoverable— 비밀번호 재설정rememberable— 자동 로그인 (Remember Me)validatable— 이메일/비밀번호 검증confirmable— 이메일 인증lockable— 로그인 실패 시 계정 잠금timeoutable— 세션 타임아웃trackable— 로그인 추적omniauthable— OAuth (Google, GitHub 등)
자동 생성되는 헬퍼:
current_user— 현재 로그인 사용자user_signed_in?— 로그인 여부authenticate_user!— 비로그인 시 리다이렉트
커스터마이징은 컨트롤러 상속과 뷰 오버라이드로 합니다.
핵심 포인트
1
Gemfile에 gem "devise" 추가 후 bundle install
2
rails generate devise:install → 초기 설정 파일 생성
3
rails generate devise User → User 모델 + 마이그레이션 생성
4
rails db:migrate → devise 관련 테이블 생성
5
before_action :authenticate_user! → 인증 필요한 컨트롤러에 추가
6
current_user, user_signed_in? 등 헬퍼 사용
장점
- ✓ 풍부한 기능 (10개 모듈)
- ✓ 커뮤니티가 크고 문서 풍부
- ✓ 보안 모범 사례 적용 (bcrypt, CSRF)
- ✓ OmniAuth로 소셜 로그인 쉽게 추가
단점
- ✗ 커스터마이징이 복잡할 수 있음
- ✗ 마법이 많아 내부 동작 파악 어려움
- ✗ API 전용 앱에서는 과도한 기능
- ✗ 뷰 커스터마이징 시 generate devise:views 필요
사용 사례
회원 기반 웹 서비스
Google/GitHub OAuth 로그인
이메일 인증 플로우
관리자 패널 인증