ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 함수형 프로그래밍이란? 🚀 선언형 코드로 더 스마트한 개발!
    Developer 2025. 2. 24. 10:39
    728x90

    1. 함수형 프로그래밍이란?

    함수형 프로그래밍(Functional Programming, FP)함수를 일급 시민(First-Class Citizen)으로 취급하고, 불변성(Immutability)과 순수 함수(Pure Function)를 중심으로 개발하는 프로그래밍 패러다임입니다.

    ✅ 쉽게 말해?

    • "데이터를 변경하지 않고, 함수들을 조합하여 프로그래밍한다!"
    • "부작용(Side Effect)을 최소화하고, 유지보수와 테스트가 쉬운 코드를 만든다!"

    2. 함수형 프로그래밍의 핵심 원칙 🚀

    📌 1) 순수 함수(Pure Function)

    • 같은 입력값에 대해 항상 같은 출력값을 반환하는 함수
    • 외부 상태를 변경하지 않음
    // 순수 함수 예제
    const add = (a, b) => a + b;
    console.log(add(2, 3)); // 5 (항상 같은 입력에 같은 출력)

    🚨 반대로, 아래는 순수 함수가 아님!

    let total = 0;
    const addToTotal = (num) => total += num;

    왜 중요할까?예측 가능하고, 디버깅이 쉬운 코드 작성 가능!


    📌 2) 불변성(Immutability)

    • 상태(State)를 변경하지 않고, 변경이 필요하면 새로운 값을 생성
    const numbers = [1, 2, 3];
    const newNumbers = [...numbers, 4];
    console.log(newNumbers); // [1, 2, 3, 4] (원본은 유지!)

    왜 중요할까?상태 변경에 따른 버그를 줄이고, 예측 가능한 코드 작성 가능!


    📌 3) 일급 함수(First-Class Functions)

    • 함수를 변수에 할당하거나, 함수의 매개변수로 전달 가능
    const greet = () => console.log("Hello");
    const execute = (fn) => fn();
    execute(greet); // "Hello"

    왜 중요할까?고차 함수(Higher-Order Function) 활용 가능!


    📌 4) 고차 함수(Higher-Order Function, HOF)

    • 함수를 인자로 받거나, 함수를 반환하는 함수
    const multiplier = (factor) => (number) => number * factor;
    const double = multiplier(2);
    console.log(double(5)); // 10

    왜 중요할까?함수 조합(Composition)과 재사용성을 극대화할 수 있음!


    3. 함수형 프로그래밍의 장점 🔥

    코드의 가독성과 유지보수성 향상
    디버깅과 테스트가 쉬움 (순수 함수 덕분)
    병렬 처리 및 멀티스레드 환경에서 안정적
    재사용 가능한 코드 작성 가능

    🚀 예제: 배열 데이터를 함수형 스타일로 처리하기

    const numbers = [1, 2, 3, 4, 5];
    const doubled = numbers.map(n => n * 2);
    console.log(doubled); // [2, 4, 6, 8, 10]

    반복문 없이 간결한 코드 작성 가능!


    4. 함수형 프로그래밍 vs 명령형 프로그래밍 비교

    비교 항목 함수형 프로그래밍 명령형 프로그래밍
    코드 스타일 선언형 (Declarative) 명령형 (Imperative)
    데이터 변경 불변성 유지 상태 변경 가능
    코드 길이 짧고 간결함 길고 복잡함
    디버깅 쉬움 상대적으로 어려움

    결론: 함수형 프로그래밍은 짧고 가독성 높은 코드 작성이 가능!


    5. 함수형 프로그래밍을 배우기 좋은 언어

    🚀 함수형 프로그래밍을 지원하는 주요 언어

    • JavaScript (ES6+ 화살표 함수, map, reduce 등 활용 가능)
    • Python (lambda, map, filter 지원)
    • Haskell (순수 함수형 언어)
    • Scala (함수형 + 객체지향 지원)
    • Elixir (분산 시스템에 강한 함수형 언어)

    JavaScript에서도 함수형 프로그래밍을 적극 활용할 수 있음!


    6. 결론 🎯

    함수형 프로그래밍은 코드의 예측 가능성을 높이고, 유지보수를 쉽게 만들어 줍니다!
    순수 함수, 불변성, 고차 함수를 활용하면 더 좋은 코드 작성 가능!
    JavaScript에서도 충분히 함수형 프로그래밍을 적용할 수 있음!

    👉 이제 함수형 프로그래밍을 적용하여 더 효율적이고 깔끔한 코드를 작성해 보세요! 🚀

     
    728x90
Designed by Tistory.