함수형 프로그래밍이란? 절차지향과 뭐가 다른가
프로그래밍을 공부하다 보면 ‘절차지향 프로그래밍’과 ‘함수형 프로그래밍’이라는 용어를 자주 듣게 됩니다. 처음에는 그 차이가 단순히 문법적인 것으로 보이지만, 사실 이 둘은 코드를 바라보는 철학 자체가 다릅니다. 절차지향이 ‘어떻게 동작할 것인가’에 초점을 맞춘다면, 함수형 프로그래밍은 ‘무엇을 할 것인가’에 집중합니다. 즉, 함수형 프로그래밍은 코드를 명령어의 집합이 아니라 수학적 함수들의 조합으로 보는 사고 방식이라고 할 수 있습니다. 이번 글에서는 함수형 프로그래밍이란 무엇인지, 절차지향과 어떤 차이가 있는지를 구체적인 예시를 통해 살펴보겠습니다. 1. 절차지향 프로그래밍이란 무엇일까 절차지향 프로그래밍(Procedural Programming)은 이름 그대로 ‘절차’, 즉 프로그램이 실행되는 순서를 중심으로 구성된 방식입니다. 프로그램을 여러 단계의 명령으로 나누어 위에서 아래로 차례대로 수행합니다. 예를 들어 요리를 한다고 가정해 봅시다. 절차지향 프로그래밍은 레시피처럼 “재료 준비 → 손질 → 조리 → 완성”의 흐름을 코드로 옮긴 것과 같습니다. 이 방식은 명확하고 직관적이지만, 프로그램이 커질수록 함수나 변수들이 서로 얽히기 쉬워 유지보수가 어려워집니다. 간단히 말해 절차지향은 ‘작동 순서’를 중심으로 사고하는 프로그래밍 방식입니다. 2. 함수형 프로그래밍의 핵심 개념 함수형 프로그래밍(Functional Programming)은 함수를 중심으로 프로그램을 구성하는 방식입니다. 여기서 말하는 ‘함수’는 단순히 코드를 묶는 도구가 아니라, 입력이 주어지면 항상 같은 출력을 내는 수학적인 함수 개념에 가깝습니다. 함수형 프로그래밍은 다음 세 가지 원칙으로 요약할 수 있습니다. 불변성(Immutable Data) 데이터는 한 번 만들어지면 변경하지 않습니다. 새로운 결과를 얻기 위해서는 기존 데이터를 바꾸는 대신, 새로운 데이터를 만들어냅니다. 순수 함수(Pure Function) ...