clean-architecture

6장. 함수형 프로그래밍

가변 변수

가변 변수는 프로그램 실행 중에 상태가 변할 수 있다.

불변성과 아키텍처

아키텍트는 왜 변수의 가변성을 염려하는가?

경합조건, 교착상태 조건, 동시 업데이트 문제가 모두 가변 변수로 인해 발생한다.

락이 가변적이지 않다면 교착상태도 일어나지 않는다.

우리가 동시성 애플리케이션에서 마주치는 모든 문제, 다수의 스레드와 프로세스를 사용하는 애플리케이션에서 마주치는 모든 문제는 가변 변수가 없다면 절대로 생기지 않는다.

가변성의 분리

불변 컴포넌트에서는 순수하게 함수형 방식으로만 작업이 처리되며, 어떤 가변 변수도 사용되지 않는다.

결론

소프트웨어, 즉 컴퓨터 프로그램은 순차, 분기, 반복, 참조로 구성된다.

그 이상도 이하도 아니다.