GitHub OAuth란?
GitHub OAuth는
“GitHub 계정으로 로그인(Login with GitHub)”
기능을 구현하는 표준 인증 방식입니다.
사용자는 자신의 GitHub 비밀번호를 여러분의 웹앱에 입력하지 않습니다.
대신 GitHub가 직접 사용자를 인증하고,
인증이 끝나면
“이 사용자가 GitHub 로그인에 성공했습니다.”
라는 결과만 여러분의 웹앱에 전달합니다.
왜 OAuth를 사용할까?
OAuth를 사용하면
✅ GitHub 비밀번호를 저장하지 않아도 되고
✅ 안전하게 로그인할 수 있으며
✅ 로그인 후 GitHub API를 호출할 수 있습니다.
즉,
GitHub Discovery에서는
OAuth 로그인만 성공하면
다음 데이터를 가져올 수 있습니다.
- 내 Repository
- Star한 Repository
- Followers
- Following
- Organizations
- 프로필
단계별 구현 절차


Step 1
GitHub OAuth App 생성
GitHub의 Developer Settings에서
OAuth App을 생성합니다.
입력 정보
- Application Name
- Homepage URL
- Callback URL
예시
Application
GitHub Discovery
Homepage
http://localhost:5173
Callback
http://localhost:3000/api/auth/github/callback
Step 2
Client ID 발급
생성이 완료되면
GitHub는
Client ID
를 제공합니다.
예)
Ov23Li......
Step 3
Client Secret 발급
같이 제공되는
Client Secret
은
절대로
React 코드에 넣으면 안 됩니다.
반드시
Serverless Function에서만 사용합니다.
환경변수
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
바이브코딩 입문자용 구현 전략
GitHub OAuth는 직접 구현할 수도 있지만, 교육용 프로젝트에서는 난이도를 단계적으로 높이는 접근이 효과적입니다.
1단계 (가장 쉬움)
GitHub Personal Access Token(PAT) 을 환경변수에 저장하고 GitHub API를 호출합니다.
- 장점: 10~20분 안에 GitHub API 연동 가능
- 단점: 본인 계정만 사용할 수 있음
2단계 (추천)
GitHub OAuth App을 구현하여 누구나 자신의 GitHub 계정으로 로그인할 수 있도록 만듭니다.
- 장점: 실제 서비스와 동일한 구조
- 교육 효과: OAuth 개념과 인증 흐름 학습
3단계 (서비스 수준)
GitHub OAuth에 로그인 세션과 데이터베이스를 결합합니다.
- GitHub OAuth + Neon PostgreSQL
- 사용자 정보 저장
- AI 분석 결과 캐싱
- 재로그인 시 이전 분석 결과 재사용