λžŒλ‹€

μ •ν•œκ²°Β·2026λ…„ 4μ›” 10일

πŸ“Œ μžλ°” Lambda(λžŒλ‹€) 핡심 정리

πŸ“– μ°Έκ³  μ˜μƒ

https://www.youtube.com/watch?v=nsK4TP_uvaY


1.λžŒλ‹€λž€?

λžŒλ‹€(Lambda)λŠ” λ©”μ„œλ“œλ₯Ό κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•œ 문법이닀.

πŸ‘‰ ν•œ 쀄 μ •μ˜

β€œμ½”λ“œλ₯Ό κ°’μ²˜λŸΌ μ „λ‹¬ν•˜κΈ° μœ„ν•œ 방법”


2.κΈ°μ‘΄ 방식 vs λžŒλ‹€

❌ κΈ°μ‘΄ (읡λͺ… 클래슀)

new Runnable() {
    @Override
    public void run() {
        System.out.println("μ‹€ν–‰");
    }
};

βœ… λžŒλ‹€ μ‚¬μš©

() -> System.out.println("μ‹€ν–‰");

μ½”λ“œκ°€ 훨씬 κ°„κ²°ν•΄μ§„λ‹€.

3.λžŒλ‹€λŠ” ν•¨μˆ˜μΌκΉŒ?

κ²°λ‘ : ν•¨μˆ˜μ²˜λŸΌ λ³΄μ΄μ§€λ§Œ 객체닀

μžλ°”λŠ” ν•¨μˆ˜ 자체λ₯Ό λ³€μˆ˜μ²˜λŸΌ λ‹€λ£° 수 μ—†κΈ° λ•Œλ¬Έμ—
λžŒλ‹€λŠ” λ‚΄λΆ€μ μœΌλ‘œ 객체(ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€ κ΅¬ν˜„μ²΄)둜 λ³€ν™˜λœλ‹€.

4.λžŒλ‹€ κΈ°λ³Έ ꡬ쑰

(λ§€κ°œλ³€μˆ˜) -> { μ‹€ν–‰λ¬Έ }
μ˜ˆμ‹œ
(a, b) -> a + b

λ°˜ν™˜νƒ€μž…, λ©”μ„œλ“œλͺ… λͺ¨λ‘ μƒλž΅λœ ν˜•νƒœ

5.ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€ (핡심 ⭐)

λžŒλ‹€λŠ” λ°˜λ“œμ‹œ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€μ™€ ν•¨κ»˜ μ‚¬μš©λœλ‹€.

βœ” μ •μ˜

좔상 λ©”μ„œλ“œκ°€ ν•˜λ‚˜λ§Œ μžˆλŠ” μΈν„°νŽ˜μ΄μŠ€

@FunctionalInterface
interface Calculator {
int calc(int a, int b);
}
μ‚¬μš© 예
Calculator add = (a, b) -> a + b;

6.자주 μ“°λŠ” ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€

μΈν„°νŽ˜μ΄μŠ€ μ„€λͺ…
Runnable μ‹€ν–‰λ§Œ
Supplier κ°’ λ°˜ν™˜
Consumer κ°’ μ†ŒλΉ„
Predicate 쑰건 νŒλ‹¨
Function<T, R> λ³€ν™˜

-> java.util.function νŒ¨ν‚€μ§€μ— 쑴재

7.λžŒλ‹€μ˜ μž₯점

μ½”λ“œκ°€ μ§§μ•„μ§„λ‹€
가독성이 μ’‹μ•„μ§„λ‹€
λΆˆν•„μš”ν•œ 클래슀 제거
슀트림 API와 ꢁ합이 μ’‹λ‹€

8.읡λͺ… 클래슀 vs λžŒλ‹€

ꡬ뢄 읡λͺ… 클래슀 λžŒλ‹€
μ½”λ“œ 길이 κΉ€ 짧음
class 파일 생성됨 μ•ˆ 생성됨
this 자기 μžμ‹  μ™ΈλΆ€ 클래슀
🎯 핡심 ν•œ 쀄 정리

λžŒλ‹€ = λ©”μ„œλ“œλ₯Ό λ³€μˆ˜μ²˜λŸΌ 닀루기 μœ„ν•œ 문법

λŠλ‚€ 점

μ²˜μŒμ—” λ‚―μ„€μ§€λ§Œ, κ²°κ΅­ 핡심은 ν•˜λ‚˜μ˜€λ‹€.

-> μ½”λ“œλ₯Ό 더 κ°„κ²°ν•˜κ²Œ λ§Œλ“€κΈ° μœ„ν•œ 도ꡬ

특히 슀트림과 ν•¨κ»˜ μ‚¬μš©ν•  λ•Œ μ§„μ§œ κ°•λ ₯함을 λŠλ‚„ 수 μžˆλ‹€.

마무리

κΈ°μ‘΄ μžλ°” β†’ 객체 쀑심
λžŒλ‹€ β†’ λ™μž‘ 쀑심

-> μžλ°”κ°€ 점점 ν•¨μˆ˜ν˜• μŠ€νƒ€μΌλ‘œ ν™•μž₯λ˜λŠ” λŠλ‚Œ

#java #lambda #λžŒλ‹€ #코딩곡뢀 #κ°œλ°œκ³΅λΆ€

1개의 λŒ“κΈ€

comment-user-thumbnail
2026λ…„ 4μ›” 11일

πŸ‘πŸ‘πŸ‘

λ‹΅κΈ€ 달기