woowacourse-study / 2022-modern-java-in-action

우아한테크코스 4기 모던 자바 인 액션 스터디
10 stars 4 forks source link

외부 반복과 내부 반복은 어떤 차이가 있을까? #12

Open yaho99 opened 2 years ago

yaho99 commented 2 years ago

문제

for-each 에서 사용되는 반복 방식을 외부 반복, 스트림에서 사용되는 반복 방식을 내부 반복이라고 한다. 이 둘의 차이점에는 어떤 것이 있을까?

선정 배경

외부 반복과 내부 반복이라는 단어가 어떤 의미를 갖는지 알아보면, for 문과 스트림의 특징 또는 차이점에 대해 이해하는데 도움이 될 것 같아 선정했다.

관련 챕터

yaho99 commented 2 years ago

사용자가 직접 요소를 반복하는 것을 외부 반복(external iteration), 반복을 알아서 처리하고 결과 스트림값을 어딘가에 저장해주는 내부 반복(internal iteration)을 사용한다.

내부 반복을 사용하면 작업을 투명하게 병렬적으로 처리하거나 최적화된 다양한 순서로 처리가 가능하다. 외부 반복에서는 병렬성을 스스로 관리(synchronized 사용)해야 한다.

외부 반복을 사용하면 How 중심의 코드를 짜게 되지만, 내부 반복을 이용하면 What 중심의 코드를 짤 수 있다.