절차지향 프로그래밍 의 문제점을 보완할 수 있는 프로그래밍 방법론.
작은
, 독립적인
단위 중심으로 만든 객체의 상호작용 으로 문제를 해결하는 Bottom-Up
방식이다.
객체지향 프로그래밍 은 객체
라고 하는, 상태
와 행위
를 가지고 있는 독립적인 단위 중심으로 객체끼리 상호작용 하게 하는 프로그래밍 방법론이다.
함수형 프로그래밍 은 데이터 처리를 수학적인 함수 계산으로 취급해서 개별적인 상태
, 데이터
보다는 작은 부분 동작(함수)의 집합 구성에 더 집중 하는 프로그래밍 방식이다.
함수형 프로그래밍은 아래 4가지 원칙을 따른다.
변경 가능한 상태를 불변상태(Immutable)
로 만들어 Side Effect 를 없앰
모든 것은 객체
코드를 간결하게 하고 가독성을 높여 구현할 로직에 집중 시키자.
동시성 작업을 보다 쉽게 안전하게 구현 하자.
데이터 중심 프로그래밍 방식.
반응형 프로그래밍 은 데이터의 흐름 추적을 중점적으로 두는 프로그래밍 방식이다.
함수형 프로그래밍에 기반을 두어, 함수형 프로그래밍이 가진 불변상태(Immutable)
를 기초로 둔다
즉, 데이터가 변경될 때마다 관련된 로직을 일일히 호출하는 것이 아니라, 데이터 스트림
이 존재하고 이를 구독 하는 곳에서 변화에 따라 알아서 처리 한다.
데이터(상태)를 다루는 개념과, ‘간결한 코드 작성’에 대한 관점 차이가 있다.
간결한 코드 작성
에서
를 이용해 가독성을 높혀 코드의 이해를 돕는다.
객체지향 프로그래밍 의 경우, 객체들의 관계 를 중심으로 코드 작성이 이루어진다.
따라서 상태
, 멤버변수
, 메서드
등이 긴밀한 관계를 가지고 있다. 특히 멤버변수가 어떤 상태 를 가지고있는가에 따라 결과가 달라진다.
함수형 프로그래밍 의 경우, 값의 연산
및 결과 도출
중심으로 코드작성이 이루어진다. 함수 내부에서 인자로 받은 값을 별도로 저장하거나 하지 않고, 간결한 과정으로 처리하고 매핑하는데에 주 목적 을 둔다.