Spring 33

POI monitorjbl xlsx-streamer 메모리 이슈 해결

POI SAX 보다 더 간단하게 메모리 이슈를 해결할수있는 방법 * 아래의 monitorjbl api를 사용하면 엑셀 대용량 문제가 간단하게 해결된다.  POI SAX XSSFReader 대용량 엑셀 파일 읽기 OOME(Out of Memory Error) 방지* 일단 시작 전에 대용량 테스트를 위한  eclipse Heap 영역 늘리기eclipse .ini 파일을 열기 Xms (시작크기) / Xmx (최대크기) 수정하기 참고로 Xmx 최대크기는 자기의 pc ram 사양을 확인하고 바꾸기 추천truecode-95.tistory.com  1. poi버전에 맞는 monitorjbl .jar를 다운받기. Download xlsx-streamer.jar - @com.monitorjblDownload: xlsx-..

Spring 2024.06.07

POI SAX XSSFReader 대용량 엑셀 파일 읽기 OOME(Out of Memory Error) 방지

* 일단 시작 전에 대용량 테스트를 위한  eclipse Heap 영역 늘리기eclipse .ini 파일을 열기 Xms (시작크기) / Xmx (최대크기) 수정하기 참고로 Xmx 최대크기는 자기의 pc ram 사양을 확인하고 바꾸기 추천  JVM 메모리 체크하는 방법 // 엑셀 파일 처리 전의 메모리 상태 출력Runtime runtime = Runtime.getRuntime();long memoryBefore = runtime.totalMemory() - runtime.freeMemory();totalMemory(): JVM이 할당한 전체 메모리 양을 반환. JVM의 초기 메모리 크기와 최대 메모리 크기를 합친 값 freeMemory(): 현재 사용 가능한 메모리 양을 반환. 현재 할당된 메모리 중에서..

Spring 2024.05.23

[SUMMERNOTE] 썸머노트 이미지 다중 업로드 처리 (글 저장 클릭 시 임시폴더에 있던 파일 복사하여 외부 폴더에..)

[JAVA, SPRING, SUMMERNOTE] 서머노트 사용법 ③ (다중 이미지 업로드) 서머노트 툴바설정 : tyrannocoding.tistory.com/14 [JAVA, SPRING, SUMMERNOTE] 서머노트 사용법 ② (Toolbar 수정) 서머노트 연동 : tyrannocoding.tistory.com/13 [JAVA, SPRING, SUMMERNOTE] 서머노트 사용법.. tyrannocoding.tistory.com Summernote - Super Simple WYSIWYG editor Super Simple WYSIWYG Editor on Bootstrap Summernote is a JavaScript library that helps you create WYSIWYG edito..

Spring 2022.02.24

@RequestParam 값이 Null / 예외 처리 (required=false)

@RequestParam spring MVC에서 쿼리 스트링 정보를 쉽게 가져오는 데 사용 @RequestParam(required=false)를 적용해 특정 파라미터 값만 받을 수 있다. int형 일 경우 (defaultValue="0") (required=false)로 지정하면 해당 키값이 존재하지 않다고 해서 BadRequest가 발생하지 않는다. required 속성 값을 따로 작성안할 경우 기본 값은 true로 지정 * 존재하지 않다면 folder 변수에 default로 null 할당 @RequestMapping(value="/common/getImg.do" , method=RequestMethod.GET) public void getImg(@RequestParam(value="id") Stri..

Spring 2022.02.16

[Spring] WebSocket sockJS 실시간 알림 구현하기 (3)

[Spring] WebSocket sockJS Q&A 실시간 알림 구현하기 (1) WebSocket : 웹소켓에서는 서버와 브라우저 사이에 양방향 소통이 가능 웹 소켓은 HTML5 이후에 나왔기 때문에 Socket.io와 SockJS 이용해서 HTML5 이전 기술로 구현된 서비스에서도 웹 소켓처럼 사용할 수 truecode-95.tistory.com [Spring] WebSocket sockJS Q&A 실시간 알림 구현하기 (2) [ 개발 부분 ] WebSocketHandler.java package egovframework...; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.apache.commons.la..

Spring 2022.01.10

[Spring] 파일 다운로드 구현

[AJAX] 다중 fileupload / formData 이용하여 JSON 파라미터 넘기기 html js file은 JSON에 포함될 수 없다. 그래서 FormData 안에 file과 JSON (= data)를 append 시킨다. //FormData 새로운 객체 생성 var formData = new FormData(); // 넘길 데이터를 담아준다. var data =.. truecode-95.tistory.com 업로드 이후로 다운로드 기능을 정리해보았다. xml SELECT file_no, board_no, original_file_name, stored_file_name, file_size, create_date, create_user, del_y_n FROM commonfiles WHERE b..

Spring 2021.12.15

[Spring] WebSocket sockJS Q&A 실시간 알림 구현하기 (2)

[Spring] WebSocket sockJS Q&A 실시간 알림 구현하기 (1) WebSocket : 웹소켓에서는 서버와 브라우저 사이에 양방향 소통이 가능 웹 소켓은 HTML5 이후에 나왔기 때문에 Socket.io와 SockJS 이용해서 HTML5 이전 기술로 구현된 서비스에서도 웹 소켓처럼 사용할 수 truecode-95.tistory.com [ 개발 부분 ] WebSocketHandler.java package egovframework...; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.sess..

Spring 2021.11.12

[Spring] WebSocket sockJS Q&A 실시간 알림 구현하기 (1)

WebSocket : 웹소켓에서는 서버와 브라우저 사이에 양방향 소통이 가능 웹 소켓은 HTML5 이후에 나왔기 때문에 Socket.io와 SockJS 이용해서 HTML5 이전 기술로 구현된 서비스에서도 웹 소켓처럼 사용할 수 있다. 클라이언트쪽은SockJS client를 통해 서버와 통신한다. 그래서 javaScript에서 sockJS 이용하여 실시간 알림을 구현해보려고 한다. [ 세팅 부분 ] pom.xml (= Maven 설정) https://mvnrepository.com/artifact/org.springframework/spring-websocket org.springframework spring-websocket ${spring.maven.artifact.version} javax.webso..

Spring 2021.11.11