객체지향 프로그래밍 vs 함수형 프로래밍 + 반응형 프로그래밍

이숭인·2021년 9월 16일
0

OOP

목록 보기
5/5
post-custom-banner

객체지향 프로그래밍


절차지향 프로그래밍 의 문제점을 보완할 수 있는 프로그래밍 방법론.

작은 , 독립적인 단위 중심으로 만든 객체의 상호작용 으로 문제를 해결하는 Bottom-Up 방식이다.

객체지향 프로그래밍객체 라고 하는, 상태행위 를 가지고 있는 독립적인 단위 중심으로 객체끼리 상호작용 하게 하는 프로그래밍 방법론이다.



함수형 프로그래밍


함수형 프로그래밍 은 데이터 처리를 수학적인 함수 계산으로 취급해서 개별적인 상태 , 데이터 보다는 작은 부분 동작(함수)의 집합 구성에 더 집중 하는 프로그래밍 방식이다.

함수형 프로그래밍은 아래 4가지 원칙을 따른다.

  1. 변경 가능한 상태를 불변상태(Immutable) 로 만들어 Side Effect 를 없앰

  2. 모든 것은 객체

  3. 코드를 간결하게 하고 가독성을 높여 구현할 로직에 집중 시키자.

  4. 동시성 작업을 보다 쉽게 안전하게 구현 하자.




반응형 프로그래밍


데이터 중심 프로그래밍 방식.

반응형 프로그래밍 은 데이터의 흐름 추적을 중점적으로 두는 프로그래밍 방식이다.

함수형 프로그래밍에 기반을 두어, 함수형 프로그래밍이 가진 불변상태(Immutable) 를 기초로 둔다

즉, 데이터가 변경될 때마다 관련된 로직을 일일히 호출하는 것이 아니라, 데이터 스트림 이 존재하고 이를 구독 하는 곳에서 변화에 따라 알아서 처리 한다.




객체지향 vs 함수형 프로그래밍의 차이


데이터(상태)를 다루는 개념과, ‘간결한 코드 작성’에 대한 관점 차이가 있다.

간결한 코드 작성 에서

  • 객체지향 -> 캡슐화
  • 함수형 -> 함수의 동작부 최소화

를 이용해 가독성을 높혀 코드의 이해를 돕는다.

객체지향 프로그래밍 의 경우, 객체들의 관계 를 중심으로 코드 작성이 이루어진다.
따라서 상태 , 멤버변수 , 메서드 등이 긴밀한 관계를 가지고 있다. 특히 멤버변수가 어떤 상태 를 가지고있는가에 따라 결과가 달라진다.

함수형 프로그래밍 의 경우, 값의 연산결과 도출 중심으로 코드작성이 이루어진다. 함수 내부에서 인자로 받은 값을 별도로 저장하거나 하지 않고, 간결한 과정으로 처리하고 매핑하는데에 주 목적 을 둔다.

profile
iOS Developer
post-custom-banner

0개의 댓글