[Java + WebSquare5] 업로드 클래스 문제 해결 – fileDefiner 설정 분석과 커스텀 처리
·
Back-end/Java(+spring)
WebSquare5 환경에서 파일 업로드 기능을 개발할 때, websquare.xml의 fileDefiner 설정으로 인해 로컬 개발 환경에서 ClassNotFoundException이 발생하는 경우가 있습니다. 이 글에서는 제가 경험한 업로드 클래스 적용 오류의 원인과 해결 과정, 그리고 WebSquare의 업로드 구조와 커스텀 구현 시 고려사항을 기술적으로 정리해 보겠습니다.문제 상황: fileDefiner 클래스 미적용개발 환경에서 파일 업로드 기능을 테스트하던 중, 기능이 정상적으로 작동하지 않고 애플리케이션 로그에 다음과 같은 오류가 기록되었습니다.java.lang.ClassNotFoundException: com.____.___.___.FileUploadDefinerImplwebsquare.x..
[Spring AOP] 그리드의 CRUD 상태 처리와 작업자 정보 자동 반영 실무 전략
·
Back-end/Java(+spring)
1. 문제 개요WebSquare 그리드를 통해 사용자가 입력·수정한 데이터를 서버에 전송할 때, 다음과 같은 조건을 만족해야 한다각 row는 반드시 rowStatus 값을 포함해야 함 (I, U, D)서버에서는 insert/update/delete 각각에 대해 DB 처리뿐만 아니라 **작업자 정보(userId) 및 수정일시(updDt)**를 함께 저장해야 함이 과정이 중복 없이, 통합된 방식으로 유지보수 가능해야 함하지만 기존 코드에서는 모든 Controller/Service에서 반복적으로 작업자 정보 주입 로직이 포함되어 있어, 코드 중복과 누락, 유지보수성 문제를 유발한다. 2. 기존 방식의 한계rowStatus를 클라이언트에서 수동으로 넣지 않으면 구분 불가각 서비스 메서드마다 작업자 ID, 수정시..
[Apache POI] 대용량 Excel 다운로드 시 발생하는 GC 문제와 SXSSFWorkbook 기반 실무 리팩토링
·
Back-end/Java(+spring)
1. 문제 개요레거시 시스템에서 XSSFWorkbook을 사용해 수만~수십만 건의 데이터를 Excel로 다운로드하는 기능이 구현된 경우, 다음과 같은 문제가 빈번히 발생한다.서버 응답 지연: 수 초에서 수십 초 이상의 처리시간 소요OutOfMemoryError: Heap memory 초과 발생Full GC 빈도 상승: 전체 시스템 성능 저하 초래이러한 문제는 특히 인증서, 보고서, 거래 내역 등의 정기적 대량 다운로드 기능이 존재하는 시스템에서 자주 나타난다. 2. 기술적 원인 분석2.1 XSSFWorkbook의 구조적 한계모든 데이터를 메모리 상에서 유지하고, 최종적으로 한 번에 flush10만 건 이상의 row를 처리할 경우 수백 MB~1GB 이상의 Heap 공간 사용Java의 Young GC/Ful..