목차

람다식(Lambda Expression) 이란?

람다 표현식의 구문 설명

람다 표현식의 장점

람다 표현식의 단점

람다식(Lambda Expression) 이란?

Java 람다식(Lambda Expression)은 함수형 프로그래밍을 Java에서 지원하기 위해 도입된 기능으로써

메서드를 간결하게 표현할 수 있는 익명 함수(Anonymous Function)이며, 자바 8버전부터 적용 가능합니다.

람다 표현식의 구문 설명

// java code
반환티입 메소드명(매개변수, 매개변수) {
    실행문
}

// Lambda Expression
(매개변수, 매개변수) -> { 실행문 }

// java code
int totalCount(int x, int y) { 
    // 실행문
    return x + y;    
}

// Lambda Expression
(x, y) -> x + y

람다식에서 return을 생략할 수 있는 경우

람다식의 실행문이 단일 표현식(single expression) 경우이고 (하나의 식으로 구성된 코드)

java 컴파일러는 이 경우 return 키워드를 명시하지 않아도 자동으로 결과를 반환한다고 간주합니다.

람다식의 실행문이 여러 구문일 경우

// java code
int totalCount(int x, int y) { 
    // 실행문
    int result = x + y;
    return result; 
}

// Lambda Expression
(x, y) -> {
    int result = x + y;
    return result;
}

람다 표현식의 장점

코드의 간결성

람다식은 메서드 구현을 매우 간단하게 표현할 수 있습니다.

익명 클래스나 긴 메서드 정의를 필요로 하지 않고, 간단한 표현식으로 함수형 인터페이스를 구현할 수 있습니다.

가독성 향상

람다식은 메서드의 의도를 명확하게 표현합니다.

코드가 간결해지면서 함수가 수행하는 작업이 더 명확해져, 읽기 쉽고 이해하기 쉬운 코드를 작성할 수 있습니다.

병렬 처리 용이성

람다식과 스트림 API는 병렬 처리를 쉽게 구현할 수 있도록 돕습니다.

스트림 API에서 parallelStream()을 사용하면, 데이터를 병렬로 처리할 수 있으며, 이를 통해 멀티코어 프로세서의 성능을 극대화할 수 있습니다.

람다 표현식의 단점

디버깅의 어려움

람다 표현식은 익명 함수로 작성되기 때문에, 디버깅할 때 호출 스택(trace)을 추적하는 것이 어려울 수 있을 수 있고

익명 함수이기 때문에 코드의 위치를 추적하거나, 에러 메시지에서 정확한 오류 발생 지점을 찾는 데 어려움이 있을 수 있습니다.

익명성으로 인한 가독성 저하

람다 표현식은 매우 간결하게 작성할 수 있지만, 지나치게 복잡한 람다 표현식은 오히려 코드의 가독성을 떨어뜨릴 수 있습니다.

긴 코드 블록을 람다 표현식으로 작성하면 코드의 의도를 파악하기 어렵고

익명 클래스와 달리 명확한 이름을 가지지 않기 때문에, 특정 로직이 무엇을 수행하는지 명확하게 표현되지 않을 수 있습니다.

재사용성 부족

람다 표현식은 익명 함수로 작성되므로 재사용성이 떨어집니다.

같은 로직이 여러 곳에서 필요하다면, 매번 람다 표현식을 작성해야 하며, 이는 코드 중복을 초래할 수 있습니다.

©2024, DevDream