FP, 함수형 프로그래밍

Jiwon Yoo·2023년 10월 9일
0

CS

목록 보기
6/6

함수형 프로그래밍이란?

명령형 프로그래밍은 소프트웨어의 크기가 커짐에 따라, 코드를 유지보수하는 것이 어려워졌다. 이를 해결하기 위해 함수형 프로그래밍이라는 프로그래밍 패러다임에 대두되었다. 함수형 프로그래밍은 거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법으로, 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해준다.

함수형 프로그래밍의 특징

부수 효과가 없는 순수 함수를 1급 객체로 간주하여 파라미터나 반환값으로 사용할 수 있으며, 참조 투명성을 지킬 수 있다.

부수 효과(Side Effect)

  • 변수값 변경
  • 원본 데이터를 수정
  • 오류 또는 예외가 발생하여 실행이 중단

위 같은 경우를 부수 효과라고 한다.

순수 함수(Pure Function)

부수 효과(Side Effect)를 제거한 함수들을 순수 함수(Pure Function)라고 한다. 순수 함수는 메모리 또는 I/O 관점에서 Side Effect가 없고함수의 실행이 외부에 영향을 끼치지 않는다.

1급 객체(1st Class Object)

  • 변수나 데이터 구조에 담을 수 있다.
  • 파라미터로 전달 할 수 있다.
  • 반환값으로 사용할 수 있다.

함수형 프로그래밍에서 함수는 1급 객체로 취급한다.

참조 투명성(Referential Transparency)

  • 동일한 인자에 대해 항상 동일한 결과를 반환
  • 참조 투명성을 통해 기존의 값은 변경되지 않고 유지(Immutable Data)

명령형 프로그래밍과 함수형 프로그래밍에서 사용하는 함수는 부수 효과의 유/무에 따라 차이가 있다. 그에 따라 함수가 참조에 투명한지 안한지 나뉘어 지는데, 참조에 투명하다는 것은 말 그대로 함수를 실행하여도 어떠한 상태의 변화 없이 항상 동일한 결과를 반환하여 항상 동일하게 실행 결과를 참조할 수 있다는 것을 의미한다. 이렇게 부작용을 제거하여 프로그램의 동작을 이해하고 예측을 용이하게 하는 것은 함수형 프로그래밍으로 개발하려는 핵심 동기 중 하나이다.

참고

https://mangkyu.tistory.com/111

profile
새싹 개발자 🌱

0개의 댓글