- 이번 글에서는 프로그래밍 패러다임의 대표적인 두 축인 '명령형 프로그래밍 패러다임'과 '선언형 프로그래밍 패러다임'
을 비교해서 설명하겠습니다.
1) 프로그래밍 패러다임이란?
- 프로그래밍 패러다임이란 프로그래밍 언어를 사용해서 문제를 해결하거나 작업을 수행하는 방법을 의미합니다.
1-1) 명령형 프로그래밍
- 명령형 프로그래밍은 가장 오래된 프로그래밍 패러다임 중 하나로, 머신 아키텍쳐와 연관이 있습니다.
즉, 명령형 프로그래밍은 폰 노이만 아키텍쳐에 기반합니다.
명령형 프로그래밍의 핵심은 '명령'과 '프로그램 상태'입니다.
즉, 명령형 프로그래밍은 명령을 통해서 프로그램 상태를 변경시키는 방식으로 동작합니다.
명령형 프로그래밍은 여러 명령들로 구성되고, 모든 실행의 결과들은 저장됩니다.
장점
- 구현하기가 쉽습니다
- 루프(loop)나 변수들을 포함합니다.
단점
- 복잡한 문제를 해결하기 어렵습니다
- 덜 효율적이고 덜 생산적입니다
- 명령형 프로그래밍은 크게 3가지 카테고리로 나누어집니다. 그것은 절차적 프로그래밍, 객체 지향 프로그래밍,
병렬 프로세싱입니다.
(1) 절차적 프로그래밍
- 절차적 프로그래밍은 머신 모델과 관련해서 '프로시저'를 강조합니다. 프로시저란 특정 명령들의 집합을 의미합니다.
대표적인 절차적 프로그래밍 언어에는 C가 있습니다.
(2) 객체지향 프로그래밍
- 객체 지향 프로그래밍은 클래스들과 객체들의 집합이 서로 소통하는 구조로 짜여진 프로그래밍 방식을 의미합니다.
객체 지향 프로그래밍에서 가장 작은 단위는 객체이고, 모든 연산은 객체 단위에서 수행됩니다.
객체 지향에서는 프로시저보다는 '데이터'에 좀 더 초점이 맞춰집니다.
객체 지향은 데이터 안전성, 코드 재사용성, 코드 유지보수성이 뛰어나다는 장점이 있습니다.
(3) 병렬 프로세싱
- 병렬 프로세싱이란 여러 프로세서에 나누어 프로그램 명령을 수행하는 방식을 의미합니다.
병렬 프로세싱의 목적인 여러 프로세서에 명령을 나눠서 수행함으로써, 더 짧은 시간에 프로그램을 수행하는 것입니다.
이러한 접근 방식은 '재귀'적 접근과도 닮아 있습니다.
1-2) 선언형 프로그래밍
- 선언형 프로그래밍이란 연산에 대한 로직을 표현하되, 제어 흐름 없이 표현 하는 것을 의미합니다.
선언형 프로그래밍의 초점은 '어떻게' 해야 하느냐 보다는 '무엇'을 해야 하느냐입니다.
선언형 프로그래밍은 크게 논리형, 함수형, 데이터베이스로 나뉠 수 있습니다.
(1) 논리형 프로그래밍 패러다임
- 논리형 프로그래밍 패러다임은 연산의 추상적 모델입니다. 논리형 프로그래밍에서는 우리는 배경 지식을 갖고 있고,
기계에 전달해야 할 질문과 지식에 따라, 결과가 도출됩니다.
논리형 프로그래밍의 주요 초점은 배경 지식과 문제에 있습니다. 그리고 프로그램의 실행은 수학적 명령의 증명과
유사합니다. 대표적인 논리형 프로그래밍 언어로는 Prolog가 있습니다.
(2) 함수형 프로그래밍 패러다임
- 함수형 프로그래밍 패러다임은 수학에 기초하고, 프로그래밍 언어에 독립적입니다.
함수형 프로그래밍의 핵심은 일련의 수학적 함수를 실행하는 것입니다.
즉, 여기서 추상화의 핵심은 '함수'이고, 함수는 특정한 연산을 수행하는 것을 목적으로 합니다.
(3) 데이터베이스 프로그래밍 접근법
- 이 프로그래밍 접근법은 데이터와 그것의 이동에 기반합니다. 프로그래밍 명령은 데이터에 의해 정의됩니다.
데이터베이스 프로그램은 비즈니스 정보 시스템의 핵심이고, 파일 생성, 데이터 CRUD 등을 제공합니다.
데이터베이스 프로그램을 위해서 여러 프로그래밍 언어가 개발되었고,
그 중 대표적인 것이 SQL입니다.
참고
https://www.geeksforgeeks.org/introduction-of-programming-paradigms/
'아티클' 카테고리의 다른 글
시간을 관리하는 방법 (0) | 2022.09.01 |
---|---|
효과가 검증된 학습법 (0) | 2022.08.30 |
의도적 수련 (0) | 2022.08.12 |
데드락 (0) | 2022.08.01 |
Intel CPU vs AMD Ryzen CPU (0) | 2022.07.27 |