Deep_Dev
[iOS][SwiftUI] @main @UIApplicationMain
๐ŸŽ iOS/SwiftUI 2023. 12. 28. 22:51

๐Ÿ“š main & UIApplication @main ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์–ด๋Š ํ”„๋กœ๊ทธ๋žจ์ด๋“ ์ง€ ์‹œ์ž‘์ ์ธ Entry Point๊ฐ€ ์กด์žฌํ•ด์•ผํ•œ๋‹ค. Swift์—์„œ๋Š” @main์„ ํ†ตํ•ด์„œ ์–ด๋””์„œ๋ถ€ํ„ฐ ์ด ์•ฑ์ด ์ตœ์ดˆ ์‹คํ–‰๋˜๊ณ  ์‹œ์ž‘๋ ์ง€๋ฅผ ๋ช…์‹œํ•ด์ฃผ๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค. ์ด ํ‚ค์›Œ๋“œ๋Š” Swift 5.3 ์ด์ƒ(Xcode 12)๋ถ€ํ„ฐ ์‚ฌ์šฉ๋œ ํ‚ค์›Œ๋“œ๋กœ ๋ฐ”๋กœ ์ด์–ด์„œ ์„ค๋ช…ํ•˜๊ฒ ์ง€๋งŒ @main ํ‚ค์›Œ๋“œ๊ฐ€ ๋‚˜์˜ค๊ธฐ ์ „์—๋Š” @UIApplcationMain ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. > UIKit์˜ ๊ฒฝ์šฐ AppDelegate๊ฐ€ ์‚ฌ์‹ค์ƒ App Life Cycle์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ชจ๋“  ์ฃผ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์— @main ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™๋Š”๋‹ค. import UIKit @main class AppDelegate: UIResponder, UIApplicationDelegate..

article thumbnail
[iOS][SwiftUI] Init ()
๐ŸŽ iOS/SwiftUI 2023. 12. 28. 22:11

๐Ÿ“š ์ดˆ๊ธฐํ™”์— ๋Œ€ํ•ด์„œ AppDelegate() init() AppDelegate๋ฅผ ์ด์šฉํ•œ ์ดˆ๊ธฐํ™” ์ด ๋ฐฉ๋ฒ•์€ ์‚ฌ์‹ค AppDelegate์˜ ์—ญํ• (์ง„์ž…์ )์„ ํ•˜๋Š” ๊ฒƒ์ด ๋”ฐ๋กœ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ถŒ์žฅ๋˜์ง€๋Š” ์•Š๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. @main struct PushMessageApp: App { var body: some Scene { WindowGroup { ContentView() } } } ์œ„ ์ฝ”๋“œ์—์„œ ๋ณด์ด๋Š” App ํ”„๋กœํ† ์ฝœ ์ž์ฒด๊ฐ€ ์•ฑ์˜ ๊ตฌ์„ฑ์„ ๋‹ด๋‹นํ•˜๋Š” ๊ตฌ์กฐ์ฒด์— ํ”„๋กœํ† ์ฝœ์„ ์ง€์ •ํ•ด์ฃผ์–ด์„œ ์•ฑ์˜ ์‹œ์ž‘(Presenting) ์ง€์ ์„ ์ •ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ๋˜ํ•œ @main์„ ํ†ตํ•˜์—ฌ ์•ฑ์ด ์‹œ์ž‘๋˜๊ณ  ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด๊ฐ€์•ผํ•˜๋Š” ๋ถ€๋ถ„์„ ๋ช…์‹œํ•ด์ฃผ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— AppDelegate๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•ฑ์˜ ์ดˆ๊ธฐํ™” ์ด์™ธ์—๋„ AppDele..

article thumbnail
[JAVA][์ž๋ฃŒ๊ตฌ์กฐ] ํŠธ๋ฆฌ์…‹ ( TreeSet )

