1. 프로그래밍 방법론 분류 : 형태(패러다임)적 분류
※ 프로그래밍 (개발) 패러다임 : 프로그래밍 (개발) 방법론
- 프로그램을 구축해 나아갈 때, 쓰이는 고급 프로그래밍 기법의 분류
ㅇ 명령형 프로그래밍 (Imperative Programming) 또는 절차적 프로그래밍 (Procedural Programming)
- 순차적 명령 수행을 기본으로 하는, 비교적 단순한 스타일의 코딩 방식
. 절차식 프로그래밍 또는 프로시저 지향 프로그래밍 이라고도 함
- 폰노이만 구조에 기반하여 변수(기억장소),배정문,반복문을 그 특징으로 함
- 例) FORTRAN, Pascal, C 언어 등
ㅇ 객체지향 프로그래밍 (OOP)
- 모든 것을 객체로 표현하고 객체를 조립해가며 프로그램을 완성하게 됨
. 명령형 프로그래밍 언어의 확장으로,
. 프로그램이 절차(프로시저) 및 데이터를 함께 묶은 객체들의 집합으로 구성
- 한편, 프로시저 지향 프로그래밍 언어 / 절차식 프로그래밍 언어는,
. 함수(또는 프로시저)가 중심이되고, 데이터는 보조 기능을 함
- 例) Java, Ruby, C++ 언어 등
ㅇ 선언형 프로그래밍 (Declarative Programming)
- 주어진 문제에 정형화된 범용 문제 해결 알고리즘을 적용하는 방식
. 원하는 데이터가 무엇인지 만 제시하고,
. `어떻게(=로직)/어떤 절차로` 얻을 것인지가 중요하지 않음
. 즉, 내부 코드를 어떻게 구현했는지, 데이터 흐름을 어떻게 제어하는지 등을 밝히지 않음
- 例) SQL 등
ㅇ 함수형 프로그래밍 (Functional Programming)
- 함수들의 집합/조합으로써 프로그램을 구성
. 프로그램 제어를 함수로써 추상화시킴
- 큰 틀에서, 선언적/적응적 프로그래밍(Declarative/Applicative Programming) 기법에 속함
- 例) LISP, Scheme, Haskell 등
ㅇ 논리형 프로그래밍 (Logical Programming)
- 기호 논리학에 기반을 두고,
- 데이터 간의 관계와 논리로써, 프로그래밍을 함