- OOP: Object Oriented Programming 의 약자로서 class와 object에 기반한 프로그래밍 디자인 패턴이다. 관련된 데이터끼리 묶어서 class를 형성하고 그 안에서 object instance를 만듬으로써 프로그램을 디자인한다
코드의 재사용률을 높이고 코드를 간결하게 함으로써 유지보수가 쉽다.(DRY principle)
데이터를 안전하게 보존할 수 있다.(encapsulation와 abstraction등)
- FP: Functional Programming: side effect가 없는 순수 함수의 구현으로 프로그램을 디자인 한다. 여러개의 작은 function을 엮어 하나의 큰 함수를 만든다.
함수 단위의 코드 재사용이 증가한다.
디버깅이 쉽다.
불변성을 지향하기 때문에 프로그램의 동작을 예측하기 쉬움
- Clojure, Swift, Haskell, Scala