데이터 저장 면접 질문
Core Data·SwiftData·UserDefaults·파일·마이그레이션·동기화. 실제 iOS 면접에서 나온 38문항입니다.
- 데이터 저장주관식
UserDefaults의 용도와 한계
코드 리뷰에서 후배가 액세스 토큰, 프로필 이미지 Data, 최근 본 상품 5,000개 배열을 전부 UserDefaults에 저장하는 PR을 올렸습니다. 무엇을 지적하시겠습니까?
#userdefaults #plist #storage
- 데이터 저장객관식
파일 쓰기와 원자적 저장
메모 앱이 Documents/notes.json에 Data를 저장합니다. 파일 쓰기에 대한 설명으로 옳은 것을 모두 고르세요. [코드]
#filemanager #data-write #atomic #documents
- 데이터 저장주관식
로컬 저장 방식 개관
새 iOS 프로젝트에서 '즐겨찾기 목록·로그인 세션·다운로드한 PDF·화면 설정'을 로컬에 저장해야 합니다. 각각 어떤 저장 방식을 고르겠습니까?
#storage-choice #userdefaults #keychain #filemanager
- 데이터 저장객관식
Keychain 특성
UserDefaults와 비교한 Keychain의 특성으로 옳은 것을 모두 고르세요.
#keychain #security #userdefaults
- 데이터 저장객관식
저장 위치 선택
서버에서 언제든 다시 받을 수 있는 썸네일 이미지 수천 장을 로컬에 저장하려 합니다. 가장 적절한 디렉터리는?
#filemanager #caches #documents
- 데이터 저장주관식Headspace
영속화 도구 선택 경험
테이크홈 과제의 서술 문항입니다. "지금까지 데이터를 영속화하기 위해 어떤 도구를 써 봤나요?": 도구 이름 나열이 아니라, 각 도구를 어떤 데이터에 왜 썼는지 답해 주세요.
#userdefaults #keychain #swiftdata #file-storage
- 데이터 저장주관식
Core Data 선택 기준
UserDefaults나 단순 파일 저장 대신 Core Data(또는 SwiftData)를 골라야 하는 요구사항은 무엇입니까?
#core-data #swiftdata #sqlite #storage-choice
- 데이터 저장주관식
Core Data 스택 구성
Core Data를 쓰는 화면에서 항목을 추가했는데 리스트가 갱신되지 않는다는 버그가 있습니다. 이 버그가 어디서 생겼을 가능성이 큽니까?
#core-data #nspersistentcontainer #nsmanagedobjectcontext #nsfetchrequest
- 데이터 저장객관식
Core Data 컨텍스트 스레딩
Core Data 를 쓰는 뉴스 앱입니다. 백그라운드 컨텍스트(container.newBackgroundContext())에서 fetch한 Article 객체를 메인 스레드의 뷰에 그대로 넘겨 article.title을 읽었습니다. 올바른 설명은?
#core-data #threading #nsmanagedobjectid #background-context
- 데이터 저장주관식
Core Data vs SQLite 직접 사용
팀원이 "Core Data는 무겁고 이해하기 어려우니 SQLite를 직접(또는 GRDB로) 쓰자"고 합니다. 두 접근의 실제 차이는 무엇입니까?
#core-data #sqlite #grdb #realm
- 데이터 저장주관식
아카이빙과 plist
레거시 코드가 NSKeyedArchiver로 모델 객체를 파일에 저장합니다. 최근 OS에서 언아카이브 시 경고와 크래시가 나기 시작했습니다. NSCoding과 NSSecureCoding의 차이는 무엇입니까?
#nscoding #nssecurecoding #nskeyedarchiver #plist
- 데이터 저장객관식
관계형 vs 문서/객체 DB
iOS 앱의 로컬 저장소로 문서형/객체 DB(예: Realm) 대신 SQLite 기반 관계형 저장소(Core Data·SwiftData·GRDB)를 택하는 근거로 타당한 것을 모두 고르세요.
#sqlite #nosql #realm #rdbms
- 데이터 저장객관식
NSFetchedResultsController
Core Data 기반 목록 화면에서 NSFetchedResultsController가 담당하는 일로 가장 정확한 것은?
#core-data #nsfetchedresultscontroller #uitableview
- 데이터 저장주관식
SwiftData 기본 구조
SwiftData로 할 일 목록 앱을 만든다고 합시다. @Model, ModelContainer, ModelContext, @Query가 각각 무엇을 하나요?
#swiftdata #model #modelcontainer #modelcontext
- 데이터 저장객관식
SwiftData 사실 확인
SwiftData에 대한 설명으로 옳은 것을 모두 고르세요.
#swiftdata #model #core-data
- 데이터 저장주관식
샌드박스 디렉터리와 백업
"앱이 iCloud 백업 용량을 2GB나 차지한다"는 사용자 불만과 함께, 심사에서 '오프라인 저장 데이터 가이드라인' 관련 지적을 받았습니다. 앱 샌드박스의 디렉터리들과 각각의 백업·정리 정책을 설명해 주세요.
#filemanager #documents #caches #tmp
- 데이터 저장주관식Bloomberg
서버 모델과 로컬 모델의 분리
폰스크린에서 "백엔드에서 데이터 모델을 어떻게 설계하며 모바일에서는 그것을 어떻게 다루나" 를 물었습니다. 서버 응답 JSON 구조를 그대로 로컬 DB 엔티티로 쓰면 어떤 문제가 생기나요?
#dto #domain-model #swiftdata #schema-evolution
- 데이터 저장주관식PhonePe
앱 간 Keychain 공유(access group)
같은 팀에서 만드는 결제 앱 두 개(메인 앱·가맹점 앱)가 하나의 로그인 토큰을 공유해야 합니다. UserDefaults 나 파일로는 안 된다고 하는데, Keychain 으로는 어떤 조건에서 어떻게 공유하나요?
#keychain #access-group #entitlements #app-group
- 데이터 저장주관식ByteDance
NSCache 와 직접 만든 LRU 캐시
NSCache 가 있는데 왜 이미지 라이브러리들은 LRU 캐시를 직접 만드나요?
#nscache #lru #linked-list #image-cache
- 데이터 저장객관식Shopee
LRU 캐시의 적중률과 자료구조
이미지 캐시로 LRU 를 채택했습니다. LRU 에 대한 설명으로 옳은 것을 모두 고르세요.
#lru #cache #hit-rate #linked-list
- 데이터 저장주관식Alibaba Group
ObjC 런타임 기반 모델 매핑과 Swift 의 대체
Objective-C 시절 YYModel·MJExtension 은 클래스 정의만 있으면 JSON→모델 변환과 NSCoding 아카이빙까지 자동으로 해 줬습니다. 런타임의 어떤 기능으로 가능했나요?
#objective-c #runtime #kvc #codable
- 데이터 저장주관식왓챠커뮤니티 전언
Realm vs SwiftData/Core Data 선택
레거시 앱이 Realm 을 본격적으로 쓰고 있습니다. 새로 합류한 당신에게 "Realm 을 계속 쓸지 SwiftData/Core Data 로 갈지" 의견을 묻습니다. Realm 의 스레딩·객체 모델은 Apple 스택과 어떻게 다른가요?
#realm #swiftdata #core-data #threading
- 데이터 저장객관식Capital One커뮤니티 전언
요구 조건별 저장소 선택
금융 앱의 데이터 저장 요구 조건과 저장소 선택이 올바르게 짝지어진 것을 모두 고르세요.
#storage #userdefaults #keychain #caches
- 데이터 저장주관식
Core Data 마이그레이션
Core Data 를 쓰는 앱을 업데이트한 뒤 크래시 리포트가 쏟아집니다. 로그에 "The model used to open the store is incompatible with the one used to create the store"가 있습니다. 무슨 일이 일어났나요?
#core-data #migration #lightweight-migration #mapping-model
- 데이터 저장객관식
경량 마이그레이션 범위
Core Data에서 매핑 모델 없이 경량 마이그레이션으로 처리되는 변경을 모두 고르세요.
#core-data #migration #lightweight-migration
- 데이터 저장주관식
Core Data 내부 동작(faulting·save)
Core Data에서 fetch로 10,000개 객체를 가져왔는데 메모리가 거의 안 늘었고, 이후 리스트를 스크롤하니 조금씩 늘어납니다. 이 현상을 내부 동작으로 설명해 주세요.
#core-data #faulting #nsmanagedobject #save
- 데이터 저장주관식
SwiftData 스키마 마이그레이션
SwiftData 앱을 출시한 뒤 Todo에 priority 필드를 추가하고, 기존 title을 공백 제거해 정리하려 합니다. 어떤 변경이 자동으로 되고 어떤 변경에 VersionedSchema와 SchemaMigrationPlan이 필요한가요?
#swiftdata #migration #versionedschema #schemamigrationplan
- 데이터 저장주관식
Data Protection과 백그라운드 접근
잠금 화면 상태에서 백그라운드 푸시로 깨어난 앱이 로컬 DB를 열다 실패한다는 로그가 있습니다. iOS의 파일 보호(Data Protection) 클래스란 무엇입니까?
#data-protection #file-protection #encryption #background
- 데이터 저장주관식
백그라운드 저장과 메인 반영
서버에서 받은 데이터를 백그라운드 컨텍스트에서 저장하면 메인 화면이 갱신되지 않거나, 반대로 메인에서 편집 중인 값이 덮어씌워진다는 두 가지 불만이 있습니다. Core Data에서 백그라운드 저장→메인 반영 흐름을 어떻게 구성해야 하나요?
#core-data #background-context #merge #automaticallymergeschangesfromparent
- 데이터 저장객관식
merge policy 동작
Core Data 를 쓰는 메모 앱입니다. 백그라운드 컨텍스트가 note.body를 서버 값으로 바꿔 저장을 먼저 마쳤고, 이를 모르는 메인 컨텍스트에서는 사용자가 note.title만 수정해 save()를 호출했습니다. 메인 컨텍스트의 mergePolicy가 NSMergeByProp…
#core-data #mergepolicy #conflict
- 데이터 저장객관식PhonePe
멀티스레드 다운로드와 Core Data 컨텍스트 구성
이미지 메타데이터를 스레드 4개에서 병렬로 내려받아 Core Data 에 저장하려 합니다. NSManagedObjectContext 를 몇 개, 어떻게 구성해야 하는지에 대해 옳은 설명을 모두 고르세요.
#core-data #managed-object-context #background-context #merge
- 데이터 저장주관식Zomato
만료 시간 있는 키-값 저장소 설계
15분 안에 "값에 만료 시각이 포함된 키-값 저장소" 를 설계해 보라고 합니다. set(key, value, ttl) 과 get(key) 가 만료된 값을 돌려주지 않아야 하고, 처음엔 UserDefaults 로 시작해도 된다고 합니다. 어떻게 설계하겠습니까?
#userdefaults #ttl #sqlite #index
- 데이터 저장주관식당근커뮤니티 전언
오프라인 채팅 DB 설계
중고거래 앱의 채팅이 지하철에서도 읽고 쓸 수 있어야 합니다. 오프라인에서 보낸 메시지가 나중에 서버에 도달하고, 순서·중복·읽음 상태가 어긋나지 않도록 로컬 DB 스키마와 동기화 흐름을 설계해 주세요.
#offline-first #chat #outbox #sync
- 데이터 저장객관식Pinduoduo
LFU 캐시의 특성
이미지 캐시를 LRU 에서 LFU 로 바꾸자는 제안이 있습니다. LFU 에 대한 설명으로 옳은 것을 모두 고르세요.
#lfu #lru #cache #eviction
- 데이터 저장주관식
CloudKit 동기화 제약
로컬 전용이던 SwiftData/Core Data 앱에 iCloud 기기 간 동기화를 붙이려 합니다. NSPersistentCloudKitContainer(또는 SwiftData의 cloudKitDatabase)를 켜기 전에 스키마와 설계에서 무엇을 바꿔야 하나요?
#cloudkit #nspersistentcloudkitcontainer #swiftdata #sync
- 데이터 저장주관식
대량 데이터 저장 성능
초기 동기화에서 10만 건을 Core Data에 저장하는데 메모리가 1GB까지 올라가 종료되고, 그동안 UI도 멈춥니다. 원인을 추정해 주세요.
#core-data #nsbatchinsertrequest #performance #memory
- 데이터 저장객관식
익스텐션과 저장소 공유
메인 앱의 SwiftData/Core Data 스토어를 위젯 익스텐션에서도 읽으려 합니다. 옳은 설명을 모두 고르세요.
#app-group #widget #sqlite #persistent-history
- 데이터 저장주관식
서버-로컬 동기화 설계
메모 앱의 로컬 DB와 서버를 동기화해야 합니다. 매번 전체를 다시 받는 현재 방식은 느리고 데이터도 많이 씁니다. 델타 동기화 프로토콜을 어떻게 설계하겠습니까?
#sync #delta-sync #tombstone #offline