금융 서비스에 비정상 충전 패턴 이상감지 시스템 구축
목차
feat: 이상감지 및 할당량 관리 기능 구현
이상감지 기능은 금융 서비스에서 특히 중요함. 비정상 패턴을 자동으로 탐지하고 기록해두는 시스템을 구현했음.
이상 패턴 유형
| 패턴 | 조건 | 조치 |
|---|---|---|
| 단시간 대량 충전 | 1시간 내 N회 이상 | 경고 + 관리자 알림 |
| 비정상 시간대 접근 | 새벽 2-5시 대량 거래 | 로그 기록 |
| 기기 변경 후 즉시 거래 | 기기 바뀌고 5분 내 | 2차 인증 요구 |
| 할당량 초과 시도 | 제한 금액 계속 재시도 | 일시 차단 |
탐지 로직
public boolean isAnomaly(AnomalyCheckDto dto) {
int chargeCount = anomalyMapper.countRecentCharge(
dto.getMemberSn(),
LocalDateTime.now().minusHours(1)
);
return chargeCount >= anomalyThreshold;
}
이력 조회 기능
관리자가 특정 사용자의 이상감지 이력을 조회할 수 있도록 Excel 다운로드와 함께 제공함.
- 조회 기간 필터
- 이상 유형 필터
- CSV/Excel 내보내기
다음: ML 기반 이상 스코어링 도입 검토
개발 원칙 정리
이 작업을 진행하면서 재확인한 원칙들:
작은 커밋: 변경 단위를 작게 유지해서 코드 리뷰와 롤백이 쉽게.
테스트 먼저: 변경 전 현재 동작을 파악하고, 변경 후 동일하게 동작하는지 확인.
문서 동기화: 코드가 바뀌면 관련 주석과 문서도 같이 업데이트.
| 원칙 | 이유 |
|---|---|
| 단일 책임 | 하나의 함수/클래스는 하나의 역할만 |
| 명시적 코드 | 영리한 코드보다 읽기 쉬운 코드 |
| 실패 우선 처리 | happy path보다 에러 케이스 먼저 설계 |
댓글 0
첫 댓글 달아줘.