[kotlin] 코틀린에서의 명령형과 함수형 프로그래밍 스타일 비교

코틀린은 명령형과 함수형 프로그래밍 스타일을 모두 지원하는 다중 패러다임 언어입니다. 명령형(imperative) 프로그래밍은 코드에 연속적인 명령문을 사용하여 프로그램의 실행 흐름을 명시하는 스타일을 말합니다. 함수형(functional) 프로그래밍은 불변성(immutability)함수형 기능을 강조합니다.

명령형 프로그래밍 스타일

명령형 프로그래밍 스타일은 일반적으로 변수(variable)상태(state)를 사용하여 프로그램을 설명합니다. 예를 들어, 다음은 명령형 스타일의 코틀린 코드입니다.

fun calculateTotalPrice(products: List<Product>): Double {
    var totalPrice = 0.0
    for (product in products) {
        if (product.price > 0) {
            totalPrice += product.price
        }
    }
    return totalPrice
}

위 코드에서는 가변적인 totalPrice 변수가 사용되고 반복문을 통해 길이를 수정합니다.

함수형 프로그래밍 스타일

함수형 프로그래밍 스타일은 불변성(immutability)순수 함수(pure functions)를 강조합니다. 코틀린은 함수형 프로그래밍을 지원하여, 위의 예제를 함수형 스타일로 다음과 같이 작성할 수 있습니다.

fun calculateTotalPrice(products: List<Product>): Double {
    return products
        .filter { it.price > 0 }
        .sumByDouble { it.price }
}

위 코드는 filtersumByDouble와 같은 고차 함수(higher-order functions)를 사용하여 명령형 방식보다 더 간결하게 표현되었습니다.

결론

코틀린은 명령형 및 함수형 프로그래밍 스타일을 모두 지원하며, 개발자는 프로젝트의 요구에 맞게 적절한 스타일을 선택할 수 있습니다. 함수형 프로그래밍 스타일은 보다 간결하고 가독성이 뛰어나며, 병렬 처리 및 상태 관리 측면에서 이점을 가집니다.

이 포스트는 Kotlin 공식 문서를 참고하여 작성되었습니다.

참고자료: Kotlin 공식 문서