프로그래밍 패러다임(Programming paradigm) = 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론.
선언형
하위: 함수형
명령형
하위: 객체지향, 절차지향

선언형과 함수형 프로그래밍
선언형 프로그래밍(Declarative Programming)
- “무엇을” 풀어내는가에 집중하는 패러다임
- “프로그램은 함수로 이루어진 것이다” 라는 명제가 명제가 담겨있는 패러다임
- 함수형 패러다임(Funtional Programming)은 선언형 패러다임의 일종
함수형 패러다임(Funtional Programming)
작은 “순수 함수”들을 블록처럼 쌓아 로직을 구현하고 “고차 함수”를 통해 재사용성을 높인 프로그래밍 패러다임.
순수 함수
출력이 입력에만 의존하는 것. 만약 다른 전역 변수가 출력에 영향을 주면 순수함수가 아님
고차함수
함수가 함수를 값처럼 메개변수로 받아 로직을 생성할수 있는것
일급 객체
고차함수를 쓰기위해서는 해당 언어가 일급객체라는 특징을 가져야 함
- 변수나 메서드에 함수를 할당 가능
- 함수 안에 함수를 매개변수로 담을 수 있슴
- 함수가 함수를 반환할수 있슴
객체지향 프로그래밍(OOP, Object-Oriented Programming)
객체들의 집합으로 프로그램의 상호 작용을 표현하며 데이터를 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식