작성
·
127
답변 1
1
안녕하세요 태준님! 🙂 좋은 질문 주셔서 감사합니다. 👍
이해해 주신 것처럼, 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
사용을 조금 더 추천드립니다.
답변이 도움이 되었으면 좋겠습니다.
감사합니다! 🙏