CoreData - NSManagedObjectContext / NSPersistentStoreCoordinator

JG Ahn·2025년 4월 29일

iOS

목록 보기
30/32
post-thumbnail

과제로 회원가입을 만들어보면서 coreData를 다루게 되었다.

CoreData를 사용한지 시간이 지나 가물가물해져 gpt에서 삭제 방법을 묻던 중 방식을 여러가지로 알려줘 궁금해서 찾아보게 되었다.

  • context.delete() : NSManagedObjectContext에서 사용
  • persistentStoreCoordinator.execute() : NSPersistentStoreCoordinator에서 사용

NSManagedObjectContext

  • 가장 많이 사용하는 CoreData 클래스
  • 데이터 생성, 조회, 수정, 삭제 로직 수행

NSPersistentStoreCoordinator

  • CoreData 모델(.xcdatamodeld)과 실제 저장소 파일(ex: SQLite) 사이를 중재하는 객체
  • 직접 데이터를 수정하지 않고, 데이터 흐름을 연결


간단 요약

항목 NSPersistentStoreCoordinator NSManagedObjectContext
역할 디스크(저장소)와 모델 간 연결 관리 메모리 내 작업 영역 (객체 생성, 수정, 삭제 등)
책임 실제 저장소에 읽기/쓰기 데이터 편집, 상태 추적, 변경 사항 저장
위치 Core Data 스택의 중간 허브 앱이 직접 조작하는 프론트 라인
저장소 접근 직접 디스크에 접근 coordinator를 통해 저장소 접근
스레드 안전성 대부분 스레드-세이프 스레드마다 context 별도로 필요
예시 SQLite 파일을 연결 및 등록 UI에서 데이터 표시 및 수정 작업

NSPersistentStoreCoordinator는 저장소 관리자, NSManagedObjectContext는 작업 메모리 공간(에디터)

실제 앱 개발에서는 NSManagedObjectContext 중심으로 작업

NSPersistentStoreCoordinator이 중요하지만 직접 다룰일은 없다!

0개의 댓글