아이디어의 카테고리 : 엔티티, 종, 속

2024. 1. 18. 23:10b정리2/프로그래밍의 이해

728x90
반응형
  • 값, 오브젝트, 타입, 프로시저, 컨셉에 대한 개념이해
  • 정칙성 이해
    - 정식성을 포르시저에 적용할 경우 프로시저는 동일한 인자에 동일한 겨로가를 반환한다는 뜻을 가짐
    - 타입에 적용할 경우 타입이 동등연산자와 동등성 보존 카피 구조 및 할당을 갖는 것을 의미
    - 정칙성을 통해 등식추론(동등한 값끼리 대체)을 변환에 적용하고 프로그램을 최적화 가능
추상 엔티티 :
영원 불변하는 개체

구상 엔티티 :
시간과 공간 속에 나타났다가 사라지는 개체

어트리뷰트(구상 엔티티와 추상 엔티티 사이의 관련성) :
구상 엔티티의 일부 프로퍼티, 크기, 품질 설명

 

현실에 대한 자각의 원초적인 개념인 아이덴티티는 시간에 따라 변화하는 사물의 동일성을 결정합니다. 구상 엔티티의 어트리뷰트는 아이덴티티에 영향을 주지 않고 변경될 수 있습니다. 구상 엔티티의 스냅샵은 특정 시점에서 해당 엔티티가 가진 모든 어트리뷰트입니다. 구상 엔티티는 물리적 엔티티일 뿐만 아니라, 법률, 금융, 정치적 엔티팅기도 합니다. 청색과 13은 추상 엔티티의 예입니다. 소크라테스와 미국은 구상 엔티티의 예입니다. 소크라테스의 눈 색깔과 미국의 번호는 어트리뷰트의 예입니다.

 

  1. 추상 엔티티 (Abstract Entity):
    • 추상 엔티티는 실제로 존재하는 것을 나타내는 것이 아니라 개념적인 것을 나타냅니다. 실세계의 물리적인 객체와 직접적으로 매핑되지 않을 수 있습니다.
    • 데이터베이스에서 테이블이나 엔터티로 표현되지만, 특별한 경우에는 실제 데이터를 저장하지 않을 수 있습니다.
    • 주로 공통 속성이나 특징을 가진 하위 엔티티들을 그룹화하기 위해 사용됩니다.
  2. 구상 엔티티 (Concrete Entity):
    • 구상 엔티티는 실제로 존재하는 것을 나타냅니다. 데이터베이스에서 특정한 테이블로 표현되고, 이 테이블에는 실제 데이터가 저장됩니다.
    • 구상 엔티티는 실세계의 객체 또는 사건을 표현하며, 데이터베이스의 특정 레코드에 해당합니다.
    • 구상 엔티티는 직접적으로 데이터베이스에서 조회하거나 조작할 수 있는 실제 데이터를 포함합니다.

간단한 예시로 설명하면:

  • 추상 엔티티: "동물"이라는 추상 엔티티는 모든 동물에 대한 공통 특징을 정의할 수 있습니다.
  • 구상 엔티티: "강아지"라는 구상 엔티티는 실제로 존재하는 강아지에 대한 데이터를 저장하고, "고양이"라는 구상 엔티티는 실제 고양이에 대한 데이터를 저장합니다.

 

추상 종(abstract species)은 본질적으로 동등한 추상 엔티티의 공통 프로퍼티를 의미합니다. 추상 종의 예로는 자연수와 색상이 있습니다. 구상 종(concreate species)은 본질적으로 동등한 구상 엔티티의 어트리뷰트 모음을 의미합니다. 구상 종의 예로는 사람, 미국이 있습니다.

