Java함수형과 현대 Java

람다와 method reference

Java의 lambda expression과 method reference가 어떤 문제를 줄이고, 함수형 스타일과 어떻게 연결되는지 정리합니다.

마지막 수정 2026년 3월 22일

기본 패턴

java
names.sort((a, b) -> a.compareToIgnoreCase(b));
names.forEach(System.out::println);

설명

  • 람다는 "이 인터페이스에 맞는 동작 하나"를 짧게 전달하는 문법입니다. Java에서는 주로 함수형 인터페이스와 함께 쓰이며, 컬렉션 처리와 이벤트 코드에서 자주 등장합니다.
  • 익명 클래스로 표현하던 짧은 동작을 더 간결하게 만들 수 있어, 의도는 살리고 boilerplate는 줄여 줍니다.
  • method reference는 람다보다 더 단순할 때 사용할 수 있는 축약 표현입니다. 이미 존재하는 메서드를 그대로 전달할 때 읽기 좋습니다.
  • 이 문법들의 진짜 가치는 짧음 자체보다 "동작을 값처럼 전달한다"는 사고를 가능하게 하는 데 있습니다. 이 감각이 스트림과 컬렉션 처리로 바로 이어집니다.
  • 다만 람다는 짧다고 항상 좋은 것이 아닙니다. 본문이 길어지거나 조건이 복잡해지면 별도 메서드로 빼는 편이 오히려 더 읽기 쉽습니다.

빠른 정리

표현의미
(x) -> x + 1람다 표현식
System.out::printlnmethod reference
잘 맞는 곳정렬, 순회, 필터링, 이벤트 처리
기반 개념함수형 인터페이스
읽기 기준짧고 의도가 분명할 때 특히 효과적

주의할 점

람다가 짧다는 이유만으로 복잡한 비즈니스 로직까지 안에 밀어 넣으면 오히려 읽기 어려워집니다. 람다는 "짧은 동작 전달"에 강하고, 긴 로직은 메서드 분리가 더 낫습니다.

참고 링크

2 sources