기존의 구조적 프로그래밍에서 가장 중요한 것은 "함수"
였다. 함수는 코드를 논리적인 단위로 구분하고 분할해서 정복하자는 것이다. 즉 D&C 하자는 것인데, D&C는 Divide and Conquer의 약자이고 분할 정복
이라는 뜻이다. 따라서 함수의 목적의 1순위는 중복 제거, 2순위는 논리의 분할이 된다.
이후에 프로그래밍의 발전사에 객체 지향
이 등장했는데 객체 지향은 현실세계를 반영한다. 객체지향이 현실을 반영하는 방식은 클래스와 객체이다. 객체(object)를 현실세계의 언어로 말하면 사물이 된다.
사물을 하나하나 이해하기 보다는 분류(class)를 해서 이해하는 것이 인간의 인지법이다. 분류 안의 객체들은 속성(property)
과 행위(method)
를 가지고 있다.
객체 지향 이전에는 속성과 메서드를 객체라는 단위로 묶지 않고 속성(필드) 따로, 메서드(함수) 따로 분리된 형태로 프로그램을 작성했는데, 객체 지향에서는 인간이 실제로 사물을 인지 및 사고하는 방식대로 객체 단위의 프로그래밍이 가능하다.
참고