미국, 사람의 일부 관점에서의 유사성

  1. 국적 어트리뷰트:
    • "사람" 엔터티와 "미국" 엔터티는 모두 국적에 대한 어트리뷰트를 가집니다. 예를 들어, 어떤 사람은 미국 국적을 가질 수 있습니다.
  2. 거주지 어트리뷰트:
    • "사람"은 거주지에 대한 어트리뷰트를 가지며, "미국" 엔터티는 국가 자체가 자체적인 특정 지역에 위치합니다.
  3. 법적 연관성:
    • "사람"이 미국 시민권을 갖는다면 법적으로 두 엔터티 간에 일정한 연관성이 있을 수 있습니다.
  4. 소속 어트리뷰트:
    • "사람"이 미국 시민이라면 미국에 소속되어 있는 것으로 간주할 수 있습니다.

 

추상 종 (Abstract Class):

  • 추상 종은 객체지향 프로그래밍에서 사용되는 개념으로, 다른 클래스들의 공통된 특징을 추상화하여 정의한 클래스입니다.
  • 추상 종은 직접 객체를 생성할 수 없으며, 하위 클래스들이 이 추상 종을 상속받아 구체적인 동작을 구현하도록 유도합니다.
  • 추상 종은 하나 이상의 추상 메서드를 포함할 수 있으며, 추상 메서드는 선언만 있고 실제 구현은 하위 클래스에서 이루어집니다.
  • Java에서는 abstract 키워드를 사용하여 추상 종을 정의합니다.
abstract class Shape {
    // 추상 메서드
    abstract void draw();
}

class Circle extends Shape {
    // 추상 메서드 구현
    void draw() {
        // 원을 그리는 구체적인 구현
    }
}

 

추상 속은 일부 유사점을 가진 서로 다른 추상 종을 의미합니다, 추상 속의 예로는 수와 이진 연산자를 들 수 있습니다. 구상 속은 일부 유사점을 가진 서로 다른 구상 종을 의미합니다. 구상 속의 예로는 포유류와 양족동물을 들 수 있습니다.

 

포유류와 양족동물의 차이점:

  1. 피부와 숨쉬는 방법:
    • 포유류: 피부로 숨쉬지 않고, 폐로 공기를 흡입하여 호흡합니다.
    • 양족동물: 피부를 통해 일부 산소를 흡수하며, 주로 브론키아를 통해 공기를 흡입하여 호흡합니다.
  2. 번식과 생애 주기:
    • 포유류: 새끼를 몸 안에서 태어나고, 새끼에게 젖을 먹여 유모동물로 키웁니다.
    • 양족동물: 산란 후에서 나온 어린 개체가 물에서 성장하고, 성체가 되기까지 어린 단계를 거칩니다.
  3. 피부의 특징:
    • 포유류: 털이나 털의 변형 형태로 피부를 덮고 있습니다.
    • 양족동물: 피부는 주로 점액질로 덮여 있습니다.
  4. 진화적 기원과 생태적 역할:
    • 포유류: 대부분은 육상에서 진화하였으며, 육상과 해양 등 다양한 환경에서 생태적 역할을 수행합니다.
    • 양족동물: 물에서 번식하고 어린 개체가 물에서 성장한 후 육지로 나와 생활합니다.
  5. 다리와 이동 방식:
    • 포유류: 네 발로 이루어진 다리를 가지며, 걷거나 달리기에 적합한 다양한 형태의 다리를 가지고 있습니다.
    • 양족동물: 두 발로 이루어진 다리를 가지며, 주로 뛰어다니기에 적합한 형태의 다리를 갖고 있습니다.

