-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[레벨 0] 6주차
12. 데이터베이스의 종류와 iOS에서 주로 사용되는 데이터베이스에 대해 설명해주세요.
#12
Comments
iOS에서 사용되는 SQLite, Core Data, Realm 등의 특징과 사용 사례를 설명해주세요.SQLite는 RDBMS의 경량화 한 버전으로 볼 수 있으며 서버가 아닌 응용프로그램(혹은 앱)에 넣어 사용하는 비교적 가벼운 DB입니다. Realm은 NoSQL(보편적으로 Not Only SQL 이라고 칭함) 일종으로 볼 수 있습니다. 기존의 관계형 데이터베이스 시스템의 주요 특성을 보장하는 ACID(Atomic, Consistency, Integrity, Duarabity) 특성을 제공하지 않는, 이에 Realm은 오픈 소스 라이브러리로 모바일에 최적화된 데이터베이스 라이브러리로서 복잡한 Entity에 대한 매핑을 처리해야할 문제가 없으므로 CoreData는 애플 자체 파일시스템 플랫폼으로서 안정성이 있습니다. 관계형 데이터베이스의 ACID 특성과 트랜잭션의 개념에 대해 설명해주세요.
iOS에서 데이터베이스 스키마 버전 관리와 마이그레이션을 처리하는 방법을 설명해주세요.스키마 버전 관리는 데이터베이스 스키마(데이터베이스의 구조, 테이블, 열, 인덱스 등)의 변경 사항을 관리하는 프로세스를 의미합니다. 애플리케이션이 발전하고 데이터 요구사항이 변화함에 따라 데이터베이스 스키마가 업데이트될 필요가 있기 때문에 중요한 개념입니다. 스키마 버전 관리를 수행하는 방법
Core Data에서 마이그레이션 처리
SQLite를 사용하는 방법
|
iOS에서 사용되는 SQLite, Core Data, Realm 등의 특징과 사용 사례를 설명해주세요.
관계형 데이터베이스의 ACID 특성과 트랜잭션의 개념에 대해 설명해주세요.
|
SQLite특징
사용
주의 !!!
|
1️⃣ iOS에서 사용되는 SQLite, Core Data, Realm 등의 특징과 사용 사례를 설명해주세요.
SQLite
CoreData
Realm
2️⃣ 관계형 데이터베이스의 ACID 특성과 트랜잭션의 개념에 대해 설명해주세요.관계형 데이터베이스
트랜잭션, Transaction
트랜잭션의 특징, ACID
|
iOS에서 사용되는 SQLite, Core Data, Realm 등의 특징과 사용 사례를 설명해주세요.일단 모두 DMBS라는 측면으로 사용이 되는 것으로 알고 있는데요. Realm은 이름은 들어봤으나 실제로 분석하고 사용해본 적은 없어서 잘 모르겠습니다. SQL 문법을 각 플랫폼에서 지원하는 언어들로 비교적 쉽게 사용할 수 있는 것 정도로만 알고 있습니다. SQLite는 그 이름처럼 SQL을 사용하는 DBMS이면서, 다른 툴에 비해 상대적으로 많이 가벼운 것으로 알고 있습니다. CoreData는 애플에서 제공하는 프레임워크인데요. DMBS, ORM 등 인스턴스를 관리하기 위한 기능들을 제공합니다. 또 내부적으로 SQLite를 사용하기도 합니다. https://developer.apple.com/documentation/coredata/nspersistentstore/storetype 관계형 데이터베이스의 ACID 특성과 트랜잭션의 개념에 대해 설명해주세요.먼저 트랜잭션은 함수를 묶어놓은 함수라고 표현할 수 있을 것 같은데요. 이를 묶어놓음으로써 비즈니스 레벨에서 한번에 처리가 되도록 하는 것입니다. 흔히 예시를 드는 게 은행일인데 계좌이체를 한다고 하면 A 계좌에서는 돈을 빼야 하고, B 계좌에는 돈을 넣어야 합니다. 또 이 안에서도 로그를 남기거나 하는 일이 필요할 수 있는데, 이렇듯 작업을 묶어서 하나의 작업으로 단위를 만든 것을 트랜잭션이라 합니다. 이러한 트랜잭션의 특성상 지켜져야하는 성질이 있는데 이들의 앞글자를 따서 부르는 것이 ACID입니다. 각각 Atomic, Consistency, Isolation, Durability인데요. 상세 설명은 다음과 같습니다.
iOS에서 데이터베이스 스키마 버전 관리와 마이그레이션을 처리하는 방법을 설명해주세요.이게 말이 이상하지만, 제가 읽기로는 운영체제 별 RDMBS의 운영방식을 이야기하라는 것 같은데요. 상당히 서로 동떨어진 이야기를 연관지어 시킨다는 생각이 듭니다. 먼저 같은 RDMBS라도 운영체제 별로 인터페이스가 다를 수는 있겠습니다. 또 RDMBS 인터페이스가 달라 운영방식이 다를 수도 있겠습니다. 그런데 많은 RDMBS들이 있는데 특히 iOS에서, 그 많은 RDBMS가 운영되는 방식을 표현하라는 게... 아는 만큼 나열을 하라는 건지, 공통점이 있다면 표현을 하라는 건지 잘 모르겠네요. 일단 공통점으로 가자면 데이터베이스 스키마라는 것부터가 관계형 데이터베이스에서 사용되는 용어인데, 하나의 데이터 집합을 표현하는 테이블입니다. 스키마의 버전을 이야기 한다는 게 또 기존의 스키마를 두고 새로운 스키마를 만든다는 것인지, 기존의 스키마를 확장한다는 것인지 명확한 정의가 필요한데요. 일단 어느 쪽이던 SQL 중에서도 Database Define Language를 통해 스키마를 재정의하는 과정이 필요합니다. 이후 Database managment language를 통해 확장된 스키마에서 삭제, 추가, 변형이 된 컬럼에 대해 어떤 정책을 가져갈 것인지 결정하는 과정이 필요하며, 새로운 스키마를 만든 경우라면 또 새로운 스키마로 모두 옮겨주는 과정이 필요할 수 있습니다. 질문의 의도가 이게 맞는지 솔직히 잘 모르겠는데요. 별 생각없이 코어데이터를 이야기한 것이라면, 매뉴얼한 방법과 오토매틱한 방법이 있습니다. 보통은 오토매틱으로 충분한데, 새로운 모델이 필요하고 기존 모델이 이로 맵핑이 되어야하는 경우라면 매뉴얼한 방식으로 처리할 필요가 있습니다. |
The text was updated successfully, but these errors were encountered: