---
id: "함수형 프로그래밍(Functional Programming) 20260407"
created: "2026-04-07 15:46"
tags:
aliases:
---
## 💡 생각  
이곳에 하나의 생각 또는 아이디어를 작성합니다.

---
## 📑 개념
**함수형 프로그래밍(Functional Programming)** 은 유닉스 철학의 필터 개념을 프로그래밍 언어의 문법과 구조로 가장 완벽하게 구현해낸 방법론이라고 할 수 있습니다.
[[유닉스 철학 (The Unix Philosophy)]]이 운영체제 수준에서 **프로그램**을 쪼개고 연결한다면, 함수형 프로그래밍은 코드 수준에서 **함수**를 쪼개고 연결합니다.

## 함수형 프로그래밍이 필터가 되는 방식
함수형 프로그래밍의 핵심 개념들은 유닉스 필터의 특성과 일대일로 대응됩니다.

### 1. [[순수 함수(Pure Function)]] = 완벽한 필터

순수 함수는 외부 상태를 변경하지 않고 오직 입력값에 의해서만 결과값을 반환합니다. 이는 유닉스 필터가 입력(stdin)을 받아 출력(stdout)을 내보내는 과정에서 시스템의 다른 곳을 건드리지 않는 것과 같습니다.

- **입력 → [ 함수(Filter) ] → 출력**
    

### 2. [[고차 함수(Higher-Order Function)]]와 합성 (Composition)

유닉스에서 파이프(`|`)를 사용해 여러 명령어를 잇는 것처럼, 함수형 프로그래밍에서는 **함수 합성**을 통해 작은 필터들을 조립합니다.

- 유닉스: `cat file.txt | grep "error" | wc -l`
    
- 함수형: `count(filter(read("file.txt"), "error"))` 혹은 파이프 연산자를 사용하여 더 직관적으로 표현할 수 있습니다.
    

### 3. 불변성 (Immutability)

필터가 원본 데이터를 훼손하지 않고 새로운 데이터를 만들어 내보내듯, 함수형 프로그래밍에서도 기존 데이터를 수정하는 대신 항상 새로운 데이터를 반환합니다. 덕분에 데이터 흐름을 추적하기가 매우 명확해집니다.