제안요약서 slide15 현행진단이 "보관 기간 — 2년 이상, 기본값 730일,
관리자 설정값 미존재 → 신규 구축"으로 지목한 항목이다. 파기 배치가
자바 상수 ACCESS_LOG_RETENTION_DAYS=730 을 써서 관리자가 바꿀 수 없었다.
· ACCOUNT_MNG_POLICY.ACCESS_LOG_KEEP_DAY 신설(기본 730)
이 표에 이미 LOGIN_HIST_KEEP_DAY 가 있어 사실상 보관·파기 정책의 단일
창구다. 표를 새로 만들면 관리자가 보관기간을 두 화면에서 나눠 보게 된다.
· 법정 하한 730일을 세 겹으로 강제
화면 JS / 서버 validatePolicy / 파기 배치. 화면만 막으면 요청을 직접
만드는 경로가, 저장만 막으면 정책 행을 직접 고치는 경로가 남는다.
배치는 정책값이 730 미만이어도 730일치를 남긴다 — 한 번 지운 접속기록은
되돌릴 수 없어 설정 실수로 법정 보관기간을 깨는 쪽보다 더 남기는 쪽으로 기운다.
DB CHECK 를 쓰지 않은 이유는 MariaDB/MySQL 5.7 에서 동작이 갈려 조용히
통과할 수 있어서다.
· 접속기록 조회 화면의 "보관기간 N일" 안내도 정책값을 읽는다
파기 배치가 실제로 쓰는 값과 달라지면 안내가 거짓말이 된다.
정책 조회 실패 시 양쪽 모두 기본값으로 물러난다(안내 때문에 목록이 막히면 안 된다).
검증: mvn compile EXIT=0, JSP Jasper 오류 0건, DDL 적용 후
ACCESS_LOG_KEEP_DAY=730 확인, 재기동 정상, 정책화면·접속기록 302→로그인.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>