Object-Oriented Programming(OOP) and Functional Programming(FP)

Object-Oriented Programming(OOP)

객체 지향적 프로그래밍은 프로그래밍 패러다임 중 하나로써 프로그래밍 하고자 하는 무언가(때때로 실세계의 사물)를 표현하기위해서 객체를 사용하는 프로그래밍 방법이다. 이 객체들은 자료구조가 될 수 있다. 그 객체는 속성으로서 그들에 관한 데이터를 가지고 있다. 이 객체의 속성은 메서드나 함수를 통해서 조작이 가능한데, 그 메서드 또한 객체로부터 얻어진다. 객체는 상태(속성)와 행동(기능, 메서드)을 가진다.

Functional Programming(FP)

함수적 프로그래밍은 상태의 변경과 가변 데이터를 피하기위한 시도에서 시작된 프로그래밍의 한 형식이다. 함수적 프로그래밍에서 해당 함수에 대한 출력값은 정확히 같은 입력값에 대하여 항상 같아야 한다.

이것은 함수적 프로그래밍에서 함수의 출력이 순수하게 함수의 인자값에 의존하기 때문이다. 갑자기 뒤에서 마술같은 변경이 일어나서는 안된다는 의미이다. 이것은 코드에 있어서 side effects를 제거해준다.

References

  • https://medium.com/@shaistha24/functional-programming-vs-object-oriented-programming-oop-which-is-better-82172e53a526

  • 객체지향의 사실과 오해(조영호, 위키북스)