Language

함수형 프로그래밍(Functional Programming)이란?

2025-07-24 01:05


함수형 프로그래밍(Functional Programming)이란?

시작하기

프로그래밍을 하다보면 어디서부터 버그가 생겼고 상태가 어디서 부터 변경되었는지 알기 어려운 경우가 있다. 이런 문제를 해결하기 위한 하나의 접근 방식이 바로 함수형 프로그래밍이다. 함수형 프로그래밍이 어떤 철학과 원칙을 가지고 있는지, 자바스크립트에서는 이를 어떻게 구현할 수 있는지 간단히 알아보자.

함수형 프로그래밍 (Functional Programming, FP)

나오게 된 배경

사용하면 좋은 점?

함수형 프로그래밍에 특화된 언어

함수형 스타일을 지원하는 언어

객체지향이나 절차형 기반이지만 함수형 스타일도 부분적으로 잘 지원함

자바스크립트의 함수형 언어 요소들

자바스크립트는 함수형 언어과 객체 지향 프로그래밍 모두 지원하는 멀티 패러다임 언어이다

함수형 스타일 코드 예시

const numbers = [1, 2, 3];
const squared = numbers.map((n) => n * n); // 고차 함수

순수함수의 조건

순수 함수 예시)

function add(x, y) {
  return x + y;
}

순수하지 않은 함수 예시)

let count = 0;

function increment() {
  count++;
  return count;
}

람다(lambda) 함수

클로저(closure) 함수

function outer() {
  let count = 0;

  return function inner() {
    // 클로저 함수
    count++;
    console.log(count);
  };
}

const counter = outer();
counter(); // 1
counter(); // 2

고차함수(High-Order Function)

자바스크립트 기준 많이 쓰는 고차함수 종류입니다

마무리

함수형 프로그래밍은 단순히 함수를 많이 쓰자는 접근이 아니라 변경 가능한 상태를 줄이고 예측 가능한 코드를 만들수 있는 로직을 구성하는게 목적이다. 자바스크립트의 함수형 스타일을 지원하는 언어에서 이 패러다임을 부분적으로 적용해보는 것만으로도 코드 품질이 향상되고 유지보수성이 좋아질 수 있다. 특히 map, filter, reduce 등과 같은 고차함수를 적극적으로 사용하고 순수함수로 만드는 것이 함수형 스타일의 장점을 높일 수 있다.




 함수형프로그래밍  FP  Programming  불변성  순수함수