개발_프로그래밍

클린 아키텍처 - 6장. 함수형 프로그래밍 Functional Programming

_랄프_ 2022. 8. 29. 06:52
728x90

6장 함수형 프로그래밍 Functional Programming

함수형 프로그래밍은 사실 프로그래밍 그 자체보다 앞서 등장했다. 이 패러다임의 핵심은 람다 lamda 계산법으로서 알론조 처치 Alonzo Church 가 1930년대에 발명했다.

함수형 언어에서는 변수가 변경되지 않는다. 변수의 불변성이 중요한 이유는 바로 경합조건 race condition, 교착상태 deadlock, 동시 업데이트 concurrent update 문제가 모두 가변변수로부터 발생하기 때문이다. 아키텍트는 당연히 이러한 동시성 concurrency 문제에 관심을 가져야 한다.

서비스를 가변 mutable 컴포넌트와 불변 immutable 컴포넌트로 분리하여 어느정도 이 문제를 해결할 수 있다.

 

또한 이벤트 소싱 event sourcing 을 통해 상태가 아닌 트랜잭션 자체를 저장함으로써 해결할 수도 있다. 실제로 이는 저장공간을 많이 필요로 하지만 메모리가 커지고 상대적으로 가격이 저렴해 지고 있으므로 충분히 가능한 일이다. 이렇게 되면 어플리캐이션은 CRUD가 아니라 CR만 수행하면 된다. 저장공간과 처리능력만 충분하다면 어플리케이션이 완전한 불변성을 갖는 함수형으로 만들 수 있다.

<7장에서 계속>

 

 

728x90
반응형