Functional Programming - Java Lambda

정찬·2025년 9월 2일

Functional Programming

목록 보기
2/4
post-thumbnail

Functional Programming 두 번째 포스팅입니다.

저번 시간에서 함수형 프로그래밍의 개념과 특징을 알아보았습니다.

이번 포스팅에서는 함수형 인터페이스를 사용하기 전, 필수 지식인 람다를 배워보겠습니다.

람다란?

람다(Lambda)는 익명 함수(Anonymous Function)를 표현하는 방식입니다.

Java 8에서 처음 도입되었으며, 함수형 프로그래밍을 Java에서 활용할 수 있게 된 핵심 기능 중 하나입니다.

익명 함수란?

이름을 가지지 않고 일회성으로 사용되는 함수를 의미합니다.

Java에서는 보통 람다 표현식으로 익명 함수를 작성합니다.

익명 함수의 특징

  • 이름이 없으므로 보통 짧고 간결한 동작을 표현할 때 사용합니다.
  • 한 번 쓰고 버리는 함수에 적합합니다.
  • 함수형 인터페이스와 결합해 변수에 담거나 인자로 전달할 수 있습니다.
  • 코드의 가독성을 높이고 불필요한 보일러플레이트(boilerplate)를 줄여줍니다.

람다는 이러한 익명 함수를 간결하게 작성할 수 있도록 도와줍니다.

기존 코드와 비교 (익명 클래스)

람다가 등장하기 전, Java에서 특정 동작을 함수처럼 전달하려면 보통 익명 클래스(Anonymous Class)를 사용했습니다.

List<String> list = List.of("a", "b", "c");

// 익명 클래스 사용
list.forEach(new Consumer<String>() {
    @Override
    public void accept(String s) {
        System.out.println(s.toUpperCase());
    }
});

람다를 사용하면 같은 코드를 훨씬 간결하게 표현할 수 있습니다.

list.forEach(s -> System.out.println(s.toUpperCase()));

즉, 불필요한 클래스 선언이나 보일러플레이트 코드 없이, 의도(무엇을 할지)만 간결하게 표현할 수 있습니다.

람다 표현식

람다는 기본적으로 다음과 같은 형태를 가집니다.

(parameters) -> expression
(parameters) -> { statements }

함수의 구성요소인 파라미터와 표현식을 간소화하여 코드가 깔끔해지고, 가독성이 좋아진다는 장점이 있습니다.

  1. 람다 표현식은 매개변수와 표현식을 -> 화살표로 구분합니다.

예제 코드

(int x, int y) -> x + y

이 람다는 두 개의 정수를 받아 더한 값을 반환하는 함수입니다.

  1. 매개변수가 하나일 경우 () 생략 가능하기 때문에, 간결한 코드 진행이 가능합니다.

예제 코드

x -> x * x      // 하나의 매개변수, 괄호 생략 가능
  1. 실행문이 한줄이라면 {}return 을 생략할 수 있습니다.

예제 코드

// 한 줄의 표현 식은 {}를 생략할 수 있다.
x -> x * x

// 여러 줄의 표현 식
x -> {
    System.out.println("Value: " + x);
    return x * x;
}

마치며

람다는 함수를 값처럼 다룰 수 있게 해주기 때문에, 함수형 프로그래밍의 핵심인 고차 함수(Higher-order function)를 구현할 수 있습니다.

즉, 메서드의 인자로 함수를 넘기거나, 반환값으로 함수를 줄 수 있습니다.

이를 통해 개발자는 “어떻게 할지”가 아니라 “무엇을 할지”에 집중할 수 있고, 코드가 간결하고 읽기 쉬워집니다.

이번 포스팅에서는 함수형 프로그래밍을 이해하기 위한 기초 지식으로 람다를 간단히 살펴보았고, 다음 시간에는 Java에서 함수형 인터페이스를 본격적으로 다루겠습니다.

0개의 댓글