포유류와 양족동물의 유사점:

  1. 척추동물(Vertebrates):
    • 포유류와 양족동물은 모두 척추동물에 속하며, 척추뼈를 갖고 있습니다.
  2. 높은 생체 기능:
    • 두 그룹 모두 고도로 발달한 중추신경계를 갖고 있어 학습과 기억, 복잡한 행동을 조절하는 데 능숙합니다.
  3. 살아가는 환경의 변화에 적응:
    • 포유류와 양족동물은 각자의 방식으로 살아가는 환경의 변화에 적응하여 다양한 서식지에서 발견됩니다.
  4. 내부 기관의 유사성:
    • 양족동물과 포유류는 비슷한 기관을 공유합니다. 심장, 폐, 간, 비장 등의 내부 기관이 유사하게 발달되어 있습니다.
  5. 생식:
    • 두 그룹 모두 새끼를 낳아서 육상에서 돌보는 특징이 있습니다. 하지만 양족동물은 산란 후에서 나온 어린 개체가 물에서 성장한 후 육지로 나오는 중간 단계의 생애 주기를 갖습니다.
  6. 수족의 발달:
    • 포유류와 양족동물은 각각 자신에게 적합한 형태의 다리를 갖고 있습니다. 포유류는 다양한 형태의 다리를 통해 이동하고, 양족동물은 주로 뛰어다니기에 적합한 형태의 다리를 갖고 있습니다.
  7. 생태적 역할:
    • 양족동물과 포유류는 각각 서로 다른 생태적 역할을 수행하며, 생태계의 균형을 유지하는 데 기여합니다.

 

 

추상 속 (Abstract Property 또는 Abstract Field):

  • 추상 속은 특정 클래스나 객체에서 구체적인 값을 가지지 않고, 하위 클래스에서 구현되어야 하는 속성을 나타냅니다.
  • 추상 클래스 내에서 추상 속은 선언만 있고 초기화가 이루어지지 않습니다. 이 추상 속을 가지는 클래스를 상속받는 하위 클래스에서 이 속성에 대한 구체적인 값을 제공해야 합니다.
  • 언어에 따라 추상 속을 지원하는 문법이 다를 수 있습니다.
abstract class Animal {
    // 추상 속
    abstract String sound();
}

class Dog extends Animal {
    // 추상 속 구현
    String sound() {
        return "Bark";
    }
}
  • 범위 : 엔티티 < 종 < 속 / 고양이 < 동물 < 생물
  • 추상 종 : 추상 엔티티 공동된 프로퍼티 /  고양이, 개는 동물 "공통" 속성, 테이블1, 테이블2의 공통 컬럼을 의미할까
  • 구상 종 : 구상 엔티티 어트리뷰트 모음 /  강아지, 고양이의 속성 "모음", 테이블1, 테이블2가 그냥 합쳐진걸 의미할까
  • 추상 속 : 다른 추상 종의 유사점 표현 /  동물, 곤충의 유사한 속성
  • 구상 속 : 다른 구상 종의 유사점 표현  / 강아지, 나비의 유사점 
  1. 엔티티 (Entity):
    • 엔티티는 일반적으로 독립적이고 구체적인 개체를 나타냅니다. 예를 들어, "사람", "도서", "자동차" 등이 엔티티가 될 수 있습니다.
  2. 종 (Kind):
    • 종은 비슷한 특성이나 속성을 공유하는 엔티티의 집합을 나타냅니다. 종은 엔티티들을 그룹화하여 유사한 특성을 가진 개체들을 묶는 개념입니다. 예를 들어, "동물"이라는 종은 여러 종류의 동물 엔티티를 포함할 수 있습니다.
  3. 속 (Attribute):
    • 속은 엔티티나 종이 가지는 특정한 특성이나 속성을 나타냅니다. 엔티티가 속성을 가질 때, 이 속성은 해당 엔티티의 특징을 설명하는 데 사용됩니다. 예를 들어, "사람" 엔티티가 "나이", "성별", "이름" 등의 속성을 가질 수 있습니다.

따라서 "동물"이라는 종에는 여러 종류의 동물 엔티티가 속할 수 있으며, 각 동물 엔티티는 각자의 특성을 나타내기 위해 특성을 가질 수 있습니다. 이러한 관계는 데이터 모델링이나 객체지향 프로그래밍에서 사용되는 개념입니다.

 

반응형