OOP는 너무 주관적이라...

적어도 서로 알고 있다고, 이해하고 있다고 여기는 부분부터 시작해서 파생해야 된다고 본다.


진정한 OOP를 이야기 한다면서 저런 내용들을 뺀다면, 솔직히 같이 이야기하고싶은 사람의 스타일은 아님.

뭔가 자기만 알고 있는 진실, 핵심이라고 이야기 하는건 그냥 본인만 주장하는 이야기일 수 있거든.

때문에 OOP를 이야기 한다고 치면, 그나마 공통점이 있는 부분부터 시작해서 서로 동의하지 않는 것으로 뻗어나가야함.


여기서 누구는 OOP의 핵심은 오브젝트다, 아니다 메시지 패싱이다 아니다 뭐다 할 수 있는거지.

그냥 이런 이야기 없이 바로 OOP의 핵심은 xx다 라고 하면, 으아...

때문에 OOP의 핵심인지는 모르겠다만, 특징인 캡상추다부터 시작하는 것이다.


아무튼 OOP를 이야기 하고 싶으면 캡상추다부터 이야기하라고 권유하는 바이다.


캡슐화가 OOP의 핵심인가? 난 이게 핵심같다.

데이터를 숨기고 동작을 외부로 빼는 하나의 개체로써 기본 단위이기 때문이지.


상속이 OOP의 핵심인가? 난 모르겠다만, 아주 많은 곳에서 잘 쓰이고 있다.

C++의 stl, 자바의 빌트인 객체들 등... 상속은 아주 많은 곳에 잘 쓰이고 있다.

그런데, 온갖 곳에 상속이 다 쓰이니까 좀 덜 쓰자는 추세가 이어온 것이지.


다형성은 OOP의 핵심인가? 캡슐화 다음으로 그렇다고 생각한다.

같은 인터페이스를 가진 개체가 서로 다른 구현을 가짐으로써, 동일한 코드에서 다른 효과를 준다.


추상화는 방향성이라고 본다. 핵심인가? 애매하다...