-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
Sequence vs Stream
24.03.18 01:33 작성 조회수 70
1
안녕하세요
Sequence와 Stream의 차이점에 대해서 질문드립니다.
Sequence가 지연연산의 이점을 통해서
대용량 처리를 해야할 때 이점을 줄 수 있다고 이해를 했고,
Java의Stream과 유사하다는 생각이 들었습니다.
찾아보니, java8 이전의 Kotlin의 경우 Stream을 사용할 수 없으니, Sequence를 사용했었다 라는 글을 발견했습니다.
위 설명이 맞을까요?
혹시 맞다면 어떠한 기준으로 둘중에서 선택을 하는게 좋을까요?
답변을 작성해보세요.
1
최태현
지식공유자2024.03.18
안녕하세요 태준님! 🙂 좋은 질문 주셔서 감사합니다. 👍
이해해 주신 것처럼, Sequence
는 지연 연산의 이점을 통해 대용량 처리를 할 때 유용하게 쓸 수 있고, 이는 자바의 Stream
도 마찬가지입니다. Stream
역시 지연 연산 방식으로 동작하죠.
찾아보니, java8 이전의 Kotlin의 경우 Stream을 사용할 수 없으니, Sequence를 사용했었다 라는 글을 발견했습니다.
로 찾아주신 설명은 맞습니다. 그 이유는, 자바의 Stream
자체가 자바 8 에서 등장했기 때문입니다. 코틀린은 JDK 버전을 비교적 자유롭게 선택해 사용할 수 있다보니, 만약 코틀린을 JDK 1.8 미만의 버전과 사용한다면, Stream
은 사용할 수 없는 것이 맞습니다.
만약 JDK 1.8 (자바 8 버전) 이상의 환경에서 Kotlin을 사용하신다면, Stream
을 사용할 수도 있고, Sequence
도 사용할 수 있습니다! 저 개인적으로는 Kotlin을 사용할 경우 Stream
보다는 Sequence
를 선호하는데요! 그 이유는, Kotlin으로 만들어진 Sequence
는 내부적으로 inline
함수 등을 사용해 함수형 프로그래밍을 할 때 필요한 최적화를 해두었기 때문입니다. 반면, Stream
의 경우 100% Java 코드로 만들어졌기 때문에 코틀린을 고려한 최적화가 되어 있지는 않죠. 따라서 Sequence
사용을 조금 더 추천드립니다.
답변이 도움이 되었으면 좋겠습니다.
감사합니다! 🙏
답변 1