본문 바로가기

Java

람다식이란? #1 개념 및 특징

람다식 #개념 및 특징 요약

 

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