[인프런 워밍업 클럽 0기] BE 3일차 과제
9개월 전
자바의 람다식은 왜 등장했을까?
이전에는 자바에서 함수형 프로그래밍을 구현하려면 인터페이스를 정의하고, 그 인터페이스를 구현한 클래스를 만들어야 했습니다.(비록 익명 클래스와 인터페이스로 무수한 메소드 생성을 막을 수는 있으나...) 이는 코드의 양을 불필요하게 늘리고, 가독성을 해치는 요소였습니다. 람다식은 이러한 불편함을 해소하고, 간결하고 가독성 있는 코드를 작성할 수 있도록 도와줍니다.
람다식과 익명 클래스는 어떤 관계가 있을까?
람다식과 익명 클래스는 두 가지가 비슷한 측면이 있습니다. 둘 다 인터페이스를 구현하는 객체를 생성하는데 사용될 수 있습니다. 익명 클래스는 인터페이스를 구현하는 익명의 클래스를 만들어 사용하는 반면, 람다식은 함수형 인터페이스를 구현하는 익명 메서드의 구현체로서 사용됩니다. 따라서 람다식은 익명 클래스의 간단한 표현이라고 볼 수 있습니다.
람다식의 문법은 어떻게 될까?
변수 -> 변수를 이용한 함수
(변수1, 변수2, ...) -> 변수1과 변수2, (...)를 이용한 함수
@FunctionalInterface / 스트림 API / 메소드 레퍼런스
추가적으로 람다식은 함수형 프로그래밍의 핵심 요소 중 하나로, 자바 8에서 도입되었습니다. 이것은 함수형 인터페이스(Functional Interface)를 간결하게 구현하는 방법을 제공합니다. 함수형 인터페이스는 단 하나의 추상 메소드를 가지고 있으며, 이는 주로 람다식을 사용하여 구현됩니다. 이러한 함수형 인터페이스에는 @FunctionalInterface
어노테이션을 사용하여 명시적으로 표시할 수 있습니다.
람다식은 메소드 레퍼런스를 사용해 "메소드 자체를 직접 넘겨주는 것처럼" 사용해 대체될 수 있고, 간결한 스트림 api는 반복문을 단축시키며 병렬처리를 진행할 때 큰 강점이 있습니다.
댓글을 작성해보세요.