본문 바로가기
Programming/Java

[Java] 자바 람다식(Lambda Expression)이란?

by hyunipad 2022. 6. 8.
반응형

자바 8부터 추가된 스트림(Stream)을 사용하기 위해서는 람다식(Lambda Expression)의 이해가 필수적입니다.

이번 포스팅에서는 람다식에 대해 알아보도록 하겠습니다.

 

 

람다식(Lambda Expression) 이란?

람다식(Lambda Expression)이란 메서드를 하나의 식으로 표현한 것입니다. 메서드를 식으로 표현한다면 메서드의 이름이 필요 없기 때문에 람다식은 익명 함수(Anonymous Function)의 한 종류로 볼 수 있습니다.

 

기존의 메서드들은 아래와 같이 사용하였습니다. 

public static void main(String[] args) {
	system.out.println(hello());
}
	
public static String hello() {
	return "hello";
}

 

람다식은 아래와 같이 어노테이션을 붙여 함수형 인터페이스를 선언해놓으면 필요한 시점에 메서드를 변수로써 선언하여 사용할 수 있습니다.

public static void main(String[] args) {	
	LambdaFunction lambdaFunction = () -> "hello";
	System.out.println(lambdaFunction.function());
}

@FunctionalInterface
interface LambdaFunction {
	String function();
}

 

 

 

람다식의 장점과 단점

람다식은 메서드를 변수처럼 선언하기 때문에 아래와 같은 장점이 있습니다.

  1. 식을 사용하기 때문에 코드가 간결해진다.
  2. 람다식 안에 선언부가 있기 때문에 가독성이 좋아진다.
  3. 메서드를 만드는 과정이 없기 때문에 생산성이 좋아진다.

반대로 메서드를 따로 선언하지 않기 때문에 아래와 같은 단점이 있습니다.

  1. 람다식을 통해 만든 메서드는 재사용이 어렵다.(지역적으로만 가능)
  2. 디버깅이 어렵다.
  3. 람다식을 남발하면 코드가 지저분해질 수 있다.
  4. 재귀형식은 부적합하다.

람다식을 사용하는 것이 무조건 정답이 아니기 때문에, 장, 단점을 고려하여 적절히 사용하는 것이 중요합니다.

 

 

반응형

댓글