OOP
- OOP 는 Object Oriented Programming의 약자로 객체지향 프로그래밍을 뜻한다.
- OOP는 객체지향 프로그래밍이란 프로그램을 단순히 데이터와 처리방법으로 나눈 것이 아니라, 객체(object)라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다.
- 객체란 하나의 역할을 수행하는 메소드와 변수의 묶음으로 봐야한다.
장점
- OOP는 코드의 재사용률을 높이고 코드를 간결하게 함으로써 유지보수가 쉽다는 장점이 있다. (DRY pinciple)
- 데이터를 안전하게 보존시킬 수 있다. (encapsolution(캡슐화)과 abstraction(추출화) 등)
FP
- FP는 Functional Programming의 약자로 함수형 프그래밍을 뜻한다.
- 과거 명령형 프로그래밍을 기반으로 개발했던 개발자들은 개발하는 소프트웨어의 크기가 커짐에 따라, 엉켜있는 스파게티 코드를 유지보수하는 것이 매우 힘들다는 것을 깨닫게 되었다.
- 따라서 이를 해결하기 위해 함수형 프로그래밍 이라는 프로그래밍 패러다임에 관심을 갖게 되었다.
- 함수형 프로그래밍은 거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법으로 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해준다.
장점
- 높은 수준의 추상화를 제공한다.
- 함수 단위의 코드 재사용성이 증가한다.
- 디버깅이 쉽다.
- 불변성을 지향하기 때문에 프로그램의 동작을 예측하기 쉽다.