500만 데이터 엑셀 출력을 4GB 메모리에서 하는방법
정산시스템의 대용량 엑셀 출력에서 OOM과 재시도 폭주를 해결한 사례를 다뤘습니다. 날짜 단위 병렬 처리와 DB Cursor, S3 업로드로 메모리 부담 없이 비동기 다운로드 구조를 만들었습니다.
#Spring Batch#JPA#MySQL
18100


정산시스템의 대용량 엑셀 출력에서 OOM과 재시도 폭주를 해결한 사례를 다뤘습니다. 날짜 단위 병렬 처리와 DB Cursor, S3 업로드로 메모리 부담 없이 비동기 다운로드 구조를 만들었습니다.

삼쩜삼이 대용량 데이터와 트래픽 집중 문제를 해결하기 위해 DynamoDB와 S3로 저장 구조를 분리했습니다. 또한 운영 단계에서 처리량 예열, GSI 설계, 읽기 일관성 대응으로 안정성을 높였습니다.

복잡한 세금 도메인에서 영어 네이밍의 한계를 넘어 한글 코딩을 도입한 경험을 공유했습니다. 빌드, 테스트, JPA, Swagger에서의 이슈와 해결 과정도 함께 정리했습니다.

5월 트래픽 폭증에 대비해 RDS 모니터링과 자원 분리 전략을 강화했습니다. 커밋 지연 원인을 찾아 파라미터를 조정해 처리량을 개선했습니다.

세금 계산의 부동소수점 오차를 줄이기 위해 BigDecimal 사용법과 주의점을 정리했습니다. 특히 생성 방식과 나눗셈 처리에서 발생할 수 있는 실수를 중심으로 설명했습니다.

삼쩜삼이 변환신고 자동화와 홈택스 연동으로 간편환급을 구현한 원리를 설명했습니다. 또한 대상 확대와 간편인증 도입으로 이용 편의성과 자동신고율을 높인 과정을 정리했습니다.
