Kotlin

[Kotlin] 2. 함수형 프로그래밍을 지원하는 코틀린의 핵심 개념

반응형

2022.01.21 - [Kotlin] - [Kotlin] 1. Kotlin의 정적 타입 지정 언어

 

함수형 프로그래밍과 객체지향 프로그래밍

자바 개발자라면 객체지향(Object oriented)프로그래밍의 핵심 개념을 잘 이해하고 있을 것인데, 함수형 프로그래밍은 새로운 개념일 것이다.

 

함수형 프로그래밍의 핵심 개념

  • 일급 시민(first-class)함수
    • 함수(프로그램의 행동을 나타내는 코드 조각)를 일반 값처럼 다룰 수 있다. 함수를 변수에 저장할 ㅅ ㅜ있고, 함수를 인자로 다른 함수에 전달할 수 있으며, 함수에서 새로운 함수를 만들어 반환할 수 있다.
  • 불변성
    • 함수형 프로그래밍에서는 일단 만들어지고 나면 내부 상태가 절대로 바뀌지 않는 불변 객체를 사용해 프로그램을 작성한다.
  • 부수효과 없음
    • 함수형 프로그래밍에서는 입력이 같으면 항상 같은 출력을 내놓고 다른 객체의 상태를 변경하지 않으며, 함수 외부나 다른 바깥 환경과 상호작용하지 않는 순수 함수(pure function)을 사용한다.

 

함수형 프로그램이의 장점

  • 간결성
    • 명령형(imperative)코드에 비해 더 간결하며 우아하다. (순수) 함수를 값처럼 활용할 수 있으며 더 강력한 추상화(abstraction)를 할 수 있고 강력한 추상화를 사용해 코드 중복을 막을 수 있다.
  • 다중 스레드에서 안전
    • 다중 스레드 환경에서 같은 데이터를 여러 스레드가 변경할 수없다. 복잡한 동기화를 적용하지 않아도 된다.
  • 테스트가 쉽다
반응형