DB데이터 대용량 조회 다운로드에서 OutOfMemory 피하기 대용량 DB데이터를 조회해서 엑셀파일 등으로 다운로드하는 경우, 대개 다운로드할 DB데이터를 처음부터 끝까지 힙메모리에 올렸다가 한꺼번에 이어서 내려주는 방식으로 동작한다. 이 과정에서 DB데이터를 모두 올리다가 힙메모리가 부족하면 OutOfMemoryError가 발생하게 된다. WAS의 힙메모리를 늘리면 어느 정도 해결이 되지만 이런 일이 발생할 때마다 힙메모리를 늘리다 보면 10GB로 늘리게 될 수도 있다. 이런 경우를 자주 보다가 몇 년 전에 생각해낸 방법이, 대용량 DB데이터를 힙메모리에 올리는 대신 읽는대로 임시파일로 생성한 후에 클라이언트로 데이터를 보낼 때는 이 임시파일을 읽는 것이었다. 아이디어만 갖고 있다가 며칠 전에 갑자기 해야겠다고 결심하고 해 보니 이틀 정도가 걸린 것 같다. 구현방.. 2023. 3. 18. 이전 1 다음