SwiftUI 가계부 앱 개발기 2편 – Core Data 모델 구성과 Entity 설계

SwiftUI 기반의 가계부 앱에서 핵심 기능 중 하나는 데이터를 안전하게 저장하고 불러오는 것입니다. 이를 위해 Core Data를 사용하며, 이 글에서는 Entity 설계 및 관계 구성에 대해 다룹니다.


1. Core Data란?

Core Data는 애플이 제공하는 객체 지향 데이터 저장 기술입니다. iOS 앱에서 데이터를 영구적으로 저장하고, 효율적으로 관리할 수 있게 도와줍니다.


2. 필요한 Entity 정의

가계부 앱에서는 다음과 같은 엔티티를 정의합니다:

✅ Record (지출/수입 항목)

속성명타입설명
idUUID고유 식별자
dateDate거래 날짜
typeString수입/지출 구분
categoryString카테고리 이름
amountDouble금액
memoString?설명/메모
cardString?결제 수단 (현금, 카드 등)

✅ AppCategory (사용자 정의 카테고리)

속성명타입설명
idUUID고유 식별자
nameString카테고리 이름
typeString수입/지출 구분

✅ Card (카드 관리용)

속성명타입설명
idUUID고유 식별자
nameString카드 이름
billingDayInt16결제일 (예: 매달 5일)

3. Entity 간 관계 설정

이 앱은 간단한 구조로, Record가 AppCategory와 Card를 이름 기반으로 연결합니다. 실무에서는 관계(Relationship)를 사용할 수도 있지만, 간단한 앱에서는 문자열 키로 관리하는 것이 속도와 유지보수 측면에서 유리합니다.


4. 모델링 팁

  • 모든 id는 UUID로 자동 생성되도록 설정
  • category, type 등의 필드는 검색/필터를 위한 Index 추가 추천
  • 앱 실행 시 샘플 데이터 삽입 옵션도 고려 가능 (개발 시 편리함)

5. 모델 생성 후 해야 할 일

  • .xcdatamodeld 파일에서 위 내용대로 Entity 추가
  • CodegenManual/None으로 설정
  • 각 모델의 NSManagedObject 서브클래스 수동 생성:
  • Editor > Create NSManagedObject Subclass 선택

6. 마무리

SwiftUI 가계부 앱 개발기 3편 – 필터 기능 구현에서는 실제 앱 화면에서 Core Data를 사용해 데이터를 입력, 조회, 삭제하는 방법을 다룹니다.

시리즈 목록