자바스크립트 - 함수형 프로그래밍이란?

반응형

 

함수형 프로그래밍이란?

함수형 프로그래밍은

항상 동일하게 동작하는 함수를 만들고,

보조 함수를 이용해서 로직을 완성하는 방식으로 프로그래밍을 하는 방법입니다.

예시

function map(array, condition) {
  const newArray = [];
  for (var i = 0; i < array.length; i++) {
    if (condition(array[i])) {
      newArray.push(array[i])
    }
  }
  return newArray;
}

const list = map([10, 20, 30], function(i) {
  return i > 10;
})

console.log(list); // [20, 30]

 

map 함수에서 첫 번째 파라미터는 배열을 받고, 두 번째 파라미터는 조건을 처리하는 보조 함수를 받습니다.

배열에서 보조 함수로 조건을 확인하여 새로운 함수를 리턴하는 map 함수를 만들었습니다.

 

이러한 방식으로 프로그래밍을 하는 것이 함수형 프로그래밍입니다.

함수형 프로그래밍의 목표는 부수 효과(Side Effect)를 줄이는 것 입니다.

절차 지향 프로그래밍

절차 지향 프로그래밍은 위에서 아래로 내려가면서 순차적으로 실행되는 방식입니다.

 

객체 지향 프로그래밍

객체를 만들어서 각각의 기능들을 구현하고, 서로간의 객체들을 이용해서 기능들을 재사용하는 방식입니다.

function TextBox(options) {
   var textbox = document.createElement('input');
   
   return textbox;
}

TextBox.prototype.focus = function() {
   // to do focus
}

TextBox.prototype.value = function() {
   // to do return value
}

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

자바스크립트에서 함수는 결국 객체입니다.

 

함수형 프로그래밍과 객체 지향 프로그래밍은 반대되는 개념은 아닙니다.

프로그래밍을 할 때, 객체를 다루는 함수를 만드느냐, 함수를 늘리느냐는의 차이 입니다.

 

 

728x90
반응형