-
패러다임 :: FP vs OOP vs PPCode-Tip/Theory of Programming 2020. 7. 1. 10:27
프로그램 패러다임( Paradigm )이라는 개념이 있다.
패러다임은 형태나 규칙을 뜻하는 용어로 프로그램 패러다임은 프로그램 작성형식 ( Style of Programming )을 말한다.
코드 스타일과는 분류단위가 Syntax 와 module 이라는 점에서 차이가 있는 개념이다.
프로그램 패러다임은 크게 3가지로 분류된다.
Functional Programming ::
- 수학적 공식에 기반한 작성법이다. 대두되는 특징은 독립성이다.
상태와 같은 지속적인 데이터를 다루기 보단 연산이라는 개념의 I/O 를 작성하는 방식이다.
(ex : 계산기 프로그램 :: 우선순위 처리 / 사칙연산 계산)
Object Oriented Programming ::
- 사물표현 기반의 작성법이다. 프로그래밍이 자연계의 전산화를 위한 기술이기에 이해가 쉽고
군집과 사물이라는 개념에 대한 유지보수가 편리하다.
(ex : 엑셀 프로그램 :: 엑셀 생성 - [ 시트관리 / 셀 관리 / 권한관리 / ,... / 스트림관리 ]- 엑셀삭제 )
Procedural Programming ::
- 절차구조 기반의 작성법이다. 단계와 절차가 분명한 대상에 대한 작성에 용이하다.
단계에 따라 상태를 유지하며 수행하도록 구연된다.
(ex : 자판기 프로그램 :: 동전인식 > 메뉴선택대기 > 선택메뉴 배출 or 동전반환 )
FP vs OOP vs PP ::
- 실제 작성체감은 다르지만 주요구분은 Lifecycle 과 State Management 에 따라 분류된다.
Routine 에 따라 동작하는 것이 FP/PP, Instances 에 따라 동작하는 것이 OOP.
현재나 과거의 상태정보를 유지한다면 OOP/PP, 개별독립연산으로 기획됐다면 FP
대표적 언어
- FP = Script
- Oop = Java
- PP = C
사실상 패러다임은 프로그램 부분이나 분류수준에 따라 동시에 사용된다.
대표적 언어는 언어별 특징에 따라 해당 패러다임이 주로 사용되는 언어들이다.
자바는 유지보수와 이식성이 뛰어나기에, 유지와 개선성능을 목적으로 한 OOP 가 자주 도입되고
Script 언어들은 원래 Batch 언어로 불렸던것처럼 순차적인 개별연산작성에 많이 사용된다.
JS 의 경우 ES5~6에서 도입된 module 개념에 의해 OOP에 친숙해지며 Framework 생태게가 활성화 되었지만
기본적으로 스크립트언어들은 FP 성향이 강하다고 생각한다.
마지막으로 C 언어는 대표적인 PP 언어이다. 구조체기반의 루틴으로 동작하는 구조에 적합하다.