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

์ „์ฒด ๊ธ€179

[LeetCode] 1480 Running Sum of 1d Array ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2022. 7. 29.
[Swift] MVVMC ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ - ํŠœํ† ๋ฆฌ์–ผ 3 (๋ฒ„ํŠผ ๋ˆŒ๋Ÿฌ์„œ ํ™”๋ฉด ์ „ํ™˜ํ•˜๊ธฐ) 2022.07.10 - [๐ŸŽ iOS/Architecture Pattern] - [Swift] MVVMC ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ - ํŠœํ† ๋ฆฌ์–ผ 1 2022.07.11 - [๐ŸŽ iOS/Architecture Pattern] - [Swift] MVVMC ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ - ํŠœํ† ๋ฆฌ์–ผ 2 ํ•ด๋‹น ํŠœํ† ๋ฆฌ์–ผ์€ ์œ„ ๊ธ€๊ณผ ์ด์–ด์ง‘๋‹ˆ๋‹ค! ์ด์ „ ํฌ์ŠคํŒ… ๊นŒ์ง€ ๋ณด๊ณ  ์˜ค์…จ๋‹ค๋ฉด AppCoordinator์—์„œ LanindCoordinator๋ฅผ childCoordinator๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ LandingViewController๋ฅผ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ ๊นŒ์ง€ ๋˜์–ด ์žˆ์„๊ฑฐ์—์š”! ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” view์˜ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ํ™”๋ฉด ์ „ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Landing ํ™”๋ฉด์—์„œ Register(ํšŒ์›๊ฐ€์ž…)๊ณผ Login(๋กœ๊ทธ์ธ) ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  .. 2022. 7. 12.
[Swift] MVVMC ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ - ํŠœํ† ๋ฆฌ์–ผ 2 (childCoordinator๋กœ ์ด๋™ํ•˜๊ธฐ) 2022.07.10 - [๐ŸŽ iOS/Architecture Pattern] - [Swift] MVVMC ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ - ํŠœํ† ๋ฆฌ์–ผ 1 ์œ„ ํฌ์ŠคํŒ… ํ›„์— ์ด์–ด์„œ ํ•˜๋Š” ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค ๐Ÿ™Œ๐Ÿป LandingCoordinator AppCoordinator๋Š” ์•ฑ์„ ์ฒ˜์Œ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์ฒซ ํ™”๋ฉด์„ ์–ด๋–ค ํ™”๋ฉด์œผ๋กœ ํ• ์ง€ ๋‹ด๋‹นํ•˜๋Š” Coordinator์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ(dependency)๋ฅผ ์ค€๋น„ํ•˜๊ณ  ๋„คํŠธ์›Œํ‚น์„ ์œ„ํ•œ ๊ฐ์ฒด๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด AppCoordinator์—์„œ Landing ํ™”๋ฉด์„ ๋ณด์—ฌ์ค„ ์ˆ˜๋„ ์žˆ๊ณ , ์ž๋™ ๋กœ๊ทธ์ธ์ด ๋˜์–ด ์žˆ๋‹ค๋ฉด HomeCoordinator๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  LandingCoordinator์„ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. import UIKit class LandingCo.. 2022. 7. 11.
[Swift] MVVMC ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ - ํŠœํ† ๋ฆฌ์–ผ 1 (Coordinator์™€ AppCoordinator ๊ตฌํ˜„ํ•˜๊ธฐ) ๊ทธ ๋™์•ˆ MVVM๊ณผ MVVMC ๊ทธ๋ฆฌ๊ณ  Coordinator์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ MVVM์ด๋‚˜ MVVMC๊ฐ€ ์ƒ์†Œํ•˜์‹œ๋‹ค๋ฉด ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„๊ฑฐ ๊ฐ™์•„์š”! ๋งŒ์•ฝ MVVM์ด ๋ญ”์ง€ ์ž์„ธํžˆ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด ๐Ÿ‘‡ 2022.06.04 - [๐ŸŽ iOS/Architecture Pattern] - [Swift] MVVM ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ธฐ MVVM-C๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด ๐Ÿ‘‡ 2022.06.11 - [๐ŸŽ iOS/Architecture Pattern] - [Swift] MVVMC ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ธฐ Coordinator์˜ ์—ญํ™œ์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ๐Ÿ‘‡ 2022.06.14 - [๐ŸŽ iOS/Architecture Pattern] - [Swift] MVVMC์˜ Coordinator ์•Œ์•„๋ณด๊ธฐ ์šฐ์„  MVVMC ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์€ ๊ต‰์žฅํžˆ ๋งŽ์Šต.. 2022. 7. 10.
[iOS/Swift] UIButton in iOS15 WWDC ์ •๋ฆฌ Buttons 4๊ฐ€์ง€ ๊ธฐ๋ณธ style Button configuration config.image ํ”„๋กœํผํ‹ฐ์—์„œ ์ง€์ •ํ•œ ์ด๋ฏธ์ง€์˜ ์œ„์น˜๋ฅผ imagePlacement๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด ์ค„ ์ˆ˜ ์žˆ์Œ addToCartButton.configurationUpdateHandler = { [unowned self] button in // ์ด๋ฏธ ๋ฒ„ํŠผ์— ์ง€์ •๋˜์–ด ์žˆ๋Š” configuration์„ ๋ฐ›์•„์˜ด var config = button.configuration // ๋ฒ„ํŠผ์ด highligted ๋ฌ์„ ๋•Œ fill์ด๋ฏธ์ง€๋กœ ์ง€์ •ํ•˜๊ณ  ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” outline์ด๋ฏธ์ง€๋ฅผ ์ ์šฉ config?.image = button.isHighlighted ? UIImage(systemName: "cart.fill.badge.plus") :.. 2022. 6. 29.
[Swift] UIButton ์ˆ˜์ง์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ with Configuration ์ด๋ ‡๊ฒŒ ๊ทธ๋ฆผ๊ณผ ๊ธ€์ž๊ฐ€ ์ˆ˜์ง์œผ๋กœ ๋ฐฐ์น˜๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ๋Š”๋ฐ ์ด๋•Œ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ˆ˜์ง ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค ์ถœ์ฒ˜ https://velog.io/@ezidayzi/iOS-UIButton-title-image-align-%ED%95%98%EA%B8%B0 [iOS] UIButton title , image vertical align ํ•˜๊ธฐ UIButton๋ฅผ extesionํ•ด์„œ ์•ˆ์— ๋„ฃ์–ด๋‘๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๋‹ค.๐Ÿ˜ณ velog.io extension UIButton { func alignTextBelow(spacing: CGFloat = 8.0) { guard let image = self.imageView?.image else { return } guard let titleLabel = self.titleLa.. 2022. 6. 28.
[iOS/Swift] UICollectionViewCell ์•Œ์•„๋ณด๊ธฐ ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2022. 6. 27.
[iOS] Notification Service Extension์™€ Firebase ์ •๋ฆฌ UNNotificationServiceExtension ์›๊ฒฉ ํ‘ธ์‹œ ๋…ธํ‹ฐํ”ผ์ผ€์ด์…˜์˜ ์ปจํ…์ธ ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฐ์ฒด. ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ๋˜๊ธฐ ์ „์— ์ˆ˜ํ–‰๋จ class UNNotificationServiceExtension : NSObject notification service ์•ฑ ๊ธฐ๋Šฅ ํ™•์žฅ => ์‚ฌ์šฉ์ž์—๊ฒŒ remote notification ์ด ์ „๋‹ฌ๋˜๊ธฐ ์ด์ „์— ์ปจํ…์ธ ๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ UI๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์Œ notification ์ด ์‚ฌ์šฉ์ž์˜ ๊ธฐ๊ธฐ์— ์ „๋‹ฌ๋˜๋ฉด ๋Ÿฐ์นญ๋จ notification ์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ์ง€, ๋น„๋””์˜ค ๋“ฑ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์•”ํ˜ธํ™” ํ˜น์€ ๋ณตํ˜ธํ™”๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Œ silent notification, ์‚ฌ์šด๋“œ๋งŒ ์žฌ์ƒ์‹œํ‚ค๊ธฐ, ์•ฑ ์•„์ด์ฝ˜์— ํ‘œ์‹œ๋˜๋Š” ๋ฑƒ์ง€๋Š” ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ UNNotifica.. 2022. 6. 15.
[Swift] MVVMC์˜ Coordinator ์•Œ์•„๋ณด๊ธฐ ๊ธฐ์กด MVVM์—์„œ ํ™”๋ฉด ์ „ํ™˜ ๋กœ์ง ์ฆ‰, navigation ๋กœ์ง์„ ๋งก์•„ํ•˜๋Š” Coordinator๊ฐ€ MVVMC์—์„œ ํ•ต์‹ฌ์ด์ง€ ์•Š์„๊นŒ ์‹ถ์Šต๋‹ˆ๋‹ค ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ Coordinator๊ฐ€ ๋ฌด์—‡์ด๊ณ  Child Coordinator๋Š” ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ํ˜น์‹œ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด ๊ณต์œ  ๋ถ€ํƒ๋“œ๋ ค์š”!! ๋งŒ์•ฝ MVVMC๊ฐ€ ์ฒ˜์Œ์ด๋ผ๋ฉด ์•„๋ž˜ ๊ธ€์„ ๋จผ์ € ๋ณด๊ณ  ์˜ค์‹œ๋ฉด ๋„์›€์ด ๋ ๊ฑฐ ๊ฐ™์•„์š”! 2022.06.11 - [๐ŸŽ iOS/Architecture Pattern] - [Swift] MVVMC ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ธฐ โญ๏ธ ํ™”๋ฉด ์ „ํ™˜์„ ๋‹ด๋‹นํ•˜๋Š” Coordinator ์šฐ์„  Coordinator๊ฐ€ ๋ฌด์Šจ ์—ญํ™œ์„ ํ•˜๋Š”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค! MVC ๋Š” Massive View Controller๋ผ ๋ถˆ๋ฆด ๋งŒํผ ViewController์˜ ์—ญ.. 2022. 6. 14.
[Swift] UITextField borderStyle ํ…์ŠคํŠธ ํ•„๋“œ ํ…Œ๋‘๋ฆฌ ์„ค์ • UITextField.BorderStyle UITextField์˜ ํ…Œ๋‘๋ฆฌ ์œ ํ˜•์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ none idTextField.borderStyle = .none default๋กœ .none ํƒ€์ž… ํ…Œ๋‘๋ฆฌ ์˜์—ญ์ด ์•„๋ฌด๊ฒƒ๋„ ์„ค์ • ๋˜์ง€ ์•Š์€์ฑ„ ๋‚˜ํƒ€๋‚จ line idTextField.borderStyle = .line ํ…Œ๋‘๋ฆฌ ์˜์—ญ์ด ํ•œ์ค„๋กœ ๋‚˜ํƒ€๋‚จ bazel idTextField.borderStyle = .bezel ์ž…์ฒด๊ฐ์ด ์žˆ๋Š” ๋ฒ ์ ค ์Šคํƒ€์ผ๋กœ ํ…์ŠคํŠธ ํ•„๋“œ ์˜์—ญ ํ‘œ์‹œ ์ „ํ˜•์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ์˜์—ญ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์Šคํƒ€์ผ roundedRect idTextField.borderStyle = .roundedRect ๋ผ์šด๋“œ๋ฅผ ๊ฐ€์ง„ ๋ชจ์„œ๋ฆฌ ์Šคํƒ€์ผ๋กœ ํ…์ŠคํŠธ ํ•„๋“œ ์˜์—ญ์„ ํ‘œ์‹œํ•จ idTextField.layer.borderCol.. 2022. 6. 13.
[Swift] MVVMC ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ธฐ MVVMC ๋Š” ๊ธฐ์กด MVVM ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์— Coordinator์„ ์ถ”๊ฐ€ํ•œ ์กฐํ•ฉ MVVMC, MVVM-C, MVVM Coordinator ํŒจํ„ด์ด๋ผ๊ณ ๋„ ํ•จ MVVM์—์„œ ํ™”๋ฉด ์ „ํ™˜(navigation) ๊ธฐ๋Šฅ์„ Coordinator๊ฐ€ ๋งก์•„ ์ฒ˜๋ฆฌํ•จ MVVM ์ด ์ฒ˜์Œ์ด๋ผ๋ฉด ๐Ÿ‘‡ 2022.06.07 - [๐ŸŽ iOS/Architecture Pattern] - [Swift] MVVM ์‘์šฉํŽธ MVVM+C ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋”ฑ ์ •ํ•ด์ ธ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Coordinator ์—ญํ™œ ์•ˆ์—์„œ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋‹ค์–‘ํ•˜๊ฒŒ ์กด์žฌํ•˜๋”๋ผ๊ตฌ์š” ์ƒ๊ฐ๋ณด๋‹ค ๋ณต์žกํ•œ ๋ถ€๋ถ„๋“ค์ด ๋งŽ์•„์„œ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ์šฐ์„  Coordinator์˜ ์—ญํ™œ ์ดํ•ดํ•˜๊ธฐ! MVVM+C ์‚ดํŽด๋ณด๊ธฐ โญ๏ธ Model ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ •์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ•„์š”ํ•œ .. 2022. 6. 11.
[Swift] MVVM ์‘์šฉํŽธ RxSwift + MVVM์„ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ RxSwift๊ฐ€ ์—†๋Š” MVVM์„ ์‚ฌ์šฉํ•˜๋‹ˆ RxSwift ์˜ ์žฅ์ ์ด ํ™•์‹คํžˆ ๋Š๊ปด์ง€๋Š”๊ฑฐ ๊ฐ™์•„์š” ์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ MVVM์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋‘์—ˆ๋Š”๋ฐ ๐Ÿ‘‡ 2022.06.04 - [๐ŸŽ iOS/Architecture Pattern] - [Swift/Architecture] MVVM ์ดํ•ดํ•˜๊ธฐ MVVM์€ Model - View - ViewModel๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ๋‹ค๊ฐ€ ์•„๋‹Œ View์™€ ViewModel์˜ ์ƒํ˜ธ ์ž‘์šฉ์— ๋Œ€ํ•ด์„œ ๋” ๊นŠ๊ฒŒ ๋‹ค๋ค„ ๋ณผ ํ•„์š”๊ฐ€ ์žˆ์–ด์„œ ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค ๐Ÿฆ‘ MVC์˜ ๋ฌธ์ œ์  ๊ธฐ์กด MVC์˜ ๊ฒฝ์šฐ Massive ViewController์˜ ์•ฝ์ž์ด๋‹ค~ ๋ผ๋Š” ๋ง์ด ์žˆ์„ ์ •๋„๋กœ ViewController์˜ ์—ญํ™œ์ด ์ปธ์Šต๋‹ˆ๋‹ค UI๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์‚ฌ์šฉ์ž์˜ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›๊ณ , ๋น„์ฆˆ.. 2022. 6. 7.