- R3: datatrans ncmsDataMapper.xml selectMultimediaAssets 의 개발용 하드코딩
`and id='132041'` + `limit 1` 제거 → 운영 시 전 대상 자산 전송(누락 원인 해소).
XML well-formed 검증 통과. 실 로직 SQL(iams_tran_yn/deleted_at 필터)만 유지.
- R4: 날짜 접미사 백업 파일 14종 삭제(MailKaTalkSendKiccJob.java.20250703,
KicGroupwareMapper.xml.20250701, layout.css.2025*, MainView.jsp.2025*, 이미지 백업 등).
실 파일(.java/.jsp/.css/.png 원본) 전부 잔존 확인. 커밋된 bin/ 은 이미 조립 단계 정리됨(0건).
- .gitignore: 날짜 접미사 백업(*.20xxxxxx) 패턴 추가로 재유입 차단.
동작 등가: 소스/리소스 실 파일 불변, 제거 대상은 미사용 백업뿐. R3은 운영 정합성 회복(의도된 개선).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
behavior-identical 확인된 4개 플레인 클래스를 com.urpsys.common 으로 단일화하고
5개 모듈이 implementation project(':common') 으로 참조하도록 전환.
추출(사본 대조 후 동작 등가 확정):
- crypto/Aes256Cipher (5벌→1): 암호로직 전 사본 동일. front 키스토어 상이(UrpSysKeyMng)
→ 생성자 파라미터화(무인자=UrpSystem 기본, front EncryptConfig 만 명시).
미사용 dead 변수(activeProfile) 제거로 CommonUtil 의존 인라인.
- exception/CustomException (5벌→1): 전 사본 로직 동일(주석·brace 스타일 차이만).
- util/ConvertUtils (api·front→1): 동일. batch 는 LinkedHashMap 분기(기능 상이) → batch 로컬 유지.
- util/DataSourceUtil (api·auth·batch·datatrans→1): 로직 동일(미사용 import 차이만).
모듈 잔류(특화·안전상 미추출, 사유 기록):
- config/EncryptConfig·PasswordEncoderConfig(@Configuration): 모듈별 @ComponentScan 이
자기 패키지 한정(api·auth·datatrans·front) → common 이관 시 빈 미등록. EncryptConfig 는
front 키스토어 특화도 겸함. 각 모듈 로컬 유지하되 common Aes256Cipher 참조로 전환.
- CommonUtil·RestApiCallUtil·HtmlEmailUtil: 사본 간 실기능 분기 大(73~293라인) → 강제 초집합 시
동작 변경 위험 → 모듈 로컬 유지.
빌드: common·auth·api·batch·datatrans·front compileJava 전부 SUCCESS(--rerun-tasks).
인코딩: 소스 UTF-8, 루트 subprojects JavaCompile encoding=UTF-8 명시(플랫폼 CP949 회귀 방지).
Bean 이름(aes256Cipher)·프로파일·포트 불변. 시크릿 미기재.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
egov 저장소가 org.springmodules:spring-modules-validation:0.9 를 잘못된 groupId(org.egovframe.rte)로
게시하여 Gradle 엄격 메타데이터 검증이 'bad group' 으로 거부(front compileClasspath FAILED).
- Maven Central 미보유(404), egov JAR 은 org/springmodules 경로에 정상 게시(200).
- 해당 모듈 한정 POM 무시(metadataSources artifact) + content includeModule 로 동일 JAR 취득.
- 다른 모듈은 org.springmodules 미요청 → 무영향. front compileJava SUCCESS.
동작 등가: 원본과 동일 JAR, 좌표/버전 불변.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
isAbleOnline() 및 isAbleReadNow() 모두 false인 항목(디지털 파일 없음 또는
BOOKCASE_ID 미설정 등 이용 불가 자료)을 검색 결과 목록에서 필터링한다.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>