INTRO

ν”„λ‘œμ νŠΈμ—μ„œ 쿼리 κ²°κ³Όλ‚˜ μ„œλΉ„μŠ€ λ ˆμ΄μ–΄μ˜ λ©”μ†Œλ“œκ°€ λ°˜ν™˜ν•˜λŠ” dto 객체 λ“± stream을 ν™œμš©ν–ˆμ—ˆλ‹€.

잘 μ•Œκ³  μ‚¬μš©ν•œ 것이 μ•„λ‹ˆλΌ, ai μžλ¬Έλ„ ꡬ해보고 λ‹€λ₯Έ μ‚¬λžŒμ˜ μ†ŒμŠ€μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄λ©΄μ„œ 읡힌 μΌμ’…μ˜ μ•Όλ§€? μ˜€λ‹€.

μž‘μ„±ν•˜λ €λŠ” μ½”λ“œμ— λŒ€ν•΄ 잘 μ•Œκ³  λŠ₯λ™μ μœΌλ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ stream에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž

Stream API?

Java Stream APIλ₯Ό μ‚¬μš©ν•˜κΈ° μ „μ—λŠ” λ§Žμ€ μ–‘μ˜ 데이터λ₯Ό λ°°μ—΄μ΄λ‚˜ μ»¬λ ‰μ…˜μœΌλ‘œ μ²˜λ¦¬ν–ˆλŠ”λ°, 이 방법듀은 데이터에 μ ‘κ·Όν•˜κΈ° μœ„ν•΄ λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν•΄μ„œ μƒˆλ‘œμš΄ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— μ½”λ“œκ°€ κΈΈμ–΄μ§€κ³  λ³΅μž‘ν•΄μ§€λ©° μž¬μƒμš©μ„± λ˜ν•œ μ’‹μ§€ μ•Šμ•˜λ‹€.

Java 8 λΆ€ν„° λ“±μž₯ν•˜λŠ” Stream API λŠ” 데이터λ₯Ό λ‹€μ–‘ν•œ λ°©μ‹μœΌλ‘œ 읽고 μ“°κΈ° μœ„ν•œ κ³΅ν†΅λœ 방법이닀.

마치 SQL 쿼리 처럼 μ •ν˜•ν™”λœ 처리 νŒ¨ν„΄μ„ κ°€μ§€κ²Œ ν•˜μ—¬ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ„λ‘ ν•˜μ˜€λ‹€. κ°€

Stream API ꡬ쑰

데이터λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ APIμ΄λ―€λ‘œ 데이터λ₯Ό 각각의 단계 λ³„λ‘œ μ²˜λ¦¬ν•˜λŠ” ꡬ쑰둜 λ˜μ–΄μžˆλ‹€.

πŸ”Ήμƒμ„±

생성 은 λ°μ΄ν„°μ˜ μ»¬λ ‰μ…˜μ„ stream으둜 λ³€ν™˜ν•˜λŠ” κ³Όμ •μœΌλ‘œ, stream을 μƒμ„±ν•˜λŠ” 단계이닀.

이 λ‹¨κ³„μ˜ νŠΉμ§•μ€ 데이터가 ν•„μš”ν•  λ•Œλ§Œ loadλœλ‹€λŠ” 점이닀. β†’ μ§€μ—° 평가(Lazy Evaluation)

λŒ€λŸ‰μ˜ 데이터 μ…‹μ—μ„œ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ„ μ΅œμ ν™”ν•˜κ³ , λΆˆν•„μš”ν•œ 데이터λ₯Ό κ°€μ Έμ˜€μ§€ μ•Šμ•„λ„ 되기 λ•Œλ¬Έμ— 맀우 효율적이게 λœλ‹€.

πŸ”Ήμ€‘κ°„ μ—°μ‚°

쀑간 μ—°μ‚° 은 데이터 μ»¬λ ‰μ…˜μ„ μ›ν•˜λŠ” ν˜•νƒœλ‘œ λ§Œλ“€μ–΄μ£ΌλŠ” 단계이닀.(filter, map, sort λ“±μ˜ μ—°μ‚°)