Created
June 23, 2025 10:25
-
-
Save charsyam/cac98f862a3c9f16a0bc5862553d1d45 to your computer and use it in GitHub Desktop.
Redis 모니터링 생성 tasks.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Redis 모니터링 시스템 개발 Task 문서 | |
## 📌 개요 | |
- 본 문서는 Redis 모니터링 시스템 구축을 위한 Task를 상세하게 나눈 작업 목록입니다. | |
- 각 Task는 상태, 의존성, 인수 테스트 조건을 포함합니다. | |
--- | |
## 🟧 A. 인증 및 보안 (AUTH) | |
### A1. RSA 인증 구현 | |
- **Subtasks** | |
- RSA 공개키/개인키 생성 | |
- password 암호화/복호화 처리 | |
- **Dependencies**: 없음 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 로그인 시 password 복호화 성공 여부 | |
--- | |
### A2. JWT 발급 | |
- **Subtasks** | |
- JWT 토큰 발급 및 검증 | |
- 만료시간 설정 | |
- **Dependencies**: A1 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 로그인 후 유효 토큰 응답 | |
--- | |
### A3. 인증 미들웨어 | |
- **Subtasks** | |
- JWT 검사 미들웨어 구현 | |
- `/metrics`, `/groups` 등 보호 | |
- **Dependencies**: A2 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 인증 없는 요청 시 401 반환 | |
--- | |
## 🟩 B. 백엔드 API (BACKEND) | |
### B1. FastAPI 설정 | |
- **Subtasks** | |
- 디렉토리 구조화 | |
- 기본 라우팅 구현 | |
- **Dependencies**: 없음 | |
- **Status**: Completed | |
- **Acceptance Criteria**: 서버 실행 성공 | |
--- | |
### B2. 그룹/인스턴스 API | |
- **Subtasks** | |
- `POST /groups`, `POST /instances`, `PUT /instances/{id}` | |
- **Dependencies**: B1 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 인스턴스 등록 후 config 반영 | |
--- | |
### B3. `/metrics` API | |
- **Subtasks** | |
- 메트릭 조회 API 개발 | |
- DB 조회 후 시계열 반환 | |
- **Dependencies**: C2, D2, A3 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: UI에서 메트릭 정상 조회 | |
--- | |
## 🟦 C. Redis 수집기 (COLLECTOR) | |
### C1. Redis 연결 모듈 | |
- **Subtasks** | |
- redis-py 연결, ping, info | |
- 연결 실패 처리 및 백오프 | |
- **Dependencies**: 없음 | |
- **Status**: In Progress | |
- **Acceptance Criteria**: 비정상 Redis 무시하고 로깅 | |
--- | |
### C2. 메트릭 수집기 | |
- **Subtasks** | |
- 10초 주기 수집 루프 | |
- 메모리, CPU, ops/sec 포함 | |
- **Dependencies**: C1, D1 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: DB에 수집값 반영 | |
--- | |
### C3. O(N) 분석기 | |
- **Subtasks** | |
- commandstats에서 KEYS, LRANGE, SMEMBERS 파싱 | |
- **Dependencies**: C2 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: O(N) 명령어 횟수 저장 확인 | |
--- | |
## 🟨 D. 데이터베이스 (DB) | |
### D1. SQLite 파티셔닝 설계 | |
- **Subtasks** | |
- 월별 DB 파일 생성 로직 | |
- Schema 설계 (`metrics`, `instances` 등) | |
- **Dependencies**: 없음 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: DB 파일이 월별로 생성됨 | |
--- | |
### D2. 데이터 삽입 모듈 | |
- **Subtasks** | |
- collector → DB write 함수 | |
- group/instance ID 매핑 | |
- **Dependencies**: D1 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 수집값이 정상 저장됨 | |
--- | |
### D3. 1개월 초과 데이터 삭제 | |
- **Subtasks** | |
- 삭제 스케줄러 구현 | |
- 오래된 DB 파일 자동 삭제 | |
- **Dependencies**: D1 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 과거 DB 삭제 확인 | |
--- | |
## 🟪 E. 알림/경고 (EMAIL) | |
### E1. 경고 조건 정의 | |
- **Subtasks** | |
- used_memory > 80% | |
- O(N) 명령 비율 > 10% | |
- **Dependencies**: C3 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 조건 만족 시 알림 발생 | |
--- | |
### E2. 이메일 전송 | |
- **Subtasks** | |
- SMTP 또는 SES 연동 | |
- 알림 중복 방지 (1일 1회) | |
- **Dependencies**: E1 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 이메일 1회 수신 확인 | |
--- | |
### E3. 경고 로그 기록 | |
- **Subtasks** | |
- 알림 발송 이력 저장 | |
- 중복 방지용 DB 체크 | |
- **Dependencies**: E2 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 중복 발송 없이 로그 저장됨 | |
--- | |
## 🟫 F. 프론트엔드 (FRONTEND) | |
### F1. 대시보드 페이지 | |
- **Subtasks** | |
- 그룹/인스턴스 목록 | |
- 간단 메트릭 표시 | |
- **Dependencies**: B3 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 목록과 값 표시됨 | |
--- | |
### F2. 상세 페이지 (Chart.js) | |
- **Subtasks** | |
- used_memory 등 시계열 그래프 | |
- O(N) 명령 테이블 | |
- **Dependencies**: B3 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 각 항목 시각화 성공 | |
--- | |
### F3. 로그인 페이지 | |
- **Subtasks** | |
- RSA 암호화 후 POST | |
- JWT 저장 및 redirect | |
- **Dependencies**: A1, A2 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 로그인 후 이동 확인 | |
--- | |
## ⬛ G. 통합 및 수동 테스트 (TEST) | |
### G1. Collector 단위 테스트 | |
- **Subtasks** | |
- Redis mock 사용 | |
- 실패 및 재시도 로직 검증 | |
- **Dependencies**: C2 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 수집기 예외 없이 실행됨 | |
--- | |
### G2. API 통합 테스트 | |
- **Subtasks** | |
- FastAPI TestClient로 검증 | |
- 인증, 존재 유무 확인 | |
- **Dependencies**: B2, B3 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 200/401/404 응답 확인 | |
--- | |
### G3. UI 수동 테스트 | |
- **Subtasks** | |
- chart.js 출력 테스트 | |
- 클릭 및 필터 기능 확인 | |
- **Dependencies**: F1, F2 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: UI 시각화 정합성 확보 | |
--- | |
### G4. 이메일 경고 시나리오 | |
- **Subtasks** | |
- 조건 만족 트리거 | |
- 중복 방지 로직 확인 | |
- **Dependencies**: E2, E3 | |
- **Status**: Not Started | |
- **Acceptance Criteria**: 하루 1회만 전송됨 | |
--- | |
## ⛓ 의존성 요약 | |
``` | |
A1 → A2 → A3 → B3 → F3 | |
B1 → B2 → B3 → F1, F2 | |
C1 → C2 → C3 → E1 → E2 → E3 | |
D1 → D2 → D3 | |
``` | |
--- | |
## ✅ 상태 요약 | |
| 상태 | Task 수 | | |
|------|---------| | |
| Not Started | 25 | | |
| In Progress | 1 (C1) | | |
| Completed | 1 (B1) | | |
--- | |
> 이 문서는 실시간 업무 진행 상황을 반영하여 업데이트되어야 합니다. | |
> 필요 시 Kanban 보드 형태로 전환하거나 Excel로 변환하여 관리하세요. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment