OOP는 Object Oriented Programming의 약자로 객체지향 프로그래밍을 뜻한다.
OOP는 객체지향 프로그래밍이란 프로그램을 단순히 데이터와 처리방법으로 나눈 것이 아니라,
객체(object)라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다.
객체란 하나의 역할을 수행하는 메소드와 변수의 묶음으로 봐야한다.
FP는 Functional Programming의 약자로 함수형 프그래밍을 뜻한다.
과거 명령형 프로그래밍을 기반으로 개발했던 개발자들은 개발하는 소프트웨어의 크기가 커짐에 따라,
엉켜있는 스파게티 코드를 유지보수하는 것이 매우 힘들다는 것을 깨닫게 되었다.
따라서 이를 해결하기 위해 함수형 프로그래밍 이라는 프로그래밍 패러다임에 관심을 갖게 되었다.
함수형 프로그래밍은 거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법으로
작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해준다.