개발 환경 설정
Soonlife 구글 OAuth 백엔드 설치 및 실행 방법
1. 가상환경 생성 및 활성화
python -m venv .venv
# 활성화 (Windows)
.venv\Scripts\activate
# 활성화 (macOS/Linux)
source .venv/bin/activate2. 의존성 설치
pip install -r requirements.txt설치되는 주요 패키지:
| 패키지 | 역할 |
|---|---|
Django | 웹 프레임워크 |
djangorestframework | REST API |
djangorestframework-simplejwt | JWT 발급/재발급/블랙리스트 |
google-auth | 구글 ID 토큰 검증 |
django-cors-headers | CORS 허용 |
python-dotenv | 환경변수 로드 |
PyMySQL | MariaDB 드라이버 |
3. 환경변수 설정
.env.example을 복사해 .env를 만들고 값을 채웁니다.
copy .env.example .env# Django
DJANGO_SECRET_KEY=change-me-to-a-random-secret-key
DJANGO_DEBUG=True
DJANGO_ALLOWED_HOSTS=127.0.0.1,localhost
# MariaDB
DB_NAME=soonlife
DB_USER=root
DB_PASSWORD=
DB_HOST=127.0.0.1
DB_PORT=3306
# Google OAuth
GOOGLE_OAUTH_CLIENT_IDS=xxxxxxxx.apps.googleusercontent.com
# CORS
CORS_ALLOWED_ORIGINS=http://localhost:8081,http://127.0.0.1:8081| 변수 | 설명 |
|---|---|
GOOGLE_OAUTH_CLIENT_IDS | Google Cloud Console에서 발급한 OAuth 클라이언트 ID. 여러 플랫폼(iOS/Android/Web)용 ID를 콤마로 구분해 모두 등록 |
CORS_ALLOWED_ORIGINS | Expo 개발 서버 등 API 호출을 허용할 origin |
DJANGO_SECRET_KEY와 DB_PASSWORD는 절대 저장소에 커밋하지 마세요. .env는 .gitignore에 포함되어 있습니다.
4. 데이터베이스 마이그레이션
python manage.py migrate5. 개발 서버 실행
python manage.py runserver 0.0.0.0:8000서버가 http://localhost:8000에서 실행됩니다.
Django admin(/admin/)은 비활성화되어 있습니다.
Google Cloud Console 설정
- Google Cloud Console → 새 프로젝트 생성
- API 및 서비스 > OAuth 동의 화면 설정
- API 및 서비스 > 사용자 인증 정보 > OAuth 클라이언트 ID 만들기
- 최초에는 웹 애플리케이션 유형으로 하나 만들면 백엔드 테스트가 가능합니다.
- Expo 앱을 네이티브 빌드(EAS build)로 배포할 때 iOS, Android 유형 클라이언트를 추가로 만들어야 합니다.
- "승인된 JavaScript 원본"/"승인된 리디렉션 URI"는 Expo 앱의 구글 로그인 구현 방식(
expo-auth-session프록시 vs 네이티브 SDK)이 정해진 뒤 채워도 됩니다.
- 발급된 모든 클라이언트 ID를
.env의GOOGLE_OAUTH_CLIENT_IDS에 콤마로 구분하여 등록합니다. 백엔드는 ID 토큰의aud클레임이 이 목록에 포함되어야 유효한 토큰으로 인정합니다.