본문 바로가기
Architecture

[Architecture] 함수형 프로그래밍

by Sky Titan 2021. 5. 29.
728x90
 

클린 아키텍처

살아있는 전설이 들려주는 실용적인 소프트웨어 아키텍처 원칙『클린 코드』와 『클린 코더』의 저자이자 전설적인 소프트웨어 장인인 로버트 C. 마틴은 이 책 『클린 아키텍처』에서 이러한

www.yes24.com

함수형 프로그래밍

  • 현재 존재하는 3가지 프로그래밍 패러다임 중 하나
  • 변수 할당에 부과되는 규율
  • 가변 변수를 사용하지 않고 순수 함수, 고차 함수 등의 개념을 이용하여 동시성 문제를 해결
  • 개념이 등장한 것은 프로그래밍이 등장한 것보다 오래되었다.
  • 수학의 람다(lamda) 계산법에 기반한다.
  • 가변 변수가 변경되지 않는다는 것이 중요한 포인트
    • race condition(경합 조건), dead lock(교착 상태), concurrent update(동시 업데이트) 등과 같은 문제들이 모두 가변 변수에 의해 발생한다.
    • 어떠한 변수도 갱신되지 않는다면 경합 조건, 동시 업데이트, 교착 상태 등의 문제는 발생하지 않는다.

 

가변성의 분리

  • 애플리케이션 혹은 애플리케이션 내부의 서비스는 가변 컴포넌트, 불변 컴포넌트로 분리할 수 있다.
  • 불변 컴포넌트에서는 순수하게 함수형 방식으로만 작업이 되며 어떤 가변 변수도 사용되지 않는다.
  • 불변 컴포넌트는 하나 이상의 가변 컴포넌트와 통신한다.

 

 

728x90

댓글