Android Kotlin (함수형 프로그래밍 , 객체지향형 프로그래밍)

이성진·2023년 10월 20일
0

TIL

목록 보기
53/95
post-custom-banner

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

함수형 프로그래밍 과 객체지향 프로그래밍은 프로그래밍의 패러다임 중 두 가지 주요한 방식입니다. 이 두 패러다임은 다음과 같은 차이점을 가지고 있다.

  • 핵심 관점

    • 함수형 프로그래밍 : 프로그램을 순수 함수들의 조합으로 보고 , 데이터 변환과 연산을 중점적으로 다룬다.
    • 객체지향 프로그래밍 : 프로그램을 객체들의 집합으로 보고 , 데이터와 해당 데이터를 조작하는 메서드를 하나의 단위로 묶어서 다룬다.
  • 상태와 변경

    • 함수형 프로그래밍 : 불변성을 중요시하며 , 상태 변경이나 부작용을 최대한 피하려고 한다. 순수 함수는 동일한 입력에 대해 항상 동일한 출력을 반환하며 부작용을 갖지 않는다.
    • 객체지향 프로그래밍 : 객체는 상태와 행동을 가지며 , 상태는 private 변수로 저장되고 , 해당 상태를 변경하거나 조회하는 메서드를 통해 접근한다.
  • 데이터 조작

    • 함수형 프로그래밍 : 데이터 변환에 중점을 둔다. 고차 함수 , 맵 , 필터 , 리듀스 와 같은 연사자를 사용하여 데이터를 조작한다.
    • 객체지향 프로그래밍 : 데이터는 객체 내에 캡슐화 되며 , 해당 데이터를 조작하기 위한 메서드를 사용한다.
  • 병렬 처리와 동시성

    • 함수형 프로그래밍 : 순수 함수와 불변성의 특징으로 인해 병렬 처리와 동시성을 쉽게 다룰 수 있다.
    • 객체지향 프로그래밍 : 병렬 처리나 동시성을 위해서는 추가적인 방법을 사용하여 상태 변경에 대한 안전성을 확보해야 한다. (락 , 동기화)
  • 모듈성과 구성

    • 함수형 프로그래밍 : 작은 순수 함수들을 조합하여 복잡한 로직을 구성한다.
    • 객체지향 프로그래밍 : 객체와 클래스를 재사용하고 확장하여 복잡한 시스템을 구축한다.
  • 사용 사례

    • 함수형 프로그래밍 : 대규모 데이터 처리 , 병렬처리 , 리액티브 프로그래밍 등에 적합 함.
    • 객체지향 프로그래밍 : GUI 애플리케이션 , 시스템 프로그래밍 , 게임 등에서 잘 사용 된다.
profile
2023.08 ~ Android Kotlin 공부
post-custom-banner

0개의 댓글