일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- combine
- uiscrollview
- Clean Code
- Protocol
- 클린 코드
- rxswift
- 리펙터링
- tableView
- ios
- collectionview
- UICollectionView
- RxCocoa
- Refactoring
- Human interface guide
- map
- swift documentation
- Xcode
- 스위프트
- 리펙토링
- ribs
- swiftUI
- HIG
- clean architecture
- uitableview
- 애니메이션
- SWIFT
- 리팩토링
- Observable
- MVVM
- UITextView
- Today
- Total
목록iOS 실전 (swift) (51)
김종권의 iOS 앱 개발 알아가기
* Core Data는 DataBase가 아님 ( Core Data는 ORM 매핑 프레임워크가 맞는 의미, 데이터 저장에 관한 일종의 프레임워크 ) 1. Core Data란? 1) In-Memory 방식이 존재 : 사용 하려는 모든 데이터는 우선 메모리에 로딩되는 과정이 존재 - 코어 데이터 : 읽고 쓰는 모든 데이터는 원칙적으로 메모리에 로드된 다음에 처리 (영구 저장소를 아예 사용하지 않고 순수하게 인메모리 방식으로만 사용하는 것이 가능) * In - Memory란? 말 그대로, Disc에 저장하지 않고 휘발성으로 테스트 같이 잠깐 이용하려고 하는 경우에 In-Memory로 사용가능 - 다른 DB방식 : 효율성을 위해 읽기 목적의 데이터 일부만 메모리에 로드 2) *엔터티(Entity)를 통해 데이터..
* sqlite와 FMDB임포트 후, 1. 스토리보드 세팅 (각 뷰컨트롤러 클래스 생성 및 연결할 것, DepartmentListVC.swift, EmployeeListVC.swift)2. DB설계 : hr.sqlite 3. 위에서 만든 템플릿 DB를 xcode프로젝트에 드래그&드롭 - Add to targets에 체크 4. DAO클래스 생성 다음과 같이 사용 : 12번라인 객체생성, 15번라인 사용 1) fmdb객체 생성 - Data Access Object : SQL문을 전달하여 데이터베이스를 다루는 클래스 - 튜플로 데이터 표현(이점 생각) : 13~15번라인 - 파일 매니저 객체 생성 : 18번라인 - DB파일 경로 탐색 및 템플릿 DB사용 방법 확인 2) DAO클래스에 생성자(DB오픈), 소멸자..
* libsqlite3는 swift 아키텍쳐 전용의 데이터 타입을 지원하지 않음 대신에 objectibe-c로 sqlite3를 재구성한 FMDB사용하는 것이 유리 1. FMDB란? macOS/iOS용으로 개발된 오프소스 SQLite3라이브러리 가장 중요한 메인 클래스 세 가지 - FMDatabase : 하나의 SQLite 데이터베이스를 나타내는 객체 (SQL문 실행할 때 사용) - FMResultSet : FMDatabase 인스턴스를 통해 수행된 SQL의 처리 결과를 담는 객체 - FMDatabaseQueue : FMDatabase의 한 종류로 SQL구문의 멀티 스레드 실행을 지원 (SQL구문을 동시에 여러 개 실행하고 싶을 때 FMDatabase대신 사용) 2. FMDB 세팅 1) libsqlite3..
SQLite Browser툴을 이용하여 필요한 테이블을 먼저 정의 한 후, 이 파일을 "앱 번들"에 저장, 이 템플릿을 "문서 디렉토리"에 저장 * "앱 번들"영역이 아닌, "문서 디렉토리"의 이점 : 앱 업데이트할 시 번들 영역은 데이터들이 덮어쓰이지만 문서 디렉토리는 안전하게 유지됨 (앱 번들 영역은 .swift파일이 저장되어 있는 영역) 1. 템플릿 DB 생성 1) DB저장 (가급적이면 바탕화면에 저장) 2) 테이블 저장 * 테이블 구성 내용은 www.ios-development.tistory.com/84 참고 2. xcode에서 만든 템플릿 사용 1) 만든 .sqlite파일을 xcode안 폴더에 드래그앤 드롭 - 단 Add to targets에 체크(앱 빌드 시 번들 패키지 과정에 추가시키기 위함..
1. 라이브러리 세팅 1) libsqlite3.tbd 2) sqlite3는 c,c++로 되어있으므로 브리지 헤더로 임포트 해야함 추가 -> Header File -> 이름 입력후 저장 3) 브리지 헤더 추가 target -> Build Settings -> All, Combined탭 선택 -> swift Compiler - General -> Objective-C Bridging Header에 아까 추가한 파일의 디렉토리명 복붙 4) 만든 브리지 헤더 파일에 sqlite3.h임포트 2. DB연결과 테이블 생성 1) DB와 연관된 필수 객체 2개 정의 (OpaquePointer자료형) - DB와 연결하는 객체 - SQL문자열이 컴파일 정보가 저장될 stmt 2) DB가 저장될 디렉토리 생성 - 파일을 문서..
* 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무엇을 쓰나..