함수자
프로그래밍에서 에러 핸들링이라는 또 다른 중요한 개념을 살펴본다.
함수자(functor) 라는 새로운 개념을 살펴본다. 이 개념은 순수하게 함수형 방법으로 에러를 다룰 수 있도록 도와준다.
함수자의 아이디어를 이해한 후 두 가지의 실제 함수자(MayBe, Either) 를 구현해본다.
프로그래밍에서 에러 핸들링이라는 또 다른 중요한 개념을 살펴본다.
함수자(functor) 라는 새로운 개념을 살펴본다. 이 개념은 순수하게 함수형 방법으로 에러를 다룰 수 있도록 도와준다.
함수자의 아이디어를 이해한 후 두 가지의 실제 함수자(MayBe, Either) 를 구현해본다.
함수형 컴포지션(functional composition) 이란 간단히 함수형 프로그래밍에서 컴포지션이라 일컫는다.
컴포지션 아이디어의 이론과 간단한 예제를 살펴본 후 compose 함수를 작성해본다.
커링(currying)이 어떤 의미이며 어디서 사용되는지 이해한 후 부분 적용(partial application) 이라는
또 다른 함수형 프로그래밍 개념을 살펴본다. 커링과 부분 적용 모두 함수 합성을 사용할 때 이해해야 한다.
함수 인자를 하나만 취하는 함수를 단항 함수(unary function) 라 한다.
1 | const identity = x => x; |
함수형 프로그래밍 개념을 알기 전에 자바스크립트에서 클로저를 이해해야 한다.
간단히 얘기해 클로저는 내부 함수다. 내부 함수란 간단히 다음과 같이 다른 함수 내에 있는 함수다.
1 | function outer() { |
언어로서의 자바스크르빝는 함수를 데이터로 다룬다. 데이터 영역에서 함수를 전달할 수 있는 강력한 개념도 있다.
인자로 다른 함수를 전달받는 함수를 고차 함수라고 한다.
프로그래머로서 데이터로 동작되는 프로그램을 알아야한다. 데이터는 실행할 프로그램을 작성하는 과정에 있어 중요하다.
따라서 모든 프로그래밍 언어는 프로그래머가 작업할 데이터를 제공한다.
수학에서 함수란 무엇인가? 수학에서 함수는 다음과 같이 나타낼 수 있다.
f(X) = Y
이 수식은 “X 를 인자로 하는 함수 f 가 있으며, 출력 Y 를 반환한다” 라고 할 수 있다. X 와 Y 에는 모든 수가 가능하다.
매우 간단한 정의지만 다음과 같은 중요한 점이 있다.
Deno 의 framework 를 사용하여 API 서버를 구축해보려한다. 현재 기준(2020/07/05) 수 많은 framework 가 있지만
oak 가 제일 인기 많고 잘 만들어져 있다고 한다. 사용법이 express 와 비슷해서 인기가 많아진 것 같지만
oak 에서 제공해주는 example 을 직접 구현해 보려 한다.
최근 Node 의 단점들을 보완한 Deno 가 정식 릴리즈 되었다. 아직 1 버전 으로 실제 회사나 프로젝트에서 쓰기는
무리가 있겠지만, 버전이 올라가면서 안정적으로 되면 Node 를 대체할 수도 있을거라고 생각한다.
Deno 가 왜 좋은지, 어떤 장점과 이점이 있는지는 검색해보면 많이 있다. 나는 이런 이론 말고 직접 한번 써보고 싶었다.
이전 글에 이어서 canvas 의 기초에 대해 더 알아보려한다. 이번 포스트에는 애니메이션, 이벤트에 대해서 알아본다.