패스잇
백엔드 개발 · 중급

Java 8의 Stream API와 병렬 스트림(Parallel Stream)의 사용법과 주의사항에 대해 설명해주세요.

힌트 · 내부 반복, 지연 연산, 병렬 처리 시 주의점을 생각해보세요.

Stream API병렬 스트림ForkJoinPool공유 자원성능 측정

모범답안

Java 8의 Stream API는 데이터 컬렉션을 효율적으로 처리하기 위한 기능입니다. 내부 반복을 사용하여 코드를 간결하게 만들고, 지연 연산을 통해 불필요한 연산을 줄여 성능을 향상시킬 수 있습니다.

병렬 스트림은 여러 스레드를 사용하여 스트림 연산을 병렬로 처리합니다. parallel() 메서드를 호출하여 간단하게 사용할 수 있지만, 몇 가지 주의사항이 있습니다.

첫째, 공유 자원에 대한 동기화 문제가 발생할 수 있습니다. 여러 스레드가 동시에 공유 자원에 접근하면 데이터 불일치 문제가 발생할 수 있으므로, 동기화 처리가 필요합니다.

둘째, 항상 성능 향상을 보장하는 것은 아닙니다. 데이터 크기가 작거나 연산 자체가 간단한 경우에는 오히려 스레드 생성 및 관리 비용 때문에 성능이 저하될 수 있습니다. ForkJoinPool을 사용하는데, 스레드 풀 관리 비용이 발생합니다.

따라서 병렬 스트림을 사용하기 전에 성능 측정을 통해 실제로 성능 향상이 있는지 확인하는 것이 중요합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Java / Spring 면접 질문

← Java / Spring 면접 질문 전체 보기