최근 팀 프로젝트를 하는데, 다른 팀원분이 람다식으로 코드를 작성했다. 아직 람다식을 완전히 알지 못하는 나는, 아직 최종 프로젝트도 아닌데 다른 사람이 작성한 코드가 어렵게 보이는 것이 옳지 않다고 판단되어 람다식을 공부할 계획이다. 우선, 람다식은 자바 8부터 추가된 기능으로 복잡한 코드를 간단하게 표현할 수 있는 아주 유용한 도구이다. 이 글에서는 람다식이 무엇인지, 어떻게 사용하는지, 그리고 인터페이스와 함께 사용하는 방법을 예제를 통해 알아보겠다.
1. 람다식이란 무엇인가요?
람다식은 간단하게 말해 함수를 한 줄로 표현하는 방법입니다. 복잡한 코드를 단순하게 만들어서 프로그래밍을 더 쉽게 해줍니다.
비유를 하자면, 긴 문장을 짧게 줄여서 말하는 약어나 줄임말과 비슷하다.
예를 들어:
- 긴 문장: "저는 오늘 학교에 갔습니다."
- 줄임말: "오늘 학교 감."
마찬가지로, 람다식을 사용하면 긴 코드를 짧게 줄일 수 있다.
2. 왜 람다식을 사용할까요?
- 코드 간결화: 불필요한 코드를 줄여서 읽기 쉽다.
- 가독성 향상: 코드의 흐름을 쉽게 파악할 수 있다.
- 효율성 증가: 개발 시간이 단축된다.
3. 람다식의 기본 구조
(매개변수) -> { 실행할 코드 }
- 매개변수: 함수가 받는 입력값
- ->: "이것을 실행한다"는 의미로 이해하면 된다.
- 실행할 코드: 함수가 수행할 작업이다.
4. 쉽게 이해하는 예제 코드
예제 1: 인사말 출력하기
전통적인 방식
public class Greeting {
public static void main(String[] args) {
// 인사말을 출력하는 Runnable 인터페이스 사용
Runnable greeter = new Runnable() {
@Override
public void run() {
System.out.println("안녕하세요!");
}
};
greeter.run();
}
}
람다식을 사용한 방식
public class Greeting {
public static void main(String[] args) {
// 람다식을 사용하여 간단하게 표현
Runnable greeter = () -> System.out.println("안녕하세요!");
greeter.run();
}
}
설명:
- Runnable 인터페이스: 어떤 작업을 실행할 때 사용하는 틀
- 전통적인 방식에서는 코드가 길고 복잡하다.
- 람다식을 사용하면 코드가 훨씬 간단해진다.
예제 2: 두 숫자 더하기
전통적인 방식
public class Adder {
interface Add {
int add(int a, int b);
}
public static void main(String[] args) {
Add addition = new Add() {
@Override
public int add(int a, int b) {
return a + b;
}
};
int result = addition.add(5, 3);
System.out.println("결과: " + result);
}
}
람다식을 사용한 방식
public class Adder {
interface Add {
int add(int a, int b);
}
public static void main(String[] args) {
// 람다식을 사용하여 두 숫자를 더하는 함수 구현
Add addition = (a, b) -> a + b;
int result = addition.add(5, 3);
System.out.println("결과: " + result);
}
}
설명:
- Add 인터페이스는 두 숫자를 더하는 기능을 이다.
- 람다식을 사용하면 함수의 내용을 한 줄로 표현할 수 있다.
예제 3: 리스트 정렬하기
import java.util.Arrays;
import java.util.List;
public class SortExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("철수", "영희", "민수");
// 전통적인 방식의 정렬
names.sort(new Comparator<String>() {
@Override
public int compare(String a, String b) {
return a.compareTo(b);
}
});
System.out.println("정렬된 이름 (전통 방식): " + names);
// 람다식을 사용한 정렬
names.sort((a, b) -> a.compareTo(b));
System.out.println("정렬된 이름 (람다식): " + names);
}
}
설명:
- names.sort() 메서드를 사용하여 리스트를 정렬한다.
- 전통적인 방식에서는 Comparator 인터페이스를 구현해야 한다.
- 람다식을 사용하면 코드를 간단하게 만들 수 있다.
5. 마무리
람다식은 복잡한 코드를 단순하게 만들어 줍니다. 처음에는 조금 어려울 수 있지만, 익숙해지면 코딩이 훨씬 편해진다.
핵심 포인트:
- 람다식은 함수를 한 줄로 표현하는 방법이다.
- 코드를 간결하고 읽기 쉽게 만들어 준다.
- 비전공자도 쉽게 이해할 수 있도록 코드를 단순화한다.
추가 팁:
- 람다식을 사용할 때는 함수형 인터페이스를 활용합니다. 이는 하나의 추상 메서드만 가진 인터페이스다.
- 자바에서는 이미 많은 함수형 인터페이스를 제공한다. (Runnable, Callable, Comparator 등)
'JAVA' 카테고리의 다른 글
Java에서 원시 타입과 래퍼 클래스의 이해 (0) | 2024.10.14 |
---|---|
자바 스트림(Stream) (0) | 2024.09.26 |
StringBuilder에 대한 가이드 (0) | 2024.08.07 |
Iterator: 컬렉션을 안전하게 순회하기 (0) | 2024.08.05 |
쓰레드(Thread)란? (0) | 2024.07.25 |