CS 정리

Java 대용량 데이터 처리(0)

문쿼리 2025. 4. 19. 01:33

Java에서 대용량 데이터란 무엇인가?

1) 한 번에 메모리에 올리기 어렵다.

2) 처리/응답 속도가 저하된다.

3) I/O 병목 발생

4) GC 부하 발생

5) DB 부하 발생

 

* 성능에 영향을 줄 만큼 크거나 빈번한 데이터를 의미함.

그러므로, "절대 크기"보다는 "시스템 리소스 대비 상대적"인 성격을 가진다.

 

 

Java에서 대용량 데이터 처리 방안은 무엇인가?

1. 한 번에 처리하기 -> 작게 나눠서 천천히 처리하기 (1년치 주문 데이터 정산)

2. List -> Stream (장기간 저장된 로그 분석)

3. 즉시응답 -> 비동기 예약 (10만 건 엑셀 다운로드)

4. 즉시저장 -> 모아서 저장 (비동기 데이터 수집)

5. DB만 사용 -> DB와 캐시와 계층구조 활용 (상품 상세정보 조회)

6. 싱글 쓰래드 -> 멀티 쓰래드/병렬 처리(10만 명에게 알림 발송)

 

대용량 데이터 처리에서 한 가지 방법만 사용해서 모든 문제를 해결할 수 없다.
연속적으로 기술들을 엮어서 사용하는 경우가 빈번하기 때문에 이 글을 연재물로서 표현하게 되었다.
연재물을 통해 다양한 방법론에 대한 이해를 높이고자 한다.