[인프런 워밍업 클럽 0기] BE 3일차 과제
자바의 람다식은 왜 등장했을까?
자바의 람다식은 주로 코드를 간결하게 표현하고 함수형 프로그래밍의 개념을 도입하기 위해 등장.
람다식은 Java 8에서 도입되었으며, 기존의 익명 내부 클래스를 대체하는 형태로 사용.
1. 간결한 문법
람다식은 익명 내부 클래스를 사용하는 것보다 훨씬 간결한 문법을 제공하기 때문에, 코드를 읽고 유지보수 하기 쉽다.
2. 함수형 프로그래밍 지원
람다식은 함수형 프로그래밍의 핵심 개념(함수를 값처럼 다룰 수 있고, 함수를 다른 함수의 인자로 전달하거나 반환)을 자바에 도입하는데 기여.
자바에서는 람다식과 스트림 API를 통해 함수형 프로그래밍 개념 도입
3. 컬렉션 처리 간소화
람다식은 컬렉션 처리를 간소화하고 더 효과적으로 할 수 있도록 도와줌.
forEach 메서드를 이용하여 컬렉션의 각 요소를 간편하게 처리 가능.
4. 병렬 프로그래밍 지원
람다식은 병렬 프로그래밍을 위한 스트림 API(자바 8에서 추가된 기능으로, 컬렉션을 함수형 프로그래밍의 스트림으로 처리하는 방법을 제공)와 함께 사용되어 병렬 실행이 가능한 코드를 작성하는 데 도움을 준다.
람다식과 익명 클래스는 어떤 관계가 있을까? - 람다식의 문법?
JdbcTemplate을 사용하는 과정에서 익명 클래스와 람다식이라는 자바 문법을 사용
익명 클래스는 자바의 초창기부터 있던 기능이고, 람다식은 자바 8에서 등장한 기능
익명클래스
button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 이벤트 처리 로직 } });
람다식(익명 클래스보다 더 간결한 문법 제공)
button.addActionListener(e -> {
// 이벤트 처리 로직
});
추가 개념
@FunctionalInterface
함수형 인터페이스를 선언할 때 사용하는 어노테이션으로, 해당 인터페이스가 하나의 추상 메서드만을 가지고 있는지 검사.
람다식이나 메소드 레퍼런스를 사용할 때 함수형 인터페이스를 명시적으로 선언하기 위해 사용됨.
메소드 레퍼런스
메소드 레퍼런스는 람다식을 더 간결하게 표현하기 위한 방법으로, 이미 정의된 메서드를 호출하는 방식
// 람다식
(a, b) -> MyClass.staticMethod(a, b)
// 메소드 레퍼런스
MyClass::staticMethod