🐞 문제
DB 조회 제한을 두지 않은 상태에서 10,000,000건 이상 대량 조회가 여러 번 요청되었을 때 다음과 같은 에러 발생
java.lang.OutOfMemoryError: Java heap space
🔍 원인
- JVM 기본 힙 크기(-Xms, -Xmx)가 부족한 상태에서 대용량 데이터를 한꺼번에 적재하려다 메모리 초과 발생.
- 반복적으로 대량 데이터를 조회하면서 GC가 메모리를 해제하기 전에 새 객체가 계속 생성됨.
✅ 해결
- JVM 옵션에서 힙 크기 조정
- 불필요한 객체 참조 해제 및 스트리밍 처리(I/O)
- 데이터 조회시 최대 건수 제한 설정
✨배운 점
- DB 조회에 건수 제한을 두지 않으면 서비스 전체 안정성에 영향을 줄 수 있음.
- 운영 전 부하테스트와 메모리 모니터링을 필수.