Files
2nd/10_Wiki/Topics/AI/Functional-Programming.md
T

2.4 KiB

id, category, confidence_score, tags, last_reinforced
id category confidence_score tags last_reinforced
FP-001 10_Wiki/💡 Topics/AI 1.0
programming
functional-programming
immutability
pure-functions
software-engineering
2026-04-26

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

📌 한 줄 통찰 (The Karpathy Summary)

"데이터의 상태 변화를 피하고, 순수 함수들의 조합으로 견고한 로직을 조립하라" — 계산을 수학적 함수의 평가로 취급하고 상태 변경 및 가변 데이터를 멀리하여, 병렬 처리에 유리하고 버그가 적은 소프트웨어를 만드는 프로그래밍 패러다임.

📖 구조화된 지식 (Synthesized Content)

  • 추출된 패턴: "어떻게(How)" 연산할지보다 "무엇(What)"인지 정의하고, 입력을 넣으면 항상 동일한 출력이 나오는 불변성(Immutability)과 참조 투명성(Referential Transparency)을 유지하는 선언적 코딩 패턴.
  • 핵심 개념:
    • Pure Functions: 외부 상태를 참조하거나 변경하지 않는 함수. 테스트와 디버깅이 매우 쉬움.
    • First-class Citizens: 함수를 변수에 담고, 인자로 넘기고, 결과로 반환할 수 있음.
    • Higher-order Functions: 함수를 파라미터로 받거나 결과로 반환하는 함수 (map, filter, reduce 등).
    • Immutability: 한 번 생성된 데이터는 수정하지 않고 항상 새로운 데이터를 생성하여 전달.
  • 의의: 동시성(Concurrency) 문제가 발생하는 멀티코어 환경과 대규모 분산 시스템에서 데이터 일관성을 유지하는 가장 강력한 무기.

⚠️ 모순 및 업데이트 (Contradictions & RL Update)

  • 과거 데이터와의 충돌: 객체지향(OOP)이 유일한 정답이던 시대를 지나, 데이터 스트림 처리와 비동기 프로그래밍이 중요해지면서 함수형 패러다임이 모든 주류 언어(JS, Java, Python 등)에 깊숙이 침투함.
  • 정책 변화: Antigravity 프로젝트는 에이전트의 사고 흐름(Chain of Thought)을 처리하는 파이프라인 설계 시, 각 단계를 순수 함수로 정의하여 재현 가능성과 안정성을 확보함.

🔗 지식 연결 (Graph)