람다식 #개념 및 특징 요약
1. Java 8부터 지원되는 함수지향형 코드
2. 람다식, 또는 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(Anonymous functions)를 지칭하는 용어
3. 함수형 인터페이스 - 하나의 추상 메서드만 가지는 인터페이스
4. 특징
(1) 익명 - 보통의 메서드와 달리 이름이 없으므로 익명 입니다.
(2) 함수 - 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수 입니다.
(3) 전달 - 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있습니다.
(4) 간결성 - 익명 클래스처럼 저렴한 코드를 구현할 필요는 없습니다.
5. 목적
변수를 직접 전달해서 그 값을 변경함으로 흐름을 처리하지 않고 , 행위 자체를 전달함으로써 함수형 프로그래밍이 지향하는 바를 얻기 위함이 매우 크다. 기존에 이미 익명 클래스를 통해 해결 할 수 도 있었던 문제이긴 하지만
람다 (Lambda)식을 사용함으로써 코드를 좀 더 깔끔하고 가독성을 높일 수 있다.
자바8부터는 람다 (Lambda) 표현식을 받아들이면서 ' Functional Programming ' 특징을 갖추게 되면서 OOP(Object-oriented programming) + FP 의 멀티 패러다임 언어가 되었다.
*객체지향 프로그래밍과 함수형 프로그래밍
1) 객체 지향은 명령형 프로그래밍이고, 함수형 프로그래밍은 선언형 프로그래밍이다.
: 우선 명령형 프로그래밍과 함수형프로그래밍의 차이의 핵심은 문제해결의 관점이다. 기존의 우리가 객체지향 프로그래밍을 할 때는 데이터를 어떻게 처리할 지에 대해 명령을 통해 풀어 나아갔다면, 함수형 프로그래밍은 선언적 함수를 통해 무엇을 풀어나아갈지 결정하는 것이다.
명령형 언어 : a 라는 변수에 1을 담으세요 (대입)
함수형 언어 : a 를 1로 정의한다.
아직까지는 람다식을 쓸 일이 많지 않아 장단점이 와닿지 않는 것 같다.
자바 특징인 객체지향에 익숙해져 있어 함수지향이라는 개념도 자체도 모호하다.
앞으로 더 많은 학습 그리고 경험이 필요할 것으로 보인다.
'Java' 카테고리의 다른 글
추상화와 추상 클래스 (0) | 2020.06.02 |
---|---|
람다식이란? #2 사용법 및 예제 (0) | 2020.04.08 |