1.9 KiB
1.9 KiB
id, created, tags, aliases
| id | created | tags | aliases |
|---|---|---|---|
| 함수형 프로그래밍(Functional Programming) 20260407 | 2026-04-07 15:46 |
💡 생각
이곳에 하나의 생각 또는 아이디어를 작성합니다.
📑 개념
함수형 프로그래밍(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)
필터가 원본 데이터를 훼손하지 않고 새로운 데이터를 만들어 내보내듯, 함수형 프로그래밍에서도 기존 데이터를 수정하는 대신 항상 새로운 데이터를 반환합니다. 덕분에 데이터 흐름을 추적하기가 매우 명확해집니다.