자바스크립트로 알아보는 함수형 프로그래밍 정리노트 #3

2019. 9. 15. 18:31Programming/JavaScript

반응형

이 글은 인프런에서 게재되어있는, 유인동 님의 자바스크립트로 알아보는 함수형 프로그래밍을 수강하면서 정리한 노트입니다. 제가 잘못 이해하거나 정리한 내용이 있다면 댓글로 알려주세요. 확인하는대로 수정하도록 하겠습니다. :)

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

"함수형 사고방식은 문제의 해결 방법을 동사(함수)들로 구성(조합)하는 것" by 마이클 포거스, 클로저 프로그래밍의 즐거움.

데이터(객체) 기준의 코드는 아래와 같다.

duck.moveLeft();
duck.moveRight();
dog.moveLeft();
dog.moveRight();

위의 예제처럼 코드가 객체를 기준으로 동작하는 경우, 객체지향 프로그래밍이라고 한다.
객체지향 프로그래밍에서는 데이터를 먼저 만들고, 데이터에 맞는 메소드를 작성하게 된다.
예를 들어 moveLeftmoveRightduckdog가 갖게 하기 위해서, Animal 클래스를 먼저 만든 뒤 duckdog가 상속받는 형태가 된다.

함수 기준의 코드는 아래와 같다.

moveLeft(dog);
moveRight(duck);
moveLeft({x:5, y:2});
moveRight(dog);

위의 예제처럼 코드가 함수를 기준으로 동작하는 경우, 함수형 프로그래밍이라고 한다.
함수형 프로그램이에서는 함수를 만들고, 함수에 맞는 데이터를 작성하게 된다. 먼저 moveLeftmoveRight를 만들고, 이 함수에서 사용할 수 있도록 데이터 dog, duck, {x:5, y:2}를 만드는 형태가 된다.

참고:

자바스크립트로 알아보는 함수형 프로그래밍 #1, 인프런

반응형