๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•
[Swift] ๋”•์…”๋„ˆ๋ฆฌ ๋ฐธ๋ฅ˜๊ฐ’์œผ๋กœ ํ‚ค๊ฐ’ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ(Sort Dictionary keys by values) ํ‰์†Œ์— ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋ฉด์„œ ๋ฐธ๋ฅ˜๊ฐ’์œผ๋กœ ํ‚ค๊ฐ’์„ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์ •๋ง ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ด์‹ฌํžˆ ๊ตฌ๊ธ€๋ง ํ•ด๋ณธ ๊ฒฐ๊ณผ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ฒŒ๋˜์–ด ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋”•์…”๋„ˆ๋ฆฌ ์•ˆ์˜ ๊ฐ’์€ [์˜ํ™”์ด๋ฆ„:ํ‰์ ]๋กœ ๋งŒ๋“ค์–ด ์ฃผ๊ณ  ํ‰์  ์ˆœ์œผ๋กœ ์˜ํ™”๋ฅผ ์ •๋ ฌํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ํ™”๋Š” ์งฑ๊ตฌ๋Š”๋ชป๋ง๋ ค,๋‹ค๋งŒ์•…์—์„œ๊ตฌํ•˜์†Œ์„œ,๊ฐ•์ฒ ๋น„2,์˜ค์ผ€์ด๋งˆ๋‹ด,๋‚˜์˜์†Œ๋…€์‹œ๋Œ€ ์ด๋ ‡๊ฒŒ 5๊ฐ€์ง€๋กœ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  => let movies = ["์งฑ๊ตฌ๋Š”๋ชป๋ง๋ ค","๋‹ค๋งŒ์•…์—์„œ๊ตฌํ•˜์†Œ์„œ","๊ฐ•์ฒ ๋น„2","์˜ค์ผ€์ด๋งˆ๋‹ด","๋‚˜์˜์†Œ๋…€์‹œ๋Œ€"] ํ‰์ ์€ ๊ฐ๊ฐ 9.40,8.62,8.04,8.18,9.30 8์›” 25์ผ ๊ธฐ์ค€ ๋„ค์ด๋ฒ„ ํ‰์ ์œผ๋กœ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. => let rates = [9.40,8.62,8.04,8.18,9.30] ์˜ํ™”๋ฅผ ํ‚ค๊ฐ’์œผ๋กœ ํ‰์ ์„ ๋ฐธ๋ฅ˜๊ฐ’์œผ๋กœ ํ•ด์„œ ๋”•์…”.. 2020. 8. 25.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ Swift ๋ฌธ์ œ ์„ค๋ช… ๊ด„ํ˜ธ๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์€ '(' ๋ฌธ์ž๋กœ ์—ด๋ ธ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ง์ง€์–ด์„œ ')' ๋ฌธ์ž๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ()() ๋˜๋Š” (())() ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค. )()( ๋˜๋Š” (()( ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค. '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ž์—ด s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด true๋ฅผ return ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฉด false๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ๋ฌธ์ž์—ด s๋Š” '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ s answer ()() true (())() true )()( false (()( false ํ’€์ด: ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ "(" ๋ณด๋‹ค ").. 2020. 8. 10.
[iOS/UI] ๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฐ” ํ‹ดํŠธ ๋ฐ ํƒ€์ดํ‹€ ์ปฌ๋Ÿฌ๋ฐ”๊พธ๊ธฐ 1 2 3 4 5 6 7 8 //iOS 13์ด์ƒ์ผ ๋•Œ ํƒ€์ดํ‹€ ์ปฌ๋Ÿฌ ๋ฐ”๊พธ๋Š” ๋ฒ• if #available(iOS 13.0, *) { navigationController?.navigationBar.standardAppearance.titleTextAttributes = [.foregroundColor: UIColor.white] } else { navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white] } //๋ฐ” ํ‹ดํŠธ ๋ฐ”๊พธ๋Š” ๊ฒƒ self.navigationController?.navigationBar.barTintColor = UIColor.darkGray Colored by Color Scripter .. 2020. 6. 29.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋‹ค์Œ ํฐ ์ˆซ์ž Swift ๋ฌธ์ œ ์„ค๋ช… ์ž์—ฐ์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด 1. n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” n๋ณด๋‹ค ํฐ ์ž์—ฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ์กฐ๊ฑด 2. n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž์™€ n์€ 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ 1์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์กฐ๊ฑด 3. n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” ์กฐ๊ฑด 1, 2๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ 78(1001110)์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋Š” 83(1010011)์ž…๋‹ˆ๋‹ค. ์ž์—ฐ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n์˜ ๋‹ค์Œ ํฐ ์ˆซ์ž๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์‚ฌํ•ญ n์€ 1,000,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ n result 78 83 15 23 ํ’€์ด: ์กฐ๊ฑด 1์— ๋ถ€ํ•ฉํ•˜๊ธฐ ์œ„ํ•ด answer๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ n+1๋กœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. -> var answ.. 2020. 6. 21.
[iOS/UI] UITextField ๊ธ€์ž ์ˆ˜ ์ œํ•œํ•˜๊ธฐ(UITextField set MaxLength) Swift ์•ˆ๋…•ํ•˜์„ธ์š” Foma ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ํ…์ŠคํŠธํ•„๋“œ์˜ ๊ธ€์ž ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ณต์œ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! ๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~ ๋จผ์ € ์›ํ•˜์‹œ๋Š” ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์— UITextFieldDelegate๋ฅผ ์ฑ„ํƒํ•ด์ฃผ์‹œ๊ณ  ์ œํ•œํ•  ํ…์ŠคํŠธํ•„๋“œ์˜ ๋”œ๋ฆฌ๊ฒŒ์ดํŠธ๋ฅผ self๋กœ ํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ํ…์ŠคํŠธํ•„๋“œ ์•ก์…˜์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š”๋ฐ ๋ฐ˜๋“œ์‹œ Editing Changed๋กœ ํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ ๋‹ค์Œ์œผ๋กœ ์ด์ œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธ€์ž์ˆ˜๋ฅผ ์ œํ•œํ•  ๋ฉ”์†Œ๋“œ๋ฅผ ์•„๋ž˜์ฒ˜๋Ÿผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. 1 2 3 4 5 func checkMaxLength(textField: UITextField!, maxLength: Int) { if (textField.text?.count ?? "" > maxLength) { textField.deleteBackward() } } Colored .. 2020. 6. 21.
[ํ•ด๊ฒฐ๋ฒ• ํฌํ•จ]'NSInternalInconsistencyException', reason: 'could not dequeue a view of kind: UICollectionElementKindCell with identifier ์ฝœ๋ ‰์…˜๋ทฐ์—์„œ dequeueReusableCell์—์„œ ์•„์ด๋ดํ‹ฐํ”ผ์–ด๋ฅผ ์ง€์ •ํ•˜๋Š” ๋„์ค‘ ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์—ด์‹ฌํžˆ ๊ตฌ๊ธ€๋งํ•œ ๊ฒฐ๊ณผ collectionView.register(์ฝœ๋ ‰์…˜๋ทฐ์…€ํด๋ž˜์Šค์ด๋ฆ„.self, forCellWithReuseIdentifier: "์ž์‹ ์˜ ์•„์ด๋ดํ‹ฐํ”ผ์–ด ์ด๋ฆ„") ์„ viewDidLoad์— ๋„ฃ์–ด์ฃผ๋ฉด ๋˜์—ˆ๋‹ค. 1 collectionView.register(์ž์‹ ์˜์ฝœ๋ ‰์…˜๋ทฐ์…€ํด๋ž˜์Šค.self, forCellWithReuseIdentifier: "์•„์ด๋ดํ‹ฐํ”ผ์–ด์ด๋ฆ„") cs ์ž์‹ ์˜ ํด๋ž˜์Šค ์ด๋ฆ„ ์ž์‹ ์˜ ์•„์ด๋ดํ…Œํ”ผ์–ด ์ด๋ฆ„ 2020. 5. 31.
[Firebase] ํŒŒ์ด์–ด์Šคํ† ์–ด์— ๋ฐ์ดํ„ฐ ์ƒ์„ฑ ๋ฐ ์ €์žฅํ•˜๊ธฐ(Cloud Firestore Data Create & Store) Firestore๋Š” ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ NoSQL ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์ธก ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์–ด์Šคํ† ์–ด๋Š” ์ฝœ๋ ‰์…˜ - ๋„ํ๋จผํŠธ - ํ•„๋“œ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝœ๋ ‰์…˜์€ ๋„ํ๋จผํŠธ๋“ค์„ ๋‹ด๊ณ  ์žˆ๋Š” ์ง‘ํ•ฉ์ด๊ณ  ๋„ํ๋จผํŠธ๋Š” ๋‹ค์–‘ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฌธ์„œ์ด๊ณ  ๋‹ค์–‘ํ•œ ๊ฐ’์€ ํ•„๋“œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ถ•๊ตฌ์„ ์ˆ˜๋ผ๋Š” ์ฝœ๋ ‰์…˜์ด ์žˆ๋‹ค๋ฉด ์ถ•๊ตฌ์„ ์ˆ˜์— ํ•ด๋‹น๋˜๋Š” ๋ฐ•์ง€์„ฑ,์†ํฅ๋ฏผ,์•ˆ์ •ํ™˜ ๋“ฑ์ด ๋„ํ๋จผํŠธ์— ํ•ด๋‹น๋  ๊ฒƒ์ด๋ฉฐ ๋ฐ•์ง€์„ฑ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณต๊ฒฉ๋Šฅ๋ ฅ,์ˆ˜๋น„๋Šฅ๋ ฅ,์ฒด๋ ฅ ๋“ฑ์ด ํ•„๋“œ๊ฐ’์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋จผ์ € FirebaseFirestore๋ฅผ importํ•ด์ค๋‹ˆ๋‹ค. db๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. -> let.. 2020. 5. 28.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์นดํŽซ Swift ๋ฌธ์ œ ์„ค๋ช… Leo๋Š” ์นดํŽซ์„ ์‚ฌ๋Ÿฌ ๊ฐ”๋‹ค๊ฐ€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ค‘์•™์—๋Š” ๋…ธ๋ž€์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๊ณ  ํ…Œ๋‘๋ฆฌ 1์ค„์€ ๊ฐˆ์ƒ‰์œผ๋กœ ์น ํ•ด์ ธ ์žˆ๋Š” ๊ฒฉ์ž ๋ชจ์–‘ ์นดํŽซ์„ ๋ดค์Šต๋‹ˆ๋‹ค. Leo๋Š” ์ง‘์œผ๋กœ ๋Œ์•„์™€์„œ ์•„๊นŒ ๋ณธ ์นดํŽซ์˜ ๋…ธ๋ž€์ƒ‰๊ณผ ๊ฐˆ์ƒ‰์œผ๋กœ ์ƒ‰์น ๋œ ๊ฒฉ์ž์˜ ๊ฐœ์ˆ˜๋Š” ๊ธฐ์–ตํ–ˆ์ง€๋งŒ, ์ „์ฒด ์นดํŽซ์˜ ํฌ๊ธฐ๋Š” ๊ธฐ์–ตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. Leo๊ฐ€ ๋ณธ ์นดํŽซ์—์„œ ๊ฐˆ์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ brown, ๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์นดํŽซ์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ ๊ฐˆ์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ brown์€ 8 ์ด์ƒ 5,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๋Š” 1 ์ด์ƒ 2,000,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์นดํŽซ์˜ ๊ฐ€๋กœ ๊ธธ์ด๋Š” ์„ธ๋กœ ๊ธธ์ด์™€ ๊ฐ™๊ฑฐ๋‚˜, ์„ธ๋กœ ๊ธธ์ด๋ณด๋‹ค .. 2020. 5. 28.
[iOS/UI] UIView ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๊ทธ๋ผ๋ฐ์ด์…˜ ์ƒ‰ ๋„ฃ๊ธฐ (UIView Background gradient color) ์˜ค๋Š˜์€ UIView์— ๊ทธ๋ผ๋ฐ์ด์…˜ ์ƒ‰ ํšจ๊ณผ๋„ฃ๋Š” ๋ฒ•์„ ์•Œ์•„๋ด…์‹œ๋‹ค. ์ œ์ผ ๋จผ์ € ์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ์‹œํ—˜ํ•˜๊ธฐ ์œ„ํ•œ view๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ์— ์—ฐ๊ฒฐ์‹œ์ผœ์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ extension์œผ๋กœ UIView๋ฅผ ํ™•์žฅ์‹œ์ผœ์ฃผ๊ณ  ์•ˆ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋‘ ์ข…๋ฅ˜ ์ƒ‰์„ ๋ฐ›๋Š” ๋ฉ”์†Œ๋“œ๋กœ setGradient๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ์šฐ์„  CAGradientLayer์ธ gradient๋ฅผ ๋งŒ๋“ค์–ด์ค€ ๋’ค gradient.colors๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋‘ ์ข…๋ฅ˜๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. gradient.locations๋Š” ๊ทธ๋ผ๋ฐ์ด์…˜์ด ์–ด๋Š ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐˆ์ง€ ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. startPoint์™€ endPoint๋Š” ๊ฐ ๊ฐ ์‹œ์ž‘์ ๊ณผ ๋์ ์„ ์ •ํ•ด์ฃผ๋Š” ๊ฒ๋‹ˆ๋‹ค. frame์€ ํ•ด๋‹น view์— ๋งž๊ฒŒ ๋งž์ถฐ์ฃผ๋Š” bounds๋ฅผ ์จ์ฃผ์‹œ๊ณ  ํ•ด๋‹น view์˜ layer์— addSublayer๋กœ .. 2020. 5. 27.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์œ„์žฅ Swift ์œ„์žฅ darklight sublimevimemacs Swift ๋ฌธ์ œ ์„ค๋ช… ์ŠคํŒŒ์ด๋“ค์€ ๋งค์ผ ๋‹ค๋ฅธ ์˜ท์„ ์กฐํ•ฉํ•˜์—ฌ ์ž…์–ด ์ž์‹ ์„ ์œ„์žฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜ท์ด ์•„๋ž˜์™€ ๊ฐ™๊ณ  ์˜ค๋Š˜ ์ŠคํŒŒ์ด๊ฐ€ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ธด ์ฝ”ํŠธ, ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ ๋ฅผ ์ž…์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๋‚ ์€ ์ฒญ๋ฐ”์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๊ฑฐ๋‚˜ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ ๋Œ€์‹  ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค๋ฅผ ์ฐฉ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ข…๋ฅ˜์ด๋ฆ„ ์–ผ๊ตด ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค ์ƒ์˜ ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ  ํ•˜์˜ ์ฒญ๋ฐ”์ง€ ๊ฒ‰์˜ท ๊ธด ์ฝ”ํŠธ ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด clothes๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ์˜ท์˜ ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ clothes์˜ ๊ฐ ํ–‰์€ [์˜์ƒ์˜ ์ด๋ฆ„, ์˜์ƒ์˜ ์ข…๋ฅ˜]๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ์˜ ์ˆ˜๋Š” 1๊ฐœ ์ด์ƒ 30๊ฐœ ์ดํ•˜์ž….. 2020. 5. 18.
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ˆซ์ž์•ผ๊ตฌ Swift ๋ฌธ์ œ ์„ค๋ช… ์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„์ด๋ž€ 2๋ช…์ด ์„œ๋กœ๊ฐ€ ์ƒ๊ฐํ•œ ์ˆซ์ž๋ฅผ ๋งž์ถ”๋Š” ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค. ๊ฐ์ž ์„œ๋กœ ๋‹ค๋ฅธ 1~9๊นŒ์ง€ 3์ž๋ฆฌ ์ž„์˜์˜ ์ˆซ์ž๋ฅผ ์ •ํ•œ ๋’ค ์„œ๋กœ์—๊ฒŒ 3์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๋ถˆ๋Ÿฌ์„œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ† ๋Œ€๋กœ ์ƒ๋Œ€๊ฐ€ ์ •ํ•œ ์ˆซ์ž๋ฅผ ์˜ˆ์ƒํ•œ ๋’ค ๋งžํž™๋‹ˆ๋‹ค. * ์ˆซ์ž๋Š” ๋งž์ง€๋งŒ, ์œ„์น˜๊ฐ€ ํ‹€๋ ธ์„ ๋•Œ๋Š” ๋ณผ * ์ˆซ์ž์™€ ์œ„์น˜๊ฐ€ ๋ชจ๋‘ ๋งž์„ ๋•Œ๋Š” ์ŠคํŠธ๋ผ์ดํฌ * ์ˆซ์ž์™€ ์œ„์น˜๊ฐ€ ๋ชจ๋‘ ํ‹€๋ ธ์„ ๋•Œ๋Š” ์•„์›ƒ ์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์˜ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์œผ๋ฉด A : 123 B : 1์ŠคํŠธ๋ผ์ดํฌ 1๋ณผ. A : 356 B : 1์ŠคํŠธ๋ผ์ดํฌ 0๋ณผ. A : 327 B : 2์ŠคํŠธ๋ผ์ดํฌ 0๋ณผ. A : 489 B : 0์ŠคํŠธ๋ผ์ดํฌ 1๋ณผ. ์ด๋•Œ ๊ฐ€๋Šฅํ•œ ๋‹ต์€ 324์™€ 328 ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์งˆ๋ฌธํ•œ ์„ธ ์ž๋ฆฌ์˜ ์ˆ˜, ์ŠคํŠธ๋ผ์ดํฌ์˜ ์ˆ˜, ๋ณผ์˜ ์ˆ˜๋ฅผ ๋‹ด์€ 2์ฐจ์› ๋ฐฐ์—ด baseba.. 2020. 5. 18.
[Firebase iOS] ํŒŒ์ด์–ด๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜(Firebase Transaction) Swift ์˜ค๋Š˜์€ ํŒŒ์ด์–ด๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๊ฐ€ ๋ด…์‹œ๋‹ค. ๋จผ์ € ํŠธ๋žœ์žญ์…˜์ด๋ž€ 1๊ฐœ ์ด์ƒ์˜ ๋ฌธ์„œ์— ๋Œ€ํ•œ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์ž‘์—…์˜ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๋ฌธ์„œ์— ๋‚˜ํƒ€๋‚˜์žˆ๋Š”๋ฐ์š”. ํŠธ๋žœ์žญ์…˜์ด๋ž€ ์šฉ์–ด๋Š” ๋จผ์ € ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋™์•ˆ์— ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•˜๋ฉด ์ธ์Šคํƒ€๊ทธ๋žจ์˜ ์ข‹์•„์š” ํ•˜ํŠธ๋ชจ์–‘ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ข‹์•„์š” ํ•˜ํŠธ๋ชจ์–‘์„ ๋งŒ์•ฝ ๋™์‹œ์— ์—ฌ๋Ÿฌ์‚ฌ๋žŒ์ด ๋ˆŒ๋ €์„ ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ์™„๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ์„ ๊ธˆ์ง€ํ•˜๊ณ  ์™„๋ฃŒ๊ฐ€ ๋˜๋ฉด ๊ทธ ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ํ˜•์‹์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ํ•œ๋ฒˆ ์ข‹์•„์š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด๋ณผ๊นŒ์š”? ๋จผ์ € ํŒŒ์ด์–ด์Šคํ† ์–ด์—์„œ ์ธ์Šคํƒ€๊ทธ๋žจ์ด๋ผ๋Š” ์ฝœ๋ ‰์…˜์— ์ข‹์•„์š”๋ผ๋Š” ๋ฌธ์„œ๋ฅผ ๋งŒ๋“  ๋’ค ํ•„๋“œ๊ฐ’์œผ๋กœ like์™€ ๊ฐฏ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ค.. 2020. 5. 15.
728x90
๋ฐ˜์‘ํ˜•