강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

dlwjdtjq001님의 프로필 이미지
dlwjdtjq001

작성한 질문수

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

다운 스트림 컬렉터1

db sql vs java stream 비교 궁금증 알려주세요!

작성

·

27

0

=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요 스트림 강의를 보다가 질문 드립니다
웹 어플리케이션 기준으로 스트림은 보통 데이터를 처리하는데 쓰일 것 같은데요

많은양의 데이터라면 보통 디비단에서 최대한 필터링하고 걸러서 가져오는게 네트워크호출랴도 그렇고 이점이 많을것 같은데 그럼 스트림은 보통 언제쓰이나요? 데이터를 필터링하고 정렬하고 가공하는건 디비단에서 해서 가져오는게 더 효율이 좋다 했을 때 스트림으로 가공하는 데이터 수준은 디비단에서 다 할 수 있을 것 같아서요

같은 데이터를 가공하단 는게 필요하다고 해도 기존 sql 재사용 하고 스트림으로 재가공 하는것보다는 새로 sql문 날려서 가져오는게 더 낫지 않나요?

보통 웹 어플리케이션에서 어떤 상황에 쓰이는지 궁금합니다!

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. dlwjdtjq001님.

데이터 처리 시, DB와 Java Stream의 사용에 관한 효율성과 그 차이점을 고민하고 계시네요. 이 질문에 대한 답변은 데이터의 성격, 어플리케이션의 구조, 비즈니스 로직 등에 따라 다를 수 있습니다. SQL과 Java Stream의 사용에 대한 이해를 돕기 위해 아래와 같은 링크를 참고해 보시면 도움이 될 것입니다:

  1. SQL where 문 vs Java stream filter 성능차이에 관한 질문입니다
    • 이 게시물에서는 DB에서 데이터 필터링을 최대한 수행하는 것이 네트워크 비용 절감과 메모리 사용 측면에서 더 유리하다는 점을 설명하고 있습니다. 또한, 데이터 양이 적정 수준일 때 Java Stream을 사용하는 것이 효과적일 수 있음을 언급합니다.

Java Stream은 주로 다음과 같은 상황에서 유용하게 사용됩니다:
- 컬렉션 변환 및 필터링: 이미 어플리케이션 내에 로드된 데이터에 대해 추가적인 처리를 수행해야 할 때, 특히 비즈니스 로직에 맞게 즉각적인 변환이나 필터링이 필요할 경우.
- 병렬 처리: 데이터를 병렬로 처리하여 성능을 향상시키고자 할 때, 특히 CPU 처리 작업이 많은 경우.

스트림을 사용하면 간결한 코드를 작성할 수 있으며, 특히 병렬 처리에 유리합니다. 그러나, 데이터가 매우 크거나 복잡한 SQL 연산이 필요한 경우에는 DB에서 최대한 처리를 완료한 후 가져오는 것이 더 바람직합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dlwjdtjq001님의 프로필 이미지
dlwjdtjq001

작성한 질문수

질문하기