2025-08-09 10:15
Tags:소프트웨어 공학
프로그래밍 패러다임
범주
- 가장 큰 틀에서 명령형 프로그래밍과 선언형 프로그래밍 으로 나눠지고
- 명령형 아래에 절차지향 프로그래밍과 객체지향 프로그래밍
- 선언형 아래에 함수형 프로그래밍이 있는 식이다.
📜 명령형 프로그래밍 (Imperative Programming)
“어떻게(How)” 할 것인지에 집중하는 방식. 목표를 달성하기 위한 과정과 절차를 하나하나 상세하게 명령하는 스타일.
- 절차지향 프로그래밍: 작업을 함수] 단위로 묶어 순서대로 처리. (예: C, Pascal)
- 객체지향 프로그래밍: 데이터와 그 데이터를 처리하는 함수를 객체 라는 하나의 단위로 묶어, 객체들 간의 상호작용으로 문제를 해결. (예: Java, C++, Python)
📢 선언형 프로그래밍 (Declarative Programming)
“무엇을(What)” 할 것인지에 집중하는 방식. ‘어떻게’ 할지는 컴퓨터에 맡기고, 원하는 ‘결과’가 무엇인지만을 선언하는 스타일.
- 함수형 프로그래밍: 모든 것을 수학적 함수의 조합으로 보고, 상태 변화 없이 계산으로 문제를 해결. (예: Haskell, Lisp, JavaScript의 일부 기능)
- 논리형 프로그래밍: 논리적인 규칙들을 정의하고, 그 규칙에 따라 컴퓨터가 답을 찾게. (예: Prolog)
- 데이터베이스 쿼리 언어: 원하는 데이터가 무엇인지 조건을 명시. (예: SQL)
프로그래밍 패러다임
├── 📜 명령형 (Imperative) - "어떻게"
│ ├── 절차 지향 (Procedural)
│ └── 객체 지향 (Object-Oriented)
│
└── 📢 선언형 (Declarative) - "무엇을"
├── 함수형 (Functional)
├── 논리형 (Logic)
└── 데이터베이스 쿼리 (e.g., SQL)