객체지향 프로그래밍은 동작하는 부분을 캡슐화해서 이해할 수 있게 하고, 함수형 프로그래밍은 동작하는 부분을 최소화해서 코드 이해를 돕는다.
객체지향 프로그래밍 (OOP)
- 캡슐화: 재사용 될만한 상태나 메서드들을 저장해두고, 사용할 때마다 불러올 수 있게한다. 이렇게 작성한 코드들은 은닉성을 띈다.
- 객체:
class
로 캡슐화된 코드들을 필요할 때마다 복사해서 하나의 데이터(object
)로 사용한다.
함수형 프로그래밍(Functional)
- 모듈화: 함수형 프로그래밍의 핵심은 다른 외부요인에 영향을 받지 않고 자신이 맡은 바를 실행한다는 것이다. === 순수함수: same input => same output
- 목적성: 알고리즘을 명시하는 것보다 목표(함수)를 명시하는데 중점을 둔다. (선언형)
- 객체: 함수도 하나의 객체로서 작용하고, 적재적소에 해당 함수를 적절한
input
과 함께 쓰는 것이 중요하다.
객체지향 프로그래밍과 함수형 프로그래밍은 반대되는 개념이 아니라 각각 다른 프로그래 방식이라고 볼 수 있다. 공통점은 반복을 줄이고 효율적인 작업
을 위해서 만들어졌다.
오오 꾸준갑 갓라이언~~~