2.5 KiB
2.5 KiB
id: P-Reinforce-AUTO-FUPR-001 category: "10_Wiki/💡 Topics/AI" confidence_score: 0.96 tags: [auto-reinforced, Functional-Programming, declarative, immutability, pure-function, software-engineering] last_reinforced: 2026-04-20
Functional Programming
📌 한 줄 통찰 (The Karpathy Summary)
"상태 변화 없는 수학적 흐름: 데이터를 직접 수정(Mutation)하지 않고, 입력에 대해 항상 같은 결과를 내놓는 순수 함수(Pure Function)들의 조합으로 안정성 있고 예측 가능한 소프트웨어를 건축하는 프로그래밍 철학."
📖 구조화된 지식 (Synthesized Content)
함수형 프로그래밍(Functional Programming)은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임입니다.
- 핵심 원칙:
- Immutability (불변성): 한번 생성된 데이터는 바꾸지 않고, 변화가 필요하면 새로운 데이터를 만듦. (멀티코어 환경의 안전성 확보)
- Pure Functions: 외부 상태에 의존하지 않고 오직 입력으로만 결과를 냄 (Side effect 제거).
- Higher-Order Functions: 함수를 값처럼 주고받아 로직의 결합과 재사용성을 극대화 (Map, Filter, Reduce).
- 왜 중요한가?:
- 코드가 간결해지고 테스트가 압도적으로 쉬워지며, 분산 컴퓨팅(Distributed-Systems) 환경에서 데이터 일관성을 지키기에 최적임.
⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- 과거 데이터와의 충돌: 과거에는 하드웨어 자원 낭비(복사 비용 등) 때문에 '명령형/객체지향 정책'이 압승했으나, 현대 정책은 병렬 연산의 중요성과 소프트웨어 복잡성 해결 정책 때문에 모든 주류 언어가 함수형 특징을 도입하는 '하이브리드 함용 정책'으로 승리함(RL Update).
- 정책 변화(RL Update): 거대 데이터 파이프라인 정책과 AI 모델의 레이어 연산 정책 자체가 거대한 함수 체인(Functional Chain) 정책으로 설계되어 있으며, 이를 선언적으로 다루는 능력이 현대 개발의 필수 정책이 됨.
🔗 지식 연결 (Graph)
- Clean-Architecture-TypeScript, Distributed-Systems, Concurrent Programming, Logic, Optimization
- Modern Tech/Tools: Haskell, Elixir, React (Functional Components), Rust, Ramda.js.