선언형 프로그래밍(Declarative Programming):
선언형 프로그래밍은"무엇(What)"을 표현하는 방식으로 프로그램을 작성합니다. 프로그래머는 명시적으로 어떻게 작업을 수행해야 하는지를 지정하지 않고, 대신에 원하는 결과물을 설명합니다. 이러한 접근 방식은 문제의 해결 방법보다는 문제 자체에 집중하게 해줍니다.
함수형 프로그래밍(Functional Programming)
- 함수형 프로그래밍은 함수를 일급 객체로 다루고, 함수 조합과 불변성을 강조하는 프로그래밍 패러다임입니다.
- 함수형 프로그램에서는 상태 변화를 피하고, 데이터를 변이시키지 않고 함수를 통해 데이터를 처리합니다.
- 고차 함수, 람다식, 재귀 함수, 모나드 등의 개념이 중요합니다.
명령형 프로그래밍(Imperative Programming):
명령형 프로그래밍은 "어떻게(How)" 작업을 수행해야 하는지를 단계적으로 명시하는 방식으로 프로그램을 작성합니다. 프로그래머는 프로그램의 상태를 변경하고, 데이터의 흐름과 제어 흐름을 명시적으로 제어합니다. 명령형 프로그래밍은 일반적으로 절차적 프로그래밍과 객체지향 프로그래밍으로 구분됩니다.
객체지향 프로그래밍(Object-Oriented Programming, OOP)
- 객체지향 프로그래밍은 현실 세계의 개체(Object)와 그 개체들 간의 상호 작용을 모델링하는 방식입니다.
- 프로그램을 객체로 나누고, 각 객체는 데이터(속성)와 메서드(동작)를 포함합니다.
- 객체 간의 상호 작용을 통해 프로그램이 동작하며, 캡슐화, 상속, 다형성과 같은 개념이 중요합니다.
절차적 프로그래밍(Procedural Programming)
- 절차적 프로그래밍은 프로그램을 일련의 절차나 단계로 나누고, 각 절차를 순차적으로 실행하는 방식입니다.
- 프로그램을 작성할 때 주로 함수나 서브루틴을 사용하여 작업을 모듈화하고, 각 함수는 데이터를 입력받아 처리하고 결과를 반환합니다.
- 데이터와 함수가 분리되어 있으며, 데이터를 조작하는 함수들이 중심이 됩니다.