<aside> <img src="/icons/list-indent_lightgray.svg" alt="/icons/list-indent_lightgray.svg" width="40px" />

Table Of Contents

</aside>

프로그래밍 패러다임

프로그래밍 패러다임 (programming paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론이다.

예를 들어 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호 작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그래밍은 상태 값을 지니지 않는 함수 값들의 연속으로 생각할 수 있게 해준다.

언어별 지원 패러다임

프로그래밍 패러다임의 분류

프로그래밍 패러다임
├── 선언형
│   └── 함수형
└── 명령형
    ├── 객체지향
    └── 절차지향

1. 선언형과 함수형 프로그래밍

선언형 프로그래밍(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

함수형 프로그래밍은 위 코드와 같은 작은 ‘순수 함수’들을 블록처럼 쌓아 로직을 구현하고 ‘고차 함수’를 통해 재사용성을 높인 프로그래밍 패러다임이다.

자바스크립트는 단순하고 유연한 언어이며, 함수가 일급 객체이기 때문에 객체지향 프로그래밍보다는 함수형 프로그래밍 방식이 선호된다.