Taking baby-developer steps

[객체지향의 사실과 오해] 3. 타입과 추상화 - 2. 개념, 인스턴스 본문

CS 지식/객체지향

[객체지향의 사실과 오해] 3. 타입과 추상화 - 2. 개념, 인스턴스

Surin Lee 2023. 11. 14. 23:15

 

 세상에는 수 많은 객체들이 있다. 우리는 이 모든 것을 각자 고유한 개별적 단위로 매번 취급하기에는 인지능력이 턱 없이 부족하다. 이때 공통적인 특성을 기준으로 객체를 여러 그룹으로 묶어 동시에 다뤄야하는 가짓수를 줄임으로써 상황을 단순화 할 수 있다. 예를 들어 "사과, 강아지, 해달, 귤, 토끼, 판다, 딸기"가 있을 때 이들을 "과일, 동물"로 묶어서 단순화 할 수 있다.

 

개념(Concept), 인스턴스(Instance)

 객체들을 공통점으로 묶기위한 관념을 말한다. 개념을 이용하면 객체를 여러 그룹으로 분류(Classification)할 수 있다. 사과, 귤, 딸기는 "과일"이라는 개념으로 분류할 수 있고, 강아지,해달,판다 는 "동물"이라는 개념으로 분류할 수 있다. 개념은 객체를 분류할 수 있는 일종의 체라고 할 수 있다.

 분류를 통해 각 객체는 특정한 개념을 표현하는 그룹의 일원으로 포함될 수 있다는 것을 느꼈을 것이다. 객체에 어떤 개념을 적용해서 그룹의 일원이 될 수 있다면, 그 객체를 해당 개념의 인스턴스(instance)라고 한다. 딸기, 귤, 사과는 각각 과일의 인스턴스라고 할 수 있다.

 객체란 특정한 개념을 적용할 수 있는 구체적인 사물이다. 개념이 객체에 적용됐을 때 객체를 개념의 인스턴스라고 한다. 

 개념은 객체를 분류할 수 있는 틀을 제공한다. 복잡한 객체들이 단 몇 가지 개념의 인스턴스가 된다.

 

개념의 3가지 관점

 어떤 객체에 어떤 개념이 적용됐다고 할 때는 그 개념이 시사하는 의미를 만족시킴으로써, 다른 객체와 함께 해당 개념의 일원이 됐다는 것을 의미한다.객체의 분류 장치로서 개념은 다음 3가지 관점을 가진다.

  • 심볼(symbol) : 개념을 가리키는 간략한 이름이나 명칭
  • 내연(intension) : 개념의 완전한 정의. 내연의 의미를 이용해 객체가 개념에 속하는지 여부를 확인 함
  • 외연(extension) : 개념에 속하는 모든 객체의 집합(set)

심볼 : 개념을 가리키는 이름이다. 위의 예시에서 "동물", "과일"이 이에 해당한다.

내연 : 개념의 의미를 나타낸다. 개념을 객체에게 적용할 수 있는지 여부를 판단하기 위한 조건이다. 해달은 과일의 내연에 해당하지 못하므로 과일의 인스턴스가 될 수 없다.

외연 : 개념에 속하는 객체들, 즉 인스턴스들이 모여 이뤄진 집합이다. "강아지, 해달, 판다"이다.

 

그러나, 개념이 위 3가지 요소로 구성돼 있다는 것보다, 개념을 이용해 객체들을 "분류"할 수 있다는 것이 훨씬 더 중요하다.

Comments