728x90
함수형 프로그래밍
- 현재 존재하는 3가지 프로그래밍 패러다임 중 하나
- 변수 할당에 부과되는 규율
- 가변 변수를 사용하지 않고 순수 함수, 고차 함수 등의 개념을 이용하여 동시성 문제를 해결
- 개념이 등장한 것은 프로그래밍이 등장한 것보다 오래되었다.
- 수학의 람다(lamda) 계산법에 기반한다.
- 가변 변수가 변경되지 않는다는 것이 중요한 포인트
- race condition(경합 조건), dead lock(교착 상태), concurrent update(동시 업데이트) 등과 같은 문제들이 모두 가변 변수에 의해 발생한다.
- 어떠한 변수도 갱신되지 않는다면 경합 조건, 동시 업데이트, 교착 상태 등의 문제는 발생하지 않는다.
가변성의 분리
- 애플리케이션 혹은 애플리케이션 내부의 서비스는 가변 컴포넌트, 불변 컴포넌트로 분리할 수 있다.
- 불변 컴포넌트에서는 순수하게 함수형 방식으로만 작업이 되며 어떤 가변 변수도 사용되지 않는다.
- 불변 컴포넌트는 하나 이상의 가변 컴포넌트와 통신한다.
728x90
'Architecture' 카테고리의 다른 글
[Architecture] 프로토타입 패턴 (Prototype Pattern) (0) | 2021.07.04 |
---|---|
[Architecture] 빌더(Builder) 패턴 (0) | 2021.06.21 |
[Architecture] 아키텍처 (Architecture) (0) | 2021.06.20 |
[Architecture] SOLID 원칙 (0) | 2021.05.29 |
[Architecture] 구조적 프로그래밍 (0) | 2021.05.29 |
댓글