๐Ÿ“š TreeSet TreeSet TreeSet์€ Set ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋กœ์จ ๊ฐ์ฒด๋ฅผ ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์—†๊ณ  ์ €์žฅ ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” Set์˜ ์„ฑ์งˆ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ถ”๊ฐ€์™€ ์‚ญ์ œ์—๋Š” ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๋” ๊ฑธ๋ฆฌ์ง€๋งŒ, ์ •๋ ฌ๊ณผ ๊ฒ€์ƒ‰์— ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ์— ๊ธฐ๋ณธ์ ์œผ๋กœ Nature Ordering์„ ์ง€์›ํ•˜๋ฉฐ ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Comparator ๊ฐ์ฒด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ •๋ ฌ ๋ฐฉ๋ฒ•์„ ์ž„์˜๋กœ ์ง€์ •ํ•ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ : ๋ถ€๋ชจ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋Š” ์™ผ์ชฝ ์ž์‹์œผ๋กœ, ํฐ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…ธ๋“œ๋Š” ์˜ค๋ฅธ์ชฝ ์ž์‹์œผ๋กœ ๋ฐฐ์น˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€๋‚˜ ์‚ญ์ œ ์‹œ ํŠธ๋ฆฌ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์ ธ์žˆ์ง€ ์•Š๋„๋ก ๊ท ํ˜•์„ ๋งž์ถ”์–ด์ค€๋‹ค...

์šด์˜์ฒด์ œ
๐Ÿ’ป/CS 2023. 12. 12. 15:11

๐Ÿ“š CS Study ์šด์˜์ฒด์ œ โœ… ํ”„๋กœ์„ธ์Šค ( Process ) โœ๏ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€ ? ํ”„๋กœ์„ธ์Šค๋Š” ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋””์Šคํฌ๋กœ๋ถ€ํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋˜์–ด CPU์˜ ํ• ๋‹น์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ์ฃผ์†Œ ๊ณต๊ฐ„, ํŒŒ์ผ, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์„ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค. โœ๏ธํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๊ตฌ์กฐ๋Š” ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋‚˜ ? ์Šคํƒ์˜์—ญ : ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฆฌํ„ด ๊ฐ’ ๋“ฑ์ด ์ž„์‹œ๋กœ ์ €์žฅ๋˜์–ด ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๊ณต๊ฐ„์ด๋‹ค. ์ฃผ๋กœ ํ•จ์ˆ˜๊ฐ€ ๋ถˆ๋ ธ์„ ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํž™ ์˜์—ญ : ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ž‘์ค‘์— ๋™์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ณต๊ฐ„์ด๋‹ค. ๋ฐ์ดํ„ฐ ์˜์—ญ : ๋ฐ์ดํ„ฐ ์˜์—ญ์—๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘๋  ๋•Œ ์ƒ์„ฑ๋˜๋Š” ์ „์—ญ๋ณ€์ˆ˜, ์ •์ ๋ณ€์ˆ˜ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค. Blocked State Symbol ์˜์—ญ : ๋ฐ์ดํ„ฐ ์˜์—ญ์—๋Š”..

article thumbnail
[iOS] ์„ธ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ ( ๋ฏธ์ถœ์‹œ )

๐Ÿ“ฑBrain Buddy โœ๏ธ 2023๋…„ 5์›” 17์ผ ~ 2023๋…„ 6์›”์ค‘ ( ์•ฝ 3์ฃผ ) - ๊ธฐํš - ๊ฐœ๋ฐœ๊ณผ์ • - ์—๋Ÿฌ์‚ฌํ•ญ ๊ธฐํš ์‚ฌ์‹ค ๊ธฐํš์˜๋„๋Š” ํ•™๋ถ€ ์‹œ์ ˆ ์ข…์ด์— ์ ์–ด๊ฐ€๋ฉฐ ์•”๊ธฐํ•˜๋ฉฐ ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚˜์˜ ๋ชจ์Šต์„ ๋– ์˜ฌ๋ฆฌ๊ณ  ๊ธฐํšํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ „๊ณต์„œ์ ์— ์žˆ๋Š” ๋‚ด์šฉ์„ ๋ฐฑ์ง€์— ์˜ฎ๊ฒจ ์ ์–ด๊ฐ€๋ฉฐ ์™ธ์šฐ๊ณ  ๋‚ฌ์„๋•Œ, ์ด๋ฅผ ๋‹ค์‹œ ๋นˆ์นธ์„ ๋‚ด๊ฐ€ ๋งŒ๋“ค์–ด์„œ ์ž˜ ์™ธ์› ๋‚˜ ์‹œํ—˜ ๋ณด๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ๋นˆ์นธ์„ ๋งŒ๋“ค์‹œ๊ฐ„์— ์ฐจ๋ผ๋ฆฌ ์กฐ๊ธˆ ๋” ์™ธ์šฐ๋Š”๋ฐ ์ง‘์ค‘์„ ํ•ด๋ณด๊ณ ์ž ํ–ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์Šค์Šค๋กœ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋ฐฑ์ง€์— ์ ์€ ๋‚ด์šฉ๋“ค์„ ์‚ฌ์ง„์œผ๋กœ ์ฐ์œผ๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์ค‘์—์„œ ๋žœ๋ค์œผ๋กœ ๋นˆ์นธ์„ ์ƒ์„ฑํ•ด์ฃผ๋ฉฐ ๋นˆ์นธ ๋‚ด์šฉ์„ ์ฑ„์›Œ๋ณผ ์ˆ˜ ์žˆ๋Š” ์•ฑ์„ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋˜ํ•œ ์‹ค์ œ๋กœ ํŽœ์„ ์ด์šฉํ•ด ์‹œํ—˜์„ ๋ณด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋Š๋‚Œ์„ ์ฃผ๊ธฐ ์œ„ํ•ด์„œ ํ…์ŠคํŠธ ์ž…๋ ฅ๋ณด๋‹ค๋Š” ์• ํ”ŒํŽœ์Šฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ์“ธ ์ˆ˜ ..

