498d0d44f0
리뷰에서 P0로 지적된 동시성/롱 트랜잭션 이슈 일괄 해소. LookupCache (P0 데이터 정합성): - 싱글톤 인스턴스 필드 캐시 제거 → preload()가 새 Map 반환, 호출자 보유 - TransformEngine.transform/applyTransform/applyLookup/applyCodeMap 시그니처에 lookupData 파라미터 추가하여 명시적 전달 - 스레드 간 공유 상태 자체가 없어져 동기화 불필요 UploadService (P0 가용성): - 신규 UploadTxHelper로 saveHistory/insertBatch/updateHistory를 REQUIRES_NEW로 분리 - UploadService에서 @Transactional 완전 제거 — 파일 파싱은 트랜잭션 밖 - 청크(1000행) 단위 커밋 → 커넥션 점유 시간 감소 TransferFileService (P0 정합성): - 파일 생성을 트랜잭션 밖으로 분리 - markPaymentsSent() 별도 @Transactional로 payment UPDATE만 처리 - 파일 저장 실패 시 payment 상태 미변경으로 재시도 안전성 확보 조회 메서드 readOnly=true 일괄 적용 (Hibernate dirty check 비활성화 / 읽기 복제본 라우팅 준비): - AgentService, ContractService, LedgerService, SettleService, OrganizationService, UserService 조회 메서드 전체