자바

함수형 프로그래밍과 일급객체

이상한나라의개발자 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();
    }
}

 

이처럼 일급 객체의 특성은 프로그래밍 언어에서 함수나 객체를 변수에 할당하거나 함수의 매개변수로 전달하고 반환 값으로 사용할 수 있음을 의미합니다. 이러한 특성을 통해 함수형 프로그래밍은 코드를 더 유연하게 작성할 수 있게 됩니다.

 

함수형 프로그래밍과 일급 객체에 대한 이해는 코드의 가독성을 향상 시키고 유지보수를 쉽게 만드는데 도움이 됩니다. 또한, 병렬 처리와 상태의 부작용을 최소화 하여 안정적이고 효율적인 프로그램을 작성하는 데에도 기여합니다.