자바
함수형 프로그래밍과 일급객체
이상한나라의개발자
2024. 1. 31. 15:01
함수형 프로그래밍은 프로그램을 수학적인 함수의 조합으로 보는 프로그래밍 패러다임 중 하나입니다. 이 패러다임은 코드를 간결하고 유지보수 가능하게 만들어주며, 높은 수준의 추상화를 제공하여 복잡한 문제를 해결할 수 있게 합니다. 이에 따라 자바와 같은 몇몇 언어들에서는 함수형 프로그래밍의 개념을 도입하고 있습니다.
함수형 프로그래밍은 여라가지 특징을 가지고 있지만, 여기서는 그 중에서도 일급 객체에 주목해보려 합니다. 일급 객체(일급시민)란 프로그래밍 언어에서의 특정 조건을 만족하는 객체를 가르키는데, 이 조건을 충족하는 객체는 다음과 같은 특성을 가집니다.
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();
}
}
이처럼 일급 객체의 특성은 프로그래밍 언어에서 함수나 객체를 변수에 할당하거나 함수의 매개변수로 전달하고 반환 값으로 사용할 수 있음을 의미합니다. 이러한 특성을 통해 함수형 프로그래밍은 코드를 더 유연하게 작성할 수 있게 됩니다.
함수형 프로그래밍과 일급 객체에 대한 이해는 코드의 가독성을 향상 시키고 유지보수를 쉽게 만드는데 도움이 됩니다. 또한, 병렬 처리와 상태의 부작용을 최소화 하여 안정적이고 효율적인 프로그램을 작성하는 데에도 기여합니다.