๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŒฑ 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๋Š” ๊ทธ ์ดํ›„์— ์‹ ๊ฒฝ์จ๋ณด๋„๋ก ํ•˜..