Taking baby-developer steps
[객체지향의 사실과 오해] 3. 타입과 추상화 - 2. 개념, 인스턴스 본문
세상에는 수 많은 객체들이 있다. 우리는 이 모든 것을 각자 고유한 개별적 단위로 매번 취급하기에는 인지능력이 턱 없이 부족하다. 이때 공통적인 특성을 기준으로 객체를 여러 그룹으로 묶어 동시에 다뤄야하는 가짓수를 줄임으로써 상황을 단순화 할 수 있다. 예를 들어 "사과, 강아지, 해달, 귤, 토끼, 판다, 딸기"가 있을 때 이들을 "과일, 동물"로 묶어서 단순화 할 수 있다.
개념(Concept), 인스턴스(Instance)
객체들을 공통점으로 묶기위한 관념을 말한다. 개념을 이용하면 객체를 여러 그룹으로 분류(Classification)할 수 있다. 사과, 귤, 딸기는 "과일"이라는 개념으로 분류할 수 있고, 강아지,해달,판다 는 "동물"이라는 개념으로 분류할 수 있다. 개념은 객체를 분류할 수 있는 일종의 체라고 할 수 있다.
분류를 통해 각 객체는 특정한 개념을 표현하는 그룹의 일원으로 포함될 수 있다는 것을 느꼈을 것이다. 객체에 어떤 개념을 적용해서 그룹의 일원이 될 수 있다면, 그 객체를 해당 개념의 인스턴스(instance)라고 한다. 딸기, 귤, 사과는 각각 과일의 인스턴스라고 할 수 있다.
객체란 특정한 개념을 적용할 수 있는 구체적인 사물이다. 개념이 객체에 적용됐을 때 객체를 개념의 인스턴스라고 한다.
개념은 객체를 분류할 수 있는 틀을 제공한다. 복잡한 객체들이 단 몇 가지 개념의 인스턴스가 된다.
개념의 3가지 관점
어떤 객체에 어떤 개념이 적용됐다고 할 때는 그 개념이 시사하는 의미를 만족시킴으로써, 다른 객체와 함께 해당 개념의 일원이 됐다는 것을 의미한다.객체의 분류 장치로서 개념은 다음 3가지 관점을 가진다.
- 심볼(symbol) : 개념을 가리키는 간략한 이름이나 명칭
- 내연(intension) : 개념의 완전한 정의. 내연의 의미를 이용해 객체가 개념에 속하는지 여부를 확인 함
- 외연(extension) : 개념에 속하는 모든 객체의 집합(set)
심볼 : 개념을 가리키는 이름이다. 위의 예시에서 "동물", "과일"이 이에 해당한다.
내연 : 개념의 의미를 나타낸다. 개념을 객체에게 적용할 수 있는지 여부를 판단하기 위한 조건이다. 해달은 과일의 내연에 해당하지 못하므로 과일의 인스턴스가 될 수 없다.
외연 : 개념에 속하는 객체들, 즉 인스턴스들이 모여 이뤄진 집합이다. "강아지, 해달, 판다"이다.
그러나, 개념이 위 3가지 요소로 구성돼 있다는 것보다, 개념을 이용해 객체들을 "분류"할 수 있다는 것이 훨씬 더 중요하다.
'CS 지식 > 객체지향' 카테고리의 다른 글
[객체지향의 사실과 오해] 3. 타입과 추상화 - 4 타입과 객체 (0) | 2023.11.16 |
---|---|
[객체지향의 사실과 오해] 3. 타입과 추상화 - 3. 분류와 추상화 (0) | 2023.11.15 |
[객체지향의 사실과 오해] 3. 타입과 추상화 - 1.추상화가 뭘까 (1) | 2023.11.12 |
[객체지향의 사실과 오해] 2. 이상한 나라의 객체 - 5 행동이 상태를 결정한다(RDD, 책임-주도 설계) (0) | 2023.11.08 |
[객체지향의 사실과 오해] 2. 이상한 나라의 객체 - 4 기계로서의 객체 (0) | 2023.11.06 |