함수형 프로그래밍은 프로그램을 수학적인 함수의 조합으로 보는 프로그래밍 패러다임 중 하나입니다. 이 패러다임은 코드를 간결하고 유지보수 가능하게 만들어주며, 높은 수준의 추상화를 제공하여 복잡한 문제를 해결할 수 있게 합니다. 이에 따라 자바와 같은 몇몇 언어들에서는 함수형 프로그래밍의 개념을 도입하고 있습니다.
함수형 프로그래밍은 여라가지 특징을 가지고 있지만, 여기서는 그 중에서도 일급 객체에 주목해보려 합니다. 일급 객체(일급시민)란 프로그래밍 언어에서의 특정 조건을 만족하는 객체를 가르키는데, 이 조건을 충족하는 객체는 다음과 같은 특성을 가집니다.
public class Main {
public static void main(String[] args) {
// 1. 변수에 할당 가능
Runnable myFunction = () -> System.out.println("Hello World");
// 2. 함수의 매개변수로 전달 가능
executeFunction(myFunction);
// 3. 함수의 반환 값으로 사용 가능
Runnable generatedFunction = createFunction();
// 4. 자료 구조의 구성 요소가 될 수 있음 (예: 리스트의 요소)
Runnable[] functionArray = {
() -> System.out.println("Hello World"),
() -> System.out.println("Hello Java")
};
functionArray[0].run();
functionArray[1].run();
}
private static Runnable createFunction() {
return () -> System.out.println("Hello World");
}
static void executeFunction(Runnable runnable) {
runnable.run();
}
}
이처럼 일급 객체의 특성은 프로그래밍 언어에서 함수나 객체를 변수에 할당하거나 함수의 매개변수로 전달하고 반환 값으로 사용할 수 있음을 의미합니다. 이러한 특성을 통해 함수형 프로그래밍은 코드를 더 유연하게 작성할 수 있게 됩니다.
함수형 프로그래밍과 일급 객체에 대한 이해는 코드의 가독성을 향상 시키고 유지보수를 쉽게 만드는데 도움이 됩니다. 또한, 병렬 처리와 상태의 부작용을 최소화 하여 안정적이고 효율적인 프로그램을 작성하는 데에도 기여합니다.
'자바' 카테고리의 다른 글
Lamda Method Reference (0) | 2024.01.31 |
---|---|
Java Lamda 표현식과 Stream API (1) | 2024.01.31 |
내부 클래스 ( inner class ) 란? (0) | 2024.01.02 |
자바 캐스팅(casting) (1) | 2023.12.15 |
final, 상수 (0) | 2023.12.14 |