Post

함수형 프로그래밍의 입문기

함수형 프로그래밍의 입문기

함수형 프로그래밍 이란?

함수형 프로그래밍은 도대체 무엇일까? 위키피디아에 나오는것을 보면 수학 함수를 사용하고 side effect를 피하는 것이 특징인 프로그래밍 패터다임이라고 나와 있고 side effect 없이 순수 함수만 사용하는 프로그래밍 스타일 이라고 보면 됩니다.

Side Effect란? 함수나 표현식이 자신의 스코프 외부에 있는 상태를 변경하거나 관찰 가능한 상호작용을 하는 것을 의미 합니다.

순수 함수란? 인자에만 의존하고 side effect가 없는 함수를 의미 합니다.

함수형 프로그래밍을 사용하는 이유?

  • 코드의 가독성과 유지보수성 향상
    • 순수 함수를 사용하여 side effect를 줄이고 예측 가능한 코드를 작성합니다.
  • 테스트와 디버깅 용이성
    • 함수의 입출력이 명확하여 단위 테스트가 쉬움
  • 불변성
    • 함수 외부에서의 데이터를 수정하지 않습니다.
  • 고참 함수

이것이 대표적인것 같습니다.

자바스크립트의 함수 프로그래밍

간단하게 자바스크립트에서 짝수를 구하는 코드를 보면

1
2
3
4
5
6
7
8
9
10
11
12
// 명령형

const arr = [1, 2, 3, 4, 5, 6];

const even = [];

for (let i = 0; i < arr.length; i++) {
  if (arr[i] % 2 === 0) {
    even.push(arr[i]);
  }
}

이렇게 명령형의 코드를

1
2
3
// 함수형
const arr = [1, 2, 3, 4, 5, 6];
const even = arr.filter((num) => num % 2 === 0);

이렇게 함수형으로 작성할 수 있습니다. 이렇게 작성이 될 경우 side effect를 없애고 예측 가능성이 높고 테스트하기 쉬운 코드를 작성 할 수 있습니다.

This post is licensed under CC BY 4.0 by the author.

© Banal. Some rights reserved.