Skip to content

Instantly share code, notes, and snippets.

@charsyam
Created June 23, 2025 10:25
Show Gist options
  • Save charsyam/cac98f862a3c9f16a0bc5862553d1d45 to your computer and use it in GitHub Desktop.
Save charsyam/cac98f862a3c9f16a0bc5862553d1d45 to your computer and use it in GitHub Desktop.
Redis 모니터링 생성 tasks.md
# 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