자바스크립트로 알아보는 함수형 프로그래밍 정리노트 #1
2019. 9. 15. 17:54ㆍProgramming/JavaScript
반응형
이 글은 인프런에서 게재되어있는, 유인동 님의
자바스크립트로 알아보는 함수형 프로그래밍
을 수강하면서 정리한 노트입니다. 제가 잘못 이해하거나 정리한 내용이 있다면 댓글로 알려주세요. 확인하는대로 수정하도록 하겠습니다. :)
성공적인 프로그래밍
- 모든 프로그래밍 패러다임은 성공적인 프로그래밍을 위해 존재한다. 이는 함수형 프로그래밍도 마찬가지이다. 그렇다면 좋은 프로그램이란 무엇일까? 바로
사용성
,성능
,확장성
,기획 변경에 대한 대응력
이 좋은 프로그램을 좋은 프로그램이라고 한다. 이러한 좋은 프로그램을 효율적이고 생산적으로 만들어내는 것이 바로 성공적인 프로그래밍이다. - 함수형 프로그래밍은 성공적인 프로그래밍을 위해 부수 효과를 미워하고, 조합성을 강조하는 프로그래밍 패러다임이다.
- 순수 함수를 만든다. 순수 함수란, 들어온 인자가 같을 때 항상 동일한 결과를 반환하는 함수를 일컫는다. 또한, 순수 함수는 리턴값 이외에 외부의 상태에 영향을 끼치지 않는다. 예를 들어서 다음과 같이 순수 함수
f
의 인자로 객체p
가 주어졌을 때,f
는p
의 내용을 변경하지 않는다.p
의 내용을 참조하여 새로운 객체를 생성한 뒤, 이를 반환하게 된다. var p = {value:10}; function f(p) { return {value: p.value+10}; }
순수 함수
f
는 인자로 전달된p
의 값을 직접 변경하지 않고,p
의 value값을 참조하여 새로운 객체를 반환하고 있다.
순수 함수는 이런 식으로 외부의 값에 영향을 끼치지 않는다.- 조합성을 강조하여 모듈화 수준을 높인다. 순수 함수의 조합을 통해서 모듈화 수준을 높이게 되면, 오류는 적고 안정성이 높은 프로그램을 작성할 수 있게 된다. 순수 함수는 인자가 동일할 경우 언제나 결과값이 같기 때문에, 평가 시점을 개발자가 다룰 수 있기 때문이다. 그렇기 때문에 함수를 인자로 넘기거나, 함수 내에서 다른 함수를 호출하는(평가하는) 방식으로 조합성을 높일 수 있다. 이를 통해 다양한 로직을 작성할 수 있게 된다.
- 자바 스크립트에서는 함수가 일급 객체(First Class)이다. 일급 객체는 다음과 같은 특성을 지닌다.
- 리터럴에 의해 생성된다.
- 변수나 배열의 요소, 객체의 프로퍼티 등에 할당이 가능하다.
- 함수의 인자로 전달이 가능하다.
- 함수의 리턴 값으로 반환이 가능하다.
- 동적으로 프로퍼티를 생성하거나, 할당하는 게 가능하다.
- 순수 함수를 만든다. 순수 함수란, 들어온 인자가 같을 때 항상 동일한 결과를 반환하는 함수를 일컫는다. 또한, 순수 함수는 리턴값 이외에 외부의 상태에 영향을 끼치지 않는다. 예를 들어서 다음과 같이 순수 함수
참고:
자바스크립트로 알아보는 함수형 프로그래밍 #1, 인프런
함수는 일급 객체이다, by webclub.tistory.com
반응형
'Programming > JavaScript' 카테고리의 다른 글
자바스크립트로 알아보는 함수형 프로그래밍 정리노트 #3 (0) | 2019.09.15 |
---|---|
자바스크립트로 알아보는 함수형 프로그래밍 정리노트 #2 (0) | 2019.09.15 |
Tic-Tac-Toe #1 (0) | 2019.08.21 |
REST API를 사용한 폼 베이스 인증(Form Base Authentication)에 베이직/다이제스트 인증(Basic/Digest Authentication)을 적용하기 #2 (0) | 2019.07.16 |
REST API를 사용한 폼 베이스 인증(Form Base Authentication)에 다이제스트 인증(Digest Authentication)을 적용하기 #1 (0) | 2019.06.24 |