[swift] 코어 데이터 상속

코어 데이터(Core Data)는 애플리케이션 내에서 영구적인 데이터 저장을 위한 프레임워크입니다. 이를 통해 데이터를 관리하고 검색할 수 있으며, 관계형 데이터를 사용하는 애플리케이션에서는 자주 사용됩니다.

코어 데이터를 사용하는 경우, 각 데이터 엔티티(Entity)는 속성(Attribute)과 관계(Relationship)로 구성됩니다. 이러한 엔티티들은 모델(Model)을 통해 정의되어야 합니다.

코어 데이터에서 상속을 사용하면, 한 엔티티가 다른 엔티티의 속성과 관계를 상속받을 수 있습니다. 이를 통해 코드의 재사용성을 높이고 유지보수를 간편하게 할 수 있습니다.

상속 설정하기

  1. Xcode에서 데이터 모델(Data Model) 파일을 엽니다.
  2. 새로운 엔티티를 추가하고 원하는 속성과 관계를 정의합니다.
  3. 상속을 받고자 하는 엔티티를 선택합니다.
  4. 엔티티 탭(Entity Inspector)에서 부모 엔티티(Parent Entity) 옵션을 선택합니다.
  5. 드롭다운 메뉴에서 원하는 부모 엔티티를 선택합니다.
import CoreData

class Person: NSManagedObject {
    @NSManaged var name: String?
    @NSManaged var age: Int16
}

class Employee: Person {
    @NSManaged var employeeID: String?
}

위의 예시 코드에서 Person 클래스는 NSManagedObject를 상속받은 코어 데이터 엔티티입니다. Person 클래스에는 nameage라는 속성이 있습니다.

Employee 클래스는 Person 클래스를 상속받은 엔티티로, employeeID라는 추가적인 속성이 있습니다.

상속한 엔티티 사용하기

...
let employee = NSEntityDescription.insertNewObject(forEntityName: "Employee", into: context) as! Employee
employee.name = "John Doe"
employee.age = 30
employee.employeeID = "12345"
...

코드에서 Employee 엔티티의 객체를 생성하고 사용할 수 있습니다. 상속을 통해 부모 엔티티에 정의된 속성들도 함께 사용할 수 있습니다. 따라서 Employee 객체에는 name, age, employeeID 속성이 모두 포함되어 있습니다.

요약

코어 데이터의 상속을 사용하면, 엔티티 간의 관계를 효율적으로 관리하고 코드를 재사용할 수 있습니다. 코어 데이터의 모델을 잘 설계하고 상속을 활용하면 유연하고 확장 가능한 애플리케이션을 개발할 수 있습니다.

더 자세한 내용은 애플 공식 문서를 참조하세요.