<aside> <img src="/icons/list-indent_lightgray.svg" alt="/icons/list-indent_lightgray.svg" width="40px" />
Table Of Contents
</aside>
프로그래밍 패러다임 (programming paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론이다.
예를 들어 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호 작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그래밍은 상태 값을 지니지 않는 함수 값들의 연속으로 생각할 수 있게 해준다.
언어별 지원 패러다임
프로그래밍 패러다임의 분류
프로그래밍 패러다임
├── 선언형
│ └── 함수형
└── 명령형
├── 객체지향
└── 절차지향
선언형 프로그래밍(declarative programming)
선언형 프로그래밍이란 ‘무엇을’ 풀어내는가에 집중하는 패러다임이며, “프로그램은 함수로 이루어진 것이다.”라는 명제가 담겨 있는 패러다임
**함수형 프로그래밍(functional programming)**은 선언형 패러다임의 일종이다.
const ret = [1, 2, 3, 4, 5, 11, 12];
ret.reduce((max, num) => num > max ? num : max, 0);
console.log(ret); // 12
함수형 프로그래밍은 위 코드와 같은 작은 ‘순수 함수’들을 블록처럼 쌓아 로직을 구현하고 ‘고차 함수’를 통해 재사용성을 높인 프로그래밍 패러다임이다.
자바스크립트는 단순하고 유연한 언어이며, 함수가 일급 객체이기 때문에 객체지향 프로그래밍보다는 함수형 프로그래밍 방식이 선호된다.