CS(Computer science) - 상식(함수형 프로그래밍)

HJ-C·2022년 12월 31일
post-thumbnail

함수형 프로그래밍

함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다.


프로그래밍 패러다임

프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게하고, 결정하는 역할을 한다.

  • 명령형 프로그래밍 : 프로그래밍의 상태와 그것을 변경시키는 구문의 관점에서 연산을 설명

  • 선언형 프로그래밍 : 어떻게(How) 할 것인가 보다는 무엇(What)을 할 것인가를 표현


함수형 프로그래밍의 특징

  • 순수 함수(Pure function)
    - 함수의 실행이 외부에 영향을 끼치지 않는 함수

    • 같은 입력에 있어서 항상 동일한 출력
  • 참조 투명성(Referential transparency)
    - 프로그래밍의 변경 없이 어떤 표현식을 값으로 대체할 수 있다는 의미

  • 불변하는 데이터(Immutable Data)
    - 함수 외부에서 데이터를 수정하지 않음

    • 함수의 계산을 수행하는 동안 변수에 할당된 값들이 절대로 변하지 않음
  • 일급 객체(First Class Functions)
    - 변수나 자료 구조안에 삽입 가능

    • 파라미터로 전달 가능
    • 동적으로 프로퍼티 할당 가능
  • 고차 함수(High order function)
    - 함수를 다루는 함수

    • 함수의 인자로 함수를 전달 가능
    • 함수의 return 값으로 함수를 사용 가능
  • 익명 함수(Anonymous function)
    - 람다식

    • 이름이 없는 함수
  • 클로저(Closure)
    - 부모 함수가 실행되었더라고 부모 함수의 변수에 접근할 수 있는 내부 함수를 뜻함

  • 모듈화(Modularity)
    - 모듈화를 통해 생산성을 증가시킨다. 작은 모듈은 빠르게 작성할 수 있으며 재사용하기 용이하여 프로그램 개발 속도를 높일 수 있다.


함수형 프로그래밍의 장단점

  • 장점
    - 개발 생산성을 높일 수 있다.

    • 가독성이 높은 코드를 작성하기 쉽다.
    • 함수 단위의 코드 재사용이 쉽다.
    • 프로그램의 동작을 예측하기 쉽다.
    • 더 나은 모듈화와 짧은 코드를 제공한다.
  • 단점
    - 함수형 프로그래밍의 개념은 이해하기 쉽지 않다.

    • 광범위한 환경 설정이 필요할 수 있다.
    • 함수가 많아질 수록 함수를 조합하기 복잡해지며 꾸준한 리팩토링이 필요할 수 있다.

profile
생각을 기록하자

0개의 댓글