Files
labs/CLAUDE/task-plan.md
jungwoo choi 21e7a1f8ac docs: 새 세션을 위한 작업 관리 지침 추가
- CLAUDE.md에 새 세션 시작 시 작업 체크리스트 확인 지침 추가
- task-plan.md에 현재 진행 상태 업데이트 (Phase 1, 2 완료)
- 다음 세션에서 Phase 3 (프론트엔드) 진행 예정

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-05 14:58:23 +09:00

6.6 KiB

OAuth 2.0 인증 시스템 구축 작업 계획

작업 체크리스트

Phase 1: 기본 구조 설정

1. 프로젝트 디렉토리 구조 생성

  • 메인 디렉토리 생성 (oauth/, services/, .docker/, .k8s/)
  • OAuth 하위 디렉토리 생성 (backend/, frontend/, docs/, configs/)
  • 환경별 설정 디렉토리 생성 (configs/dev/, configs/vei/, configs/prod/)

2. Docker Compose 파일 생성

  • docker-compose.yml 기본 파일 작성
  • MongoDB 7.0 서비스 정의
  • Redis 7 서비스 정의
  • APISIX Gateway 서비스 정의 (나중에 추가)
  • OAuth Backend 서비스 정의
  • OAuth Frontend 서비스 정의
  • 네트워크 및 볼륨 설정
  • Health check 설정
  • 서비스 간 의존성 설정 (depends_on)

3. 환경 설정 파일 생성

  • .env.example 파일 생성
  • .env.dev 파일 생성
  • .gitignore 파일 생성

Phase 2: OAuth 백엔드 구축

1. FastAPI 프로젝트 초기화

  • backend 디렉토리 구조 생성
  • requirements.txt 파일 작성
  • Dockerfile 작성
  • .env.example 작성

2. 기본 앱 구조 생성

  • app/init.py 생성
  • app/main.py (FastAPI 앱 진입점) 생성
  • app/config.py (환경 설정) 생성

3. 데이터베이스 모델 정의

  • app/models/init.py 생성
  • app/models/user.py (사용자 모델) 생성
  • app/models/application.py (애플리케이션 모델) 생성
  • app/models/auth_history.py (인증 히스토리 모델) 생성

4. 유틸리티 및 서비스 생성

  • app/utils/init.py 생성
  • app/utils/database.py (MongoDB 연결) 생성
  • app/utils/security.py (보안 관련) 생성
  • app/services/init.py 생성
  • app/services/auth_service.py 생성
  • app/services/token_service.py (JWT 처리) 생성

5. API 라우터 구현

  • app/routers/init.py 생성
  • app/routers/auth.py (인증 엔드포인트) 생성
  • app/routers/users.py (사용자 관리) 생성
  • app/routers/applications.py (애플리케이션 관리) 생성

6. 핵심 기능 구현

  • JWT 토큰 생성/검증 로직
  • 로그인/로그아웃 API
  • OAuth 2.0 Authorization Code Flow
  • Refresh Token 관리
  • 3단계 권한 체계 (System Admin/Group Admin/User)

Phase 3: OAuth 프론트엔드 구축

1. React + Vite 프로젝트 초기화

  • Vite로 React 프로젝트 생성
  • TypeScript 설정
  • package.json 의존성 설정
  • tsconfig.json 설정
  • vite.config.ts 설정
  • Dockerfile 작성

2. MUI 및 기본 설정

  • Material-UI 설치 및 설정
  • @emotion/react, @emotion/styled 설치
  • @mui/icons-material 설치
  • 테마 설정 파일 생성
  • 글로벌 스타일 설정

3. 프로젝트 구조 생성

  • src/components/ 디렉토리 구조 생성
  • src/pages/ 디렉토리 생성
  • src/services/ 디렉토리 생성
  • src/contexts/ 디렉토리 생성
  • src/hooks/ 디렉토리 생성
  • src/utils/ 디렉토리 생성
  • src/types/ 디렉토리 생성

4. 핵심 컴포넌트 개발

  • AuthContext.tsx (인증 컨텍스트) 생성
  • Login.tsx (로그인 페이지) 생성
  • Register.tsx (회원가입 페이지) 생성
  • Dashboard.tsx (대시보드) 생성
  • Applications.tsx (애플리케이션 관리) 생성

5. API 서비스 구현

  • api.ts (API 클라이언트) 생성
  • 인증 API 연동
  • 사용자 API 연동
  • 애플리케이션 API 연동

6. 라우팅 설정

  • react-router-dom 설정
  • 보호된 라우트 구현
  • 네비게이션 구현

Phase 4: 통합 및 테스트

1. Docker Compose 통합

  • 모든 서비스 Docker 빌드 테스트
  • docker-compose up 실행 테스트
  • 서비스 간 연결 확인
  • Health check 동작 확인

2. API Gateway 설정

  • APISIX 라우팅 규칙 설정
  • Backend API 프록시 설정
  • Frontend 정적 파일 서빙 설정
  • CORS 정책 설정

3. End-to-End 테스트

  • 사용자 회원가입 플로우 테스트
  • 로그인/로그아웃 테스트
  • OAuth 2.0 인증 플로우 테스트
  • 권한 관리 테스트
  • 애플리케이션 관리 테스트

Phase 5: 배포 준비

1. Kubernetes 매니페스트 작성

  • Namespace 정의
  • ConfigMap 생성
  • Secret 생성
  • Deployment 정의
  • Service 정의
  • Ingress 설정

2. 환경별 설정 완료

  • 개발 환경 (dev) 설정 완료
  • 검증 환경 (vei) 설정 완료
  • 운영 환경 (prod) 설정 완료

3. 보안 체크

  • 환경별 Secret Key 분리
  • HTTPS 설정
  • Rate Limiting 설정
  • XSS/CSRF 방지 설정
  • 민감 정보 암호화

4. 백업 및 모니터링

  • 백업 스크립트 작성
  • Cron job 설정
  • 로깅 설정
  • 모니터링 대시보드 설정

Phase 6: 문서화 및 Git 관리

1. 문서화

  • API 문서 작성 (OpenAPI 3.0)
  • 사용자 가이드 작성
  • 관리자 가이드 작성
  • 트러블슈팅 가이드 작성

2. Git 저장소 관리


진행 상태 (2025-01-05 업데이트)

완료된 작업

  • Phase 1: 기본 구조 설정 (완료)
  • Phase 2: OAuth 백엔드 구축 (완료)

현재 대기 중인 작업

  • Phase 3: OAuth 프론트엔드 구축 (다음 세션에서 진행)

다음 작업

  • React + Vite + TypeScript + MUI 프론트엔드 구축
  • 로그인/회원가입 페이지 구현
  • OAuth 2.0 인증 플로우 UI 구현

참고사항

기술 스택

  • Frontend: React 18 + Vite + TypeScript + Material-UI
  • Backend: Python 3.11 + FastAPI + Motor (MongoDB async)
  • Database: MongoDB 7.0
  • Cache/Queue: Redis 7
  • API Gateway: APISIX
  • Container: Docker + Docker Compose
  • Orchestration: Kubernetes (Production)

접속 URL (개발 환경)

환경 변수 템플릿

SECRET_KEY=3bf17c7f-5446-4a18-9cb3-f885eba501e8
MONGODB_URL=mongodb://localhost:27017
DATABASE_NAME=oauth_db
REDIS_URL=redis://localhost:6379
ENVIRONMENT=dev
BACKUP_PATH=/var/backups/oauth
ARCHIVE_PATH=/var/archives/oauth