๐ฑ SeSAC (40) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [TIL] 221103 - ๋ด๊ฐ ๋ณด๊ธฐ ์ํด ๋ฉ๋ชจํ๋ ํค์๋(๋๋ฌด ์์ธํ๊ฒ ์ ์ผ๋ ค๊ณ ๋ถ๋ด๊ฐ์ง ๋ง๊ธฐ) - ์ด๋ฏธ ์๊ณ ์๋ ๋ด์ฉ์ด๋๋ผ๋ ์ ๊ณ ๋ค์ ์๊ฐํ๊ณ ์๋ฌธ์ ๊ฐ๊ธฐ 1. Alamofire ์ค๋ณต ์ฝ๋ ๊ฐ์ ํ๊ธฐ import Foundation import Alamofire final class Network { static let shared = Network() private init() {} } extension Network { func request( _ type: T.Type = T.self, url: URL, method: HTTPMethod = .get, parameters: [String: String]? = nil, headers: HTTPHeaders, completion: @escaping (Result) -> .. [SeSAC] 220826 TIL ๋ ์ด์์ ์ด์ ๋ทฐ์ ๋ํด์ ๋ฌ๋ผ์ง๋ ๊ฒ์ ๊ฑฐ์ ์๋ค. ๋ ์ด์์ ์ง๋ ๊ฒ์ ๊ฑฐ์ ๋์ผํ๊ณ , ๊ณ ๋ คํด์ผ ํ ๋ถ๋ถ์ Dynamicํ๊ฒ ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๊ณ ๊ด๋ฆฌํ ์ ์์์ง๋ฅผ ๊ณ ๋ฏผํ๋ ๊ฒ์ด ๋ ์ข์ ๊ฒ ๊ฐ๋ค. Realm, TableView ๊ฐฑ์ , TableView ๋ก๋ Realm ์ญ์ ์ ๋ฌธ์ ๋ฐ์ func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { let favorite = UIContextualAction(style: .normal, title: "์ญ์ ") { action, view, completio.. [SeSAC] 220825 TIL ๋ฐฑ์ /๋ณต๊ตฌ ๊ฐ์ธ ์ ๋ณด ๋ฌธ์ ๋ ๋๊ฒ ๋ฏผ๊ฐํ ๋ฌธ์ ๋ค. ๋ฐ์ดํฐ์ ๋ํ ์ฑ ์์ ์ด๋ ์ ๋ ์ฌ์ฉ์์๊ฒ ๋๊ธด๋ค. 1. ๋ก์ปฌ - ์๋ฒ ์์ฒด ์๋ฒ ์๋ ํํฐ (google drive, dropbox) : ์ฌ์ฉ์๊ฐ ๊ฐ์ง๊ณ ์๋ ํด๋ผ์ฐ๋ ๊ณ์ ์ ๊ฐ์ธ ๋ฐ์ดํฐ ์ ๋ก๋, ๋ง์ด ์ฌ์ฉํ๋ ๋ฐฉ์, ๋ถํธํ๊ณ ์ด๋ ค์ด ์ ์ด ๋ ๋ง์ ํ์ผ ์ฑ : share activity ์ด์ฉํด์ ์ธ๋ถ๋ก ๋ฐฑ์ ํ์ผ ์ ์ก(mac, kakao, email, ...), ๋ํดํธ ๊ธฐ๋ณธ ์ฑ, ์์ดํฐ ์ ์ ์๊ฒ๋ 100ํผ์ผํธ ๋์ 2. ๋ฐฑ์ document - archive.zip(image, realm) ์์ฑ - activity view controller ๋ง์ฝ์ ์์ดํฐ์ ์ ์ฅ ๊ณต๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ด๋กํ ๊น? (์ฌ์ฉ์์๊ฒ ์๋ฆผ์ ์ฃผ๋ ๋ฐฉ์์ผ๋ก ๋์ฒ) ๋ฐฑ์ ํ์ผ์ด ์๋.. [SeSAC] 220824 TIL Document Directory ๊ฐ๊ฐ์ ์ฑ์ ๋ชจ๋ Sandboxํ ๋์ด ์๋ค. ๊ฐ์ ๊ณ ์ ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ๋ป์ด๋ค. ๋ฐ์ด๋๋ฆฌ๋ Container๋ค๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ ํฌ๊ฒ Bundle Container, Data Container, iCloud Container๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ทธ ์ค์์ Documents ๋๋ ํฐ๋ฆฌ๋ Data Container ์์ ์์นํด ์๋ค. Documents ๋๋ ํฐ๋ฆฌ๋ ์ญ์ , ๋ณ๊ฒฝ๋์ด๋ ๋ฌด๋ฐฉํ๊ณ ์ฌ์ฉ์๊ฐ ๋ค๋ฃจ๋ ์ปจํ ์ธ ์ ๊ด๋ จ๋ ํ์ผ๋ค๋ง ์ ์ฅํ๋ค. Realm์ ๊ธฐ๋ณธ์ ์ผ๋ก Document ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค. FileManager ์์์ ๊ฐ์ ๊ณ ์ ํ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์๋ค๊ณ ํ๋๋ฐ, ๊ทธ ๊ณ ์ ํ ๊ณต๊ฐ์ ์ ๊ทผํ๊ธฐ ์ํด FileManager๋ผ๋ ํด๋์ค๋ฅผ ์ด์ฉํ ์ ์๋ค. ์๋๋ Docum.. [SeSAC] 220823 TIL JSON "JSON์ ํํ์ ๋ถ๊ฐํ๋ค." ์๋ก ๋ค๋ฅธ ํ๋ซํผ(์๋ฒ, ํด๋ผ ...)์ฌ์ด์์ ์ด๋ป๊ฒ ํต์ ํ ์ ์์๊น๋ผ๋ ์๊ฐ์์ ๋ฐ์ดํฐ ํ์์ ํต์ผ์ฑ์ด ํ์ํ๋ค๋ ๊ด์ ์ด ๋์จ๋ค. ์ค์ ๋ก ๋ณด์ฌ์ง๋ ๋ฐ์ดํฐ๋ String์ ์งํฉ์ด๋ค. Realm Local DB ์์ฒด์์ ์กฐํ ์์ฒด๋ ํฌ๊ฒ ์๋์ ์ฑ๋ฅ์ ๊ฑฑ์ ํ์ง ์์๋ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ์์๋๋ก ์ ๋ ฌ์ด ๋๋ค. Filter(ํํฐ) ๊ธฐ๋ฅ ๊ตฌํ ๋ค์ 2๊ฐ์ง ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๋ค. Realm filter query ๊ธฐ๋ฐ NSPredicate ๊ธฐ๋ฐ (Apple) Lazy var ์ฌ์ฉ์ ๋์ ๋ฐ๋์ ๋ณด์ด๋ ๋ทฐ์ ๊ฒฝ์ฐ ๊ตณ์ด lazy var๋ฅผ ์ด์ฉํด์ ์ง์ฐ ์ ์ฅํ๋ ๊ฒ์ ๊ทธ ๋ชฉ์ ์ ๋ถํฉํ์ง ์๋ค. ์คํ๋ ค ์ฝ๋๋ฅผ ํด์ํ ๋ ์๋ชป๋ ํด์์ ์ ๋ํ ์ ์๋ค. UIBu.. [SeSAC] 220822 TIL Notification.Name ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ Notification์ด ๋ง๋ค. awakeFromNib, init ํน์ฑ์ ๋ง๊ฒ ์ด๋ ๊ฒ์ด ํธ์ถ๋๋ ๊ฒ์ด ๋ ์ ์ ํ์ง ํ์ธํด๋ณธ๋ค. SB, CB ๋ ๋ค ํธ์ถ์ด ๋๋์ง ํ์ธํด๋ณธ๋ค. ์ด๋ค ๊ฒ์ด ๋จผ์ ํธ์ถ๋๋์ง ํ์ธํด๋ณธ๋ค. (Break Point ํ์ธ) ํ๋ฉด์ ๋์ธ ๋ viewDidLoad()์์ Alert์ ๋์ธ ์ ์๋ค. (viewDidLoad๋ ํ๋ฉด์ ๋์ฐ๊ธฐ ์ง์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋จ, viewDidAppear์์ ํธ์ถํ๊ธฐ) ํ๋ฉด์ ํญ์ ํ์ฌ ํ๋ฉด์์ present, push ํ๋ ๊ฒ์ ์๋๋ค. ํ์ฌ window์ rootViewController์์ ๋์ฐ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค. SnapKit Layout Method make remake update ์ ๋ ์ด์์(C.. [Diary App: DDAK] ์ค๊ฐ ๊ธฐ๋ก (1) ๋ค์ด๊ฐ๋ฉฐ ์ง๋์ฃผ์๋ Realm์ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๊ณต๋ถํ๊ณ , ๊ทธ๊ฒ์ ์ด์ฉํด์ ๋ค์ด์ด๋ฆฌ ์ฑ์ ๋ง๋๋ ๊ฒ์ ํ๋ค. ๋ฐ๋ก ์ด์ ๊ธ์์๋ ์ฌ์ง ๊ฒ์ ๋ทฐ๋ฅผ ๋ง๋ ๊ฒ๊น์ง ๋ณด์ฌ์คฌ๋ ๊ฒ ๊ฐ์๋ฐ, ์ง๊ธ ์์ ์์๋ ์ด๋ ์ ๋ ๋ ์ด์์์ด ์๋ฆฌ๋ฅผ ์ก์๋ค. ์ด๋ค ์์ ์ ํ๋์ง ๊ฐ๋จํ ์์ฝ๋ง ํด๋ณด๊ฒ ๋ค. ๊ฐ๋จํ ๊ตฌํํ ๋ด์ฉ ๊ธฐ๋ก์ ํ๊ณ ๋๋ฉด ๊ธฐ๋ก์ ๋ฆฌ์คํธ ํํ๋ก ๋ณด์ฌ์ฃผ๊ฒ ๋๋๋ฐ ์ฒ์์ ํ๋ ์ ๋์์ธ์ด ํด๋๊ณ ๋ณด๋๊น ๋๋ฌด ๋ณ๋ก์ฌ์ ๋ฐ๊ฟจ๋ค. ์ฌํํ๊ฒ ์ต๊ณ ์ธ ๊ฒ ๊ฐ๋ค. ๐ฃ Realm์ ์ด์ฉํด์ CRUD ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด์๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด์ ๊ฐ์ฅ ํฌ๊ฒ ๋๊ผ๋ ๊ฒ์ ๋๊ธฐํ, ๊ฐฑ์ ์ ์ ์์ผ์ฃผ์ด์ผ ํ๋ค๋ ๊ฒ์ด์๋ค. ๋๊ธฐํ๊ฐ ์ ๋์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ ์ฃผ์ํ์. ๐ฃ Repository Pattern์ ์ด์ฉํด.. [Diary App: DDAK] ๊ธฐ๋ก์ ์์ (0) ๋ค์ด๊ฐ๋ฉฐ ๋ค์ด์ด๋ฆฌ ์ฑ์ ๋ง๋ค๊ธฐ ์์ํ๋ค. ๋งค๋ฒ TIL๋ง ์ ์์๋๋ฐ ๊ฐ๋ฐ์ด๋ ๊ธฐ๋ก์ ๋๋ฌด ์ํํ ํ๋ ๊ฒ ๊ฐ์์ ๊ฐ๋จํ๊ฒ ๊ฐ๋ฐํ๋ ์ํฉ์ด๋ ํธ๋ฌ๋ธ ์ํ , ๊ธฐํ ๋ฑ๋ฑ์ ๊ฐ๋ณ๊ฒ ๊ธฐ๋กํ๋ ค๊ณ ํ๋ค. ์ผ๋จ ์ง๊ธ์ ๋๋ฌด ์กธ๋ฆฌ๋๊น ์ค๋ ์์ ํ ๋ด์ฉ์ ๊ฐ๋จํ๊ฒ๋ง ๊ธฐ๋กํ๋๋ก ํ๊ฒ ๋ค... (์๋ ๋ฏธ๋ฆฌ ํ์์ด์ผ ํ๋๋ฐ ๋ฐ์ฑ ์ค๐ต) ์ด๋ฒ์ฃผ๋ Realm Local Database๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต๋ถํ๊ณ ์๋ค. ๊ทธ๊ฒ์ ์ด์ฉํด์ ๊ฐ๋จํ ์ผ๊ธฐ, ๋ฉ๋ชจ, ๊ธฐ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ํ ๋ฐ ์ง๊ธ์ ๊ฐ๋จํ๊ฒ ๋ฏธ๋ ํ๋ก์ ํธ๋ก ์ผ๊ธฐ(๋ค์ด์ด๋ฆฌ)์ฑ์ ๋ง๋๋ ์ค์ด๋ค. ์์ฌ์ด ์ฝ๊ฐ ๋์ ๋์์ธ๋ ์ ๊ฒฝ์จ๋ณด๋ ค๊ณ ํ๋๋ฐ ์ญ์๋ ์๊ฐ์ด ์ข ๊ฑธ๋ฆฐ๋ค... ์ผ๋จ ๊ธฐ๋ฅ ๊ตฌํ์ด ๋ ์ค์ํ๊ธฐ ๋๋ฌธ์ UI๋ ๊ทธ ์ดํ์ ์ ๊ฒฝ์จ๋ณด๋๋ก ํ.. ์ด์ 1 2 3 4 5 ๋ค์