Gmail 아이템 구현 진행 상황 업데이트
- DB 작업 완료 (robeing_stats, gmail_tokens, gmail_audit_logs) - robeing-monitor 서비스 구축 및 배포 완료 - Gateway 설정 완료 (/api/items/* 라우팅) - 통합 테스트 일부 완료 (인벤토리 조회) - 약 50개 작업 완료 체크
This commit is contained in:
parent
68c40c0973
commit
9c9adf1781
@ -9,86 +9,86 @@
|
||||
## 1. 데이터베이스 작업 (서버 관리자)
|
||||
|
||||
### 1.1 robeing_stats 테이블 생성
|
||||
- [ ] 테이블 생성 SQL 작성
|
||||
- [ ] user_id 외래키 제약 추가
|
||||
- [ ] robeing_id 유니크 제약 추가
|
||||
- [ ] 인덱스 생성 (robeing_id, user_id)
|
||||
- [ ] 기본 데이터 삽입 (rb8001, level=5)
|
||||
- [ ] 생성 확인 쿼리 실행
|
||||
- [x] 테이블 생성 SQL 작성
|
||||
- [x] user_id 외래키 제약 추가
|
||||
- [x] robeing_id 유니크 제약 추가
|
||||
- [x] 인덱스 생성 (robeing_id, user_id)
|
||||
- [x] 기본 데이터 삽입 (rb8001, level=5)
|
||||
- [x] 생성 확인 쿼리 실행
|
||||
|
||||
### 1.2 gmail_tokens 테이블 수정
|
||||
- [ ] is_equipped 컬럼 추가
|
||||
- [ ] equipped_to 컬럼 추가
|
||||
- [ ] 기존 데이터 is_equipped=false로 초기화
|
||||
- [ ] 인덱스 재구성
|
||||
- [ ] 수정 확인 쿼리 실행
|
||||
- [x] is_equipped 컬럼 추가
|
||||
- [x] equipped_to 컬럼 추가
|
||||
- [x] 기존 데이터 is_equipped=false로 초기화
|
||||
- [x] 인덱스 재구성
|
||||
- [x] 수정 확인 쿼리 실행
|
||||
|
||||
### 1.3 gmail_audit_logs 테이블 생성
|
||||
- [ ] 테이블 생성 SQL 작성
|
||||
- [ ] created_at 인덱스 추가
|
||||
- [ ] user_id 인덱스 추가
|
||||
- [ ] action 인덱스 추가
|
||||
- [ ] 생성 확인 쿼리 실행
|
||||
- [x] 테이블 생성 SQL 작성
|
||||
- [x] created_at 인덱스 추가
|
||||
- [x] user_id 인덱스 추가
|
||||
- [x] action 인덱스 추가
|
||||
- [x] 생성 확인 쿼리 실행
|
||||
|
||||
---
|
||||
|
||||
## 2. robeing-monitor 서비스 구축 (서버 관리자)
|
||||
## 2. robeing-monitor 서비스 구축 (로컬 개발자)
|
||||
|
||||
### 2.1 프로젝트 초기 설정
|
||||
- [ ] robeing-state-service 클론
|
||||
- [ ] 포트 9024로 변경
|
||||
- [ ] requirements.txt 확인
|
||||
- [ ] .env 파일 생성
|
||||
- [ ] PostgreSQL 연결 설정 (192.168.219.45)
|
||||
- [x] robeing-state-service 클론
|
||||
- [x] 포트 9024로 변경
|
||||
- [x] requirements.txt 확인
|
||||
- [x] .env 파일 생성
|
||||
- [x] PostgreSQL 연결 설정 (192.168.219.45)
|
||||
|
||||
### 2.2 아이템 매니저 구현
|
||||
- [ ] app/monitor 디렉토리 생성
|
||||
- [ ] gmail_item_manager.py 생성
|
||||
- [ ] 데이터베이스 연결 클래스 작성
|
||||
- [ ] 아이템 조회 메서드 구현
|
||||
- [ ] get_all_items(user_id)
|
||||
- [ ] get_equipped_item(user_id)
|
||||
- [ ] get_available_items(user_id)
|
||||
- [ ] 아이템 장착 메서드 구현
|
||||
- [ ] check_level_requirement(robeing_id)
|
||||
- [ ] check_ownership(user_id, item_id)
|
||||
- [ ] equip_item(user_id, robeing_id, item_id)
|
||||
- [ ] unequip_item(user_id, item_id)
|
||||
- [ ] 감사 로그 메서드 구현
|
||||
- [ ] log_action(user_id, robeing_id, action, details)
|
||||
- [x] app/monitor 디렉토리 생성
|
||||
- [x] gmail_item_manager.py 생성
|
||||
- [x] 데이터베이스 연결 클래스 작성
|
||||
- [x] 아이템 조회 메서드 구현
|
||||
- [x] get_all_items(user_id)
|
||||
- [x] get_equipped_item(user_id)
|
||||
- [x] get_available_items(user_id)
|
||||
- [x] 아이템 장착 메서드 구현
|
||||
- [x] check_level_requirement(robeing_id)
|
||||
- [x] check_ownership(user_id, item_id)
|
||||
- [x] equip_item(user_id, robeing_id, item_id)
|
||||
- [x] unequip_item(user_id, item_id)
|
||||
- [x] 감사 로그 메서드 구현
|
||||
- [x] log_action(user_id, robeing_id, action, details)
|
||||
|
||||
### 2.3 API 엔드포인트 구현
|
||||
- [ ] app/api/item_routes.py 생성
|
||||
- [ ] GET /api/items/gmail 엔드포인트
|
||||
- [ ] 요청 파라미터 검증
|
||||
- [ ] 아이템 목록 조회
|
||||
- [ ] capabilities 계산
|
||||
- [ ] 응답 포맷팅
|
||||
- [ ] POST /api/items/gmail/:userId/equip 엔드포인트
|
||||
- [ ] 요청 바디 검증
|
||||
- [ ] 레벨 체크
|
||||
- [ ] 소유권 확인
|
||||
- [ ] 장착 처리
|
||||
- [ ] 감사 로그 기록
|
||||
- [ ] 응답 반환
|
||||
- [ ] POST /api/items/gmail/:userId/reauth 엔드포인트
|
||||
- [ ] auth-server와 통신 설정
|
||||
- [ ] OAuth URL 생성 요청
|
||||
- [ ] state 관리
|
||||
- [ ] 응답 반환
|
||||
- [ ] DELETE /api/items/gmail/:userId 엔드포인트
|
||||
- [ ] 철회 권한 확인
|
||||
- [ ] 토큰 삭제 처리
|
||||
- [ ] 감사 로그 기록
|
||||
- [ ] 응답 반환
|
||||
- [x] app/api/item_routes.py 생성
|
||||
- [x] GET /api/items/gmail 엔드포인트
|
||||
- [x] 요청 파라미터 검증
|
||||
- [x] 아이템 목록 조회
|
||||
- [x] capabilities 계산
|
||||
- [x] 응답 포맷팅
|
||||
- [x] POST /api/items/gmail/:userId/equip 엔드포인트
|
||||
- [x] 요청 바디 검증
|
||||
- [x] 레벨 체크
|
||||
- [x] 소유권 확인
|
||||
- [x] 장착 처리
|
||||
- [x] 감사 로그 기록
|
||||
- [x] 응답 반환
|
||||
- [x] POST /api/items/gmail/:userId/reauth 엔드포인트
|
||||
- [x] auth-server와 통신 설정
|
||||
- [x] OAuth URL 생성 요청
|
||||
- [x] state 관리
|
||||
- [x] 응답 반환
|
||||
- [x] DELETE /api/items/gmail/:userId 엔드포인트
|
||||
- [x] 철회 권한 확인
|
||||
- [x] 토큰 삭제 처리
|
||||
- [x] 감사 로그 기록
|
||||
- [x] 응답 반환
|
||||
|
||||
### 2.4 서비스 배포
|
||||
- [ ] Dockerfile 수정
|
||||
- [ ] docker-compose.yml 작성
|
||||
- [ ] 빌드 테스트
|
||||
- [ ] 컨테이너 실행
|
||||
- [ ] 헬스체크 엔드포인트 확인
|
||||
- [ ] 로그 확인
|
||||
- [x] Dockerfile 수정
|
||||
- [x] docker-compose.yml 작성
|
||||
- [x] 빌드 테스트
|
||||
- [x] 컨테이너 실행
|
||||
- [x] 헬스체크 엔드포인트 확인
|
||||
- [x] 로그 확인
|
||||
|
||||
---
|
||||
|
||||
@ -290,23 +290,23 @@
|
||||
## 6. Gateway 설정 (서버 관리자)
|
||||
|
||||
### 6.1 라우팅 규칙 추가
|
||||
- [ ] nginx 설정 수정 (또는 Gateway 코드)
|
||||
- [ ] /api/items/* → robeing-monitor:9024 프록시
|
||||
- [ ] 헤더 전달 설정
|
||||
- [ ] CORS 설정
|
||||
- [x] nginx 설정 수정 (또는 Gateway 코드)
|
||||
- [x] /api/items/* → robeing-monitor:9024 프록시
|
||||
- [x] 헤더 전달 설정
|
||||
- [x] CORS 설정
|
||||
|
||||
### 6.2 인증 미들웨어
|
||||
- [ ] JWT 검증 로직 확인
|
||||
- [ ] 사용자 정보 전달
|
||||
- [ ] 에러 응답 표준화
|
||||
- [x] JWT 검증 로직 확인
|
||||
- [x] 사용자 정보 전달
|
||||
- [x] 에러 응답 표준화
|
||||
|
||||
---
|
||||
|
||||
## 7. 통합 테스트
|
||||
|
||||
### 7.1 E2E 시나리오
|
||||
- [ ] 로그인 → 인벤토리 조회
|
||||
- [ ] Gmail 아이템 장착
|
||||
- [x] 로그인 → 인벤토리 조회 (Gateway 통해 테스트 완료)
|
||||
- [ ] Gmail 아이템 장착 (실제 Gmail 토큰 필요)
|
||||
- [ ] 이메일 발송 요청
|
||||
- [ ] 토큰 만료 → 재인증
|
||||
- [ ] 아이템 철회
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user