본문 바로가기
programming_kr/java

람다식(Lambda)

by JSsunday 2022. 8. 30.
728x90

 

람다식(Lambda Expression)이란 함수를 하나의 식(expression)으로 표현한 것입니다. 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수(Anonymous Function)의 한 종류라고 볼 수 있습니다.
익명함수(Anonymous Function)란 함수의 이름이 없는 함수로, 익명함수들은 모두 일급 객체입니다. 일급 객체인 함수는 변수처럼 사용가능하며 매개 변수로 전달이 가능하는 등의 특징을 가지고 있습니다.

람다 방식으로는 위와 같이 메소드 명이 불필요하며, 다음과 같이 괄호() 와 화살표-> 를 이용해 함수를 선언하게 된다.

// 람다 방식
(매개변수, ... ) -> { 실행문 ... }

// 예시
() -> "Hello World!";

 

 람다식이 등장하게 된 이유는 불필요한 코드를 줄이고, 가독성을 높이기 위함입니다. 그렇기 때문에 함수형 인터페이스의 인스턴스를 생성하여 함수를 변수처럼 선언하는 람다식에서는 메소드의 이름이 불필요하다고 여겨져서 이를 사용하지 않습니다. 대신 컴파일러가 문맥을 살펴 타입을 추론하게 됩니다. 또한 람다식으로 선언된 함수는 1급 객체이기 때문에 Stream API의 매개변수로 전달이 가능해집니다.

 

람다식(Lambda Expression) 의 특징

  • 람다식 내에서 사용되는 지역변수는 final이 붙지 않아도 상수로 간주된다.
  • 람다식으로 선언된 변수명은 다른 변수명과 중복될 수 없다.  

 

람다식(Lambda Expression) 의 장점

  • 코드를 간결하게 만들 수 있다.
  • 식에 개발자의 의도가 명확히 드러나 가독성이 높아진다.
  • 함수를 만드는 과정없이 한번에 처리할 수 있어 생산성이 높아진다.
  • 병렬프로그래밍이 용이하다.

 

람다식(Lambda Expression) 의 단점

  • 람다를 사용하면서 만든 무명함수는 재사용이 불가능하다.
  • 디버깅이 어렵다.
  • 람다를 남발하면 비슷한 함수가 중복 생성되어 코드가 지저분해질 수 있다.
  • 재귀로 만들경우에 부적합하다

 

참조
[Java] 람다식(Lambda Expression)과 함수형 인터페이스(Functional Interface) - (2/5)
728x90

'programming_kr > java' 카테고리의 다른 글

제네릭(generic)  (1) 2022.09.24
JAVA8 Optional 사용법  (1) 2022.09.17
제어자(modifier)  (0) 2022.09.10
JAVA 8 interface 변경사항  (0) 2022.08.27
JAVA란?  (0) 2020.12.30

댓글