로그 및 보안 시스템
1. 주요 기능 구성
인증 및 접근 제한
- JWT 기반 인증
- 로그인 시 JWT 발급 → 이후 모든 API 요청 시 검증
- 토큰 만료 시 갱신 절차 필요
- API 보호
- 로그인 필요 API에 대해 미인증 접근 차단
- 관리자/유저 등 권한 레벨에 따른 접근 제어
요청 속도 제한 (Rate Limiting)
- 기본 제한 규칙
- IP 또는 사용자 기준 초당/분당 요청 횟수 제한
- 예: 10초에 5회 이상 같은 엔드포인트 요청 시 일시 차단
- 의심 활동 감지
- 동일 요청 반복, 비정상적인 데이터 조작 시 자동 차단 또는 경고
- 구현 방식
- Redis 캐시 기반 또는 프록시 레벨(Nginx 등)에서 처리
활동 로그 기록
- 기록 대상
- 기록 항목
- 사용자 ID, 행위 종류, 요청 시간, IP 주소, 요청 파라미터 일부 등
- 활용 목적
- 디버깅, 유저 대응, 이상 징후 분석, 리플레이 기능 활용 등
알림 및 경고 시스템
- 알림 방식
- 이상 징후 탐지 시 관리자에게 이메일 등으로 알림 전송
- 예시 이벤트
- 비정상 접근(잘못된 토큰 사용, 속도 초과), 금지 API 접근, DB 조작 시도 등
2. 데이터 구조 설계
AccessLog
: 요청 ID, 사용자 ID, 요청 시간, 엔드포인트, 응답 상태, IP 주소