일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Human interface guide
- UICollectionView
- Clean Code
- combine
- 리펙터링
- MVVM
- Refactoring
- 클린 코드
- uiscrollview
- ios
- swiftUI
- Xcode
- tableView
- RxCocoa
- rxswift
- swift documentation
- HIG
- uitableview
- map
- 리펙토링
- 스위프트
- UITextView
- collectionview
- SWIFT
- ribs
- 애니메이션
- Observable
- 리팩토링
- clean architecture
- Protocol
- Today
- Total
목록iOS 실전 (swift)/데이터베이스 (15)
김종권의 iOS 앱 개발 알아가기
* SQLite는 c언어 기반이므로 swift에 맞는 데이터 타입과 완전히 동일하지 않으므로, 가급적이면 Objective-c로 만들어진 FMDB라이브러리 사용할 것 1. SQLite설치 1) 아래 링크 접속 www.sqlitebrowser.org DB Browser for SQLite DB Browser for SQLite The Official home of the DB Browser for SQLite Screenshot What it is DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. DB4S i..
* SQL (Structured Query Language) 관계형 데이터베이스의 데이터를 관리할 목적으로 설계된 프로그래밍 언어 1. SELECT SELECT 칼럼1, 칼럼2, .... FROM 테이블명 [WHERE ] [ORDER BY ] [HAVING ] 2. INSERT INSERT INTO 테이블명 (칼럼1, 칼럼2, ...) VALUES (값1, 값2 ...) 또는 VALUES에 삽입할 데이터를 나열해도 가능 3. UPDATE UPDATE 테이블명 SET 수정할 칼럼1 = 수정 할 값 1, 수장할 칼럼2 = 수정 할 값 2 ... [WHERE 수정할 데이터의 조건] 4. DELETE DELETE FROM 테이블명 [WHERE ]
* 프로퍼티 리스트는 데이터를 쌓기보다는 데이터 갱신에 초점 - 만약 프로퍼티 리스트로 데이터를 관리한다면, 배열타입이므로 "query"를 사용하지 못하므로 검색에 어려움 - 새로운 데이터를 추가하려면 매번 모든 배열 데이터를 메모리로 "load"했다가 다시 프로퍼티 리스트에 저장하므로 비효율 적 * 관계형 데이터 베이스 : 데이터들이 서로 결합될 수 있는 관계를 제공하는 데이터베이스 형태 1. DBMS 1) 개념 (Database Management System) * DB : 데이터들을 저장하고 있는 공간 * DBMS : DB내에 저장된 데이터에 손쉽게 접근할 수 있도록 해주는 소프트웨어 도구 (Oracle, MariaDB, MySQL, SQLServer) cf) "개발자들의 대화에서는 DB무엇을 쓰나..
* property list와 UserDefaults의 쓰임 - property list : 데이터가 많아서 따로 그룹을 묶어서 저장하는 경우, 비슷한 형식의 데이터 그룹이 반복되는 경우 (user1@naver.com, user2@naver.com. ... 이런 데이터들은 "키"값의 유형이 name, password와 같이 유사하므로 .plist에 key값을 저장해놓고 사용하면 편리), UserDefaults는 key가 중복되면 value값이 지워지므로 - UserDefaults : 앱 전체에서 사용되는 공통 데이터, 데이터 양이 적은 경우 cf) 데이터가 대규모이면 SQLite, Realm, core data사용 1. DB 활용 2. UI 구성 3. 구현 (가급적이면 Property List의 템플릿 ..
1. UserDefaults - 런타임 환경에서 동작하는 객체 (앱이 실행되는 동안 저장소에 접근하여 데이터를 가져오고 기록) - 싱글톤 패턴 - Concurrency & blocking문제 해결 (UserDefaults는 "in-memory caching"이지만, 동기화 가능) 2. Create - UserDefaults는 데이터를 "in-memory caching"사용하므로 캐싱된 데이터를 갱신하여 양쪽의 데이터를 갱신해야함, 8번라인 1 2 3 4 5 6 7 8 /// 객체 참조(싱글톤 객체) let obj = UserDefaults.standard /// 쓰기, forKey 파라미터는 무조건 문자열 타입 obj.set("홍길동", forKey: "이름") obj.set(24, forKey: "나이..
1. 프로퍼티 리스트 1) 개념 - 객체 직렬화*를 위한 XML포맷에 맞추어 key-value형식으로 저장 (xcode project에서 info.plist역시 프로퍼티 리스트) - 주로 앱의 공통 데이터나 주요 설정 정보를 저장하는데 사용 * 객체 직렬화 : 객체의 내용을 바이트 단위로 변환하여 파일에 기록하거나 네트워크를 통해 전달이 가능하도록 하는 것 2) 특성 - 중복된 키를 사용하면 기존의 데이터는 지워지고 덮어쓰게 됨 - 프로퍼티 리스트는 데이터 타입을 추상화하여 저장 : string은 추상화 데이터 타입 / String, NSString, CFSgtring은 구체화 데이터 타입 3) 저장 타입 (추상형을 사용하기 때문에 범용성 존재) - 문자열 : - 숫자 : - 실수 : - 배열 : - 딕..
1. Realm을 사용하는 이유 - UserDefaults는 기본적인 데이터 형식(String, int)와 같은 것만 가능하고 느리지만 상대적으로 Realm은 빠르고 유연함 2. Realm 프레임워크 준비 1) podfile에 프레임워크 추가 및 인스톨 1 2 pod 'RealmSwift', '~> 3.17', :modular_headers => true pod 'Realm', '~> 3.17', :modular_headers => true 2) framework추가 (framework, Libraries, Embedded Content에 추가) 3) cmd + B : 빌드눌러서 업데이트 3. Realm사용 - CRUD - Realm의 데이터베이스 : 클래스 이름으로 만들어짐 (따로 DB를 생성하지 않고..