데브허브 | DEVHUB | [10분 테코톡] 모코의 Java Stream API[10분 테코톡] 모코의 Java Stream API
- 스트림 API는 컬렉션을 함수형 인터페이스로 '예쁘고' 직관적으로 처리하는 선언형 프로그래밍 방식이다. ✨
- 성능이나 디버깅 용이성보다는 코드의 가독성과 간결성을 높이는 데 주된 목적이 있다. 📖
- 스트림은 각 요소에 대해 모든 연산을 순차적으로 적용하는 '수직적 연산' 방식으로 동작한다. ⬇️
- '지연 처리' 특성으로 인해 최종 연산이 호출될 때만 실제 처리가 진행되며, 불필요한 연산은 건너뛸 수 있다. ⏳
- 스트림은 한 번 소비되면 재사용할 수 없으므로, 변수에 할당하여 재사용하는 것을 피하고 메서드 체인 방식을 권장한다. 🚫
- 병렬 스트림은 특정 조건(CPU 집약적, 대규모 데이터 등)에서 성능 향상을 가져올 수 있지만, 잘못 사용하면 오히려 순차 스트림보다 느려질 수 있다. ⚖️
- 병렬 스트림 도입 전에는 반드시 실제 환경에서 벤치마킹을 통해 성능을 검증해야 한다. 📈
- 로직이 단순하거나 성능이 매우 중요한 경우에는 일반 반복문이 스트림보다 더 적합할 수 있다. 💡