← 이슈 기록 목록

저장한 적 없는 조합까지 전부 등록되어 있었다

SpringMyBatisValidation

01이슈 및 현상

사용자는 실행 프로세스와 통계 주기를 하나씩만 선택해 등록했는데, DB에는 선택하지 않은 조합까지 한꺼번에 저장되어 있었습니다. 운영팀은 어떤 조합이 실제 유효 요청인지 신뢰할 수 없는 상태였습니다.

02원인 파악

등록 로직이 작업분류(job_type) 값 하나만 받아, 그 분류에 속한 실행 프로세스 × 통계 주기의 모든 조합을 서버에서 캐스케이드 방식으로 전량 생성하고 있었습니다. 화면에서 사용자가 확정한 조합은 그 중 일부일 뿐인데, 서버가 '이 분류라면 나올 수 있는 모든 경우의 수'를 저장한 것입니다.

03해결 방안

화면에서 사용자가 확정한 조합(작업내용)만 저장하도록 등록 로직을 바꿔 서버가 임의로 조합을 늘리지 않게 했습니다. 여기에 더해 우회 요청에 대비해, 허용된 프로세스·통계 주기 조합인지를 서버 단에서도 검증하는 유효성 체크를 추가했습니다.

04결과 및 성과

등록 데이터의 신뢰성이 회복되어 운영팀이 실제 요청만 실행 대상으로 다룰 수 있게 됐습니다. 검증 규칙을 화면과 서버 양쪽에 심어, 화면을 우회한 요청까지 등록 단계에서 걸러지도록 방어선을 이중화했습니다.