[Swift] SwiftData 모델 구조 변경 시 런타임 에러 해결하기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 SwiftData를 사용해서 앱을 개발하다 보면 한 번쯤 이런 경험을 하게 됩니다. 모델 구조를 살짝 바꿨을 뿐인데 앱이 실행되자마자 바로 런타임 에러가 발생하는 경우 말이죠. 물론 개발 중이라면 앱을 삭제하고 다시 설치하면 문제없이 돌아가지만, 출시된 앱이라면 “앱을 지우고 다시 설치하세요”라고 안내할 수도 없습니다. 그리고 무엇보다 매번 삭제하면서 앱을 빌드하고 테스트하기가 귀찮습니다... 그렇다면 이 문제는 왜 발생하고, 어떻게 해결해야 할까요? 원인 - SwiftData의 내부 구조SwiftData는 내부적으로 SQLite 기반의 데이터베이스를 사용합니다.@Model로 정의한 구조체는 단순한 Swift 타입이 아니라, SwiftData가 해당 구조를 읽어서 데이터베..
[DataBase] 데이터베이스와 테이블 관리하기
·
CS/Database
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 데이터베이스 생성하고 관리하는 방법 중에서 데이터베이스 생성과 테이블 생성에 대해서 포스팅을 해보겠습니다! 우선 들어가기에 앞서서 MySQL이 관리하는 것들에 대해서 정리하고 가겠습니다. MySQL을 설치하면 DBMS가 설치될 거고, 여러개의 데이터베이스를 갖게 될 겁니다. 그리고 그 데이터베이스 안에는 여러개의 테이블을 가질 수 있습니다. 아래 그림처럼 말이죠!우리는 이런 구조로 MySQL을 관리할 수 있습니다.  MySQL이 관리하는 것MySQL이 관리하는 것들을 살펴보면 데이터베이스들을 관리하게 되고 그 데이터베이스들은 테이블들을 관리하게 될 것입니다. 그리고 또  테이블은 데이터를 의미하는 행과 열들을 가지고 있고 각각의 데이터 정확하게는 열에는 ..
[Database] 데이터베이스의 기본 (2)
·
CS/Database
1. 관계데이터베이스에 테이블은 여러 개가 존재합니다.이러한 테이블은 서로의 관계가 정의되어 있습니다. 이러한 관계를 관계화살표로 나타냅니다.2. 키키는 테이블 간의 관계를 더 명확하게 하고 테이블 자체의 인덱스를 위해 설정된 장치입니다.키의 종류로는 기본키, 외래키, 후보키, 슈퍼키, 대체키가 있습니다.2.1 기본키기본키(primary key)는 줄여서 PK 또는 프라이머리키라고 많이 부릅니다.기본키는 유일성과 최소성을 만족하는 키입니다.이는 테이블의 데이터 중 고유하게 존재하는 속성이며 기본키에 해당하는 데이터는 중복되어서는 안 됩니다.기본키는 자연키 또는 인조키 중에 골라서 설정합니다.2.2 자연키유저 테이블을 만든다고 가정한다면 속성은 주민번호, 이름, 성별 등이 존재할 수 있습니다.이 중 이름,..