article thumbnail
[iOS] Clean Build Folder
๐ŸŽ iOS/UIKit 2023. 11. 24. 23:54

๐Ÿ“š ๋นŒ๋“œ ํด๋ฆฐ Clean Build Folder ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ Image ํŒŒ์ผ๋“ค์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ AppIcon ์ด๋ฏธ์ง€๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. 2๊ฐ€์ง€ ์˜ค๋ฅ˜๊ฐ€ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ๋œจ๊ธฐ๋„ ํ–ˆ๋Š”๋ฐ, App ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€๋ฅผ ํ”ฝ์…€๋ณ„๋กœ ๋‹ค์šด๋ฐ›์•„์„œ ํด๋” ๊ทธ๋Œ€๋กœ ์ถ”๊ฐ€ํ–ˆ์Œ์—๋„ ์ด์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚˜์„œ Build Success๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜๋‹ค. AppIcon ๋„ค์ด๋ฐ๋„ ์ž˜๋ชป๋˜์ง€์•Š์•˜์—ˆ๊ณ , 152.png ํŒŒ์ผ๋„ ์ •์ƒ์ ์œผ๋กœ ๋Œ์•„๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด ๋•Œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€, ์ด๋ฏธ์ง€๋ฅผ ๊ต์ฒดํ•˜๊ณ  ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ํ–‰์œ„๋ฅผ ํ•˜์ง€๋ง๊ณ  Product - Clean Build Folder ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฐพ์•„๋ณด๋‹ˆ Xcoce์—์„œ ์ž์ฒด์ ์œผ๋กœ ์ง€์›ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ, 100% ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›Œ์ง€๋Š”๊ฒƒ์€ ์•„๋‹ˆ๋ผ๊ณ  ํ•˜์ง€๋งŒ ์ด๋ฏธ์ง€ ๊ด€๋ จํ•œ ์—๋Ÿฌ..

article thumbnail
[Swift] stride ( for๋ฌธ ์ผ์ • ์ˆซ์ž๋งŒํผ ์ฆ๊ฐ€ )

๐Ÿ“š stride for๋ฌธ ์ผ์ • ์ˆซ์ž๋งŒํผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ• stride ๋ฐ˜๋ชฉ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด 1์”ฉ ์ฆ๊ฐ€๊ฐ€ ์•„๋‹Œ 2 ํ˜น์€ 3 ๋“ฑ ์›ํ•˜๋Š” ์ˆซ์ž๋งŒํผ ์ฆ๊ฐ€์‹œ์ผœ์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๊ทธ ๋•Œ, stride๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธํ˜•ํƒœ 2๊ฐ€์ง€ stride(from: , to: , by: ) " 3 6 9 "๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถœ๋ ฅ 12 ์ถœ๋ ฅ X stride(from: , through: , by: ) " 3 6 9 12 "๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ถœ๋ ฅ ๐Ÿ’ก ์ฆ‰, to๋Š” to์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋ฒ”์œ„์ด๊ณ , through๋Š” through์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’์„ ํฌํ•จํ•œ ๋ฒ”์œ„์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์˜ˆ์‹œ ๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/181886 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”..

[Swift] enumerated ( ๋ฐฐ์—ด์˜ index ๊ฐ’ )

๐Ÿ“š enumerated ๋ฐฐ์—ด์˜ index๊ฐ’ ์ฐพ๊ธฐ enumerated ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๊ทธ ์š”์†Œ์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ enumerated()๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ์‹œ var array : [String] = ["A","B","C","D","E'] for (index, value) in arr.enumerated() { print("\index) : \(value)" } // 0 : A // 1 : B // 2 : C // 3 : D // 4 : E ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์‹œ ๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/181886 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋ก..