티스토리 뷰

인프런 / [무료] 자바스크립트로 알아보는 함수형 프로그래밍 / 섹션1.

함수형 프로그래밍 정의, 순수함수

함수형 프로그래밍의 정의들 (마이클 포커스 [클로저 프로그래밍의 즐거움])

- 함수형 프로그래밍은 어플리케이션, 함수의 구성요소, 더 나아가 언어 자체를 함수처럼 여기도록 만들고, 이러한 함수 개념을 가장 우선순위에 놓는다.

- 함수형 사고방식은 문제의 해결 방법을 동사(함수)들로 구성(조합)하는 것


함수형 프로그래밍: 성공적인 프로그래밍을 위해 부수 효과를 미워하고 조합성을 강조하는 프로그래밍 패러다임.

- 부수효과 > 순수함수를 만든다.

- 조합성을 강조 > 모듈화 수준을 높인다.

 

순수함수: 값을 다루거나 변형할 때 외부의 값(인자 or 변수 값)들을 변경하지 않으면서 값을 다루는 함수.

- ex) function add(a,b) { return a + b; }


일급함수

일급함수: 변수에 함수를 담을 수 있고 함수가 함수를 인자값으로 받을 수 있다.

- ex) var f1 = function add(a,b) { return a + b; }


*결국 순수함수들을 많이 만들고 이 순수함수들을 조합해서 프로그래밍 하는 것을 함수형 프로그래밍이라고 하고 이런 형태의 패러다임이 권장되어진다고 함.


최신 개발 현황

요즘 개발되는 어플리케이션의 경우 아래의 기능들을 모두 담고 있는 경우가 많다고 함.


재미 / 실시간성: 라이브 방송, 실시간 댓글, 협업, 메신저 등

독창성 / 완성도: 애니메이션, 무한 스크롤 등

동시성: 비동기 I/O, CSP, Actor 등

반응성 / 고가용성: ELB, Auto Scaling, OTP Supervisor 등

대용량 / 정확성 / 병렬성: MapReduce, Clojure Reducers 등

복잡도 / MSA: 많아지고 세밀해지는 도구들


=> 함수형 프로그래밍이 중요시 됨

 - 향상된 하드웨어 성능, 컴파일러, 함수형 프로그래밍 기술, 성공적인 적용 사례와 영향 등


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

함수가 먼저나오느냐, 객체가 먼저나오느냐에 따라 나뉨.

객체지향 프로그래밍은 데이터를 먼저 구성하고 그 데이터에 맞는 메서드를 구성함.

함수형 프로그래밍은 함수를 먼저 구성하고 그 함수에 맞게 데이터를 구성함.



예를 들어, 위와 같은 경우 객체지향 프로그래밍은 동물을 왼쪽, 오른쪽으로 이동시키는 클래스를 만들고 오리와 강아지그 해당 클래스를 상속받아서 사용한다면, 함수형 프로그래밍은 moveLeft()와 moveRight()를 구성해놓고 그 안에 이동시킬 동물의 데이터를 넣어서 사용함.

댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
최근에 올라온 글
최근에 달린 댓글
방문자 현황
Total
Yesterday
Today