함수형 프로그래밍이란?

규갓 God Gyu·2025년 4월 10일

면접질문

목록 보기
111/142

프로그래밍 패러다임 중 하나
순수 함수와 불변성 강조하는 방식
어떻게 보단 무엇에 집중하고 순수 함수를 조합하는 형태로 코드를 작성한다는 특징

핵심 개념 중 하나는 순수함수
순수함수란 동일한 입력에 대해 항상 동일한 결과를 반환하고, 외부 상태를 변경하지 않는 함수

function add(a, b) {
  return a + b;
}

만약 함수 내에 데이터 베이스에 접근하거나 전역 변수를 변경하는 등 부수 효과를 포함하면 순수 함수가 아님

다음 중요 개념 불변성
데이터를 직접 변경하는 것을 피하고, 기존 데이터를 기반으로 새로운 데이터를 생성하는 방식
ex - 배열의 값 변경 시 push대신 concat을 사용하는 것이 함수형 프로그래밍에 적합한 방식

const numbers = [1, 2, 3];
const newNumbers = numbers.concat(4);
console.log(newNumbers); // [1, 2, 3, 4]
console.log(numbers); // [1, 2, 3] (원본 배열이 변경되지 않음)

이외에 고차함수, 커링, 함수 합성, 재귀 등의 기법 적극적 활용하기도 함

이런 코드의 장점은?

  1. 코드 유지보수성 좋음
    함수형 코드는 절차적이지 않고 선언적이여서 코드가 읽고 수정하기 좋은 형태
  2. 테스트하기 용이
    순수 함수는 외부 의존성이 없어서 테스트하기 쉬운 형태임
  3. 병렬 처리하기 용이
    불변성 및 부수 효과가 없다는 특징 덕분에 병렬 처리하기 적합
profile
웹 개발자 되고 시포용

0개의 댓글