접속기록(SFR-004/#33): - AccessLogQueue 포화 방어. 종전 offer(timeout) 무한 반복은 컨슈머 정지 시 요청 스레드가 영구 대기해 WAS 스레드 풀 고갈 → 사이트 전면 정지로 이어졌다. 대기를 3회로 제한하고 포화 차단기(saturated)를 도입해 지속 포화 시 즉시 판정한다. - 유실은 조용히 넘기지 않는다. recordDrop 이 누적 집계 + 초기 20건/이후 100건 표본 ERROR 로그로 남긴다(법정 보관 대상이므로 사후 추적 가능해야 함). - 컨슈머 루프가 Exception 이 아닌 Throwable 까지 흡수한다. Error 하나로 컨슈머가 죽으면 running=true 인 채 이후 전 요청이 포화 대기에 빠졌다. - 자체 데몬 워치독(30초) 추가 — 컨슈머 사망 시 재기동, 적체 경고, 차단기 자동 해제. task:annotation-driven 활성화 여부와 무관해야 하므로 @Scheduled 를 쓰지 않는다. - 해시체인 순번 보장을 위한 단일 컨슈머 전제는 유지(병렬화 금지). 인증정보 보호(SER-001/SER-003/#27): - EgovFileScrty 사용자별 랜덤 솔트(S1: 형식) 도입, matches() 로 검증 일원화 — 기존 무솔트 계정과 공존한다. - 비밀번호 변경 시 현재 비밀번호 검증 복구. 종전에는 DB 값을 자기 자신과 비교해 항상 true 였고, 입력한 oldPassword 가 어디에도 쓰이지 않았다. - 평문 비밀번호 println 제거. 관리자 화면: 접속기록 조회, 업무구분 매핑 관리, 권한변경 이력, 미사용계정 현황. 계정 파기(AccountDelete) 서비스 및 DDL/DML 추가. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
19 lines
241 B
Plaintext
19 lines
241 B
Plaintext
target/
|
|
*.mp4
|
|
*.avi
|
|
*.mov
|
|
*.wmv
|
|
*.class
|
|
.settings/
|
|
.project
|
|
.classpath
|
|
Thumbs.db
|
|
.DS_Store
|
|
|
|
# 배포 작업 산출물 — 저장소 이력 대상 아님 (2026-08-07)
|
|
_deploy_backup_*/
|
|
_workspace/
|
|
_workspace_privacy/
|
|
dump-csv-*.sql
|
|
.idea/
|