๐ 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..
๐ ์ด๊ธฐํ์ ๋ํด์ AppDelegate() init() AppDelegate๋ฅผ ์ด์ฉํ ์ด๊ธฐํ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ค AppDelegate์ ์ญํ (์ง์ ์ )์ ํ๋ ๊ฒ์ด ๋ฐ๋ก ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ถ์ฅ๋์ง๋ ์๋ ๋ฐฉ๋ฒ์ด๋ค. @main struct PushMessageApp: App { var body: some Scene { WindowGroup { ContentView() } } } ์ ์ฝ๋์์ ๋ณด์ด๋ App ํ๋กํ ์ฝ ์์ฒด๊ฐ ์ฑ์ ๊ตฌ์ฑ์ ๋ด๋นํ๋ ๊ตฌ์กฐ์ฒด์ ํ๋กํ ์ฝ์ ์ง์ ํด์ฃผ์ด์ ์ฑ์ ์์(Presenting) ์ง์ ์ ์ ํด์ฃผ๋ ์ญํ ์ ํ๊ฒ ๋๋ค. ๋ํ @main์ ํตํ์ฌ ์ฑ์ด ์์๋๊ณ ๊ฐ์ฅ ๋จผ์ ๋ค์ด๊ฐ์ผํ๋ ๋ถ๋ถ์ ๋ช ์ํด์ฃผ๊ณ ์๊ธฐ ๋๋ฌธ์ AppDelegate๊ฐ ํ์ํ์ง ์๋ค. ๊ทธ๋ฌ๋ ์ฑ์ ์ด๊ธฐํ ์ด์ธ์๋ AppDele..
๐ TreeSet TreeSet TreeSet์ Set ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค๋ก์จ ๊ฐ์ฒด๋ฅผ ์ค๋ณตํด์ ์ ์ฅํ ์ ์๊ณ ์ ์ฅ ์์๊ฐ ์ ์ง๋์ง ์๋๋ค๋ Set์ ์ฑ์ง์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์๋ค. ์ด์ง ํ์ ํธ๋ฆฌ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ถ๊ฐ์ ์ญ์ ์๋ ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆฌ์ง๋ง, ์ ๋ ฌ๊ณผ ๊ฒ์์ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ด์งํ์ํธ๋ฆฌ์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก Nature Ordering์ ์ง์ํ๋ฉฐ ์์ฑ์์ ๋งค๊ฐ๋ณ์๋ก Comparator ๊ฐ์ฒด๋ฅผ ์ ๋ ฅํ์ฌ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ์์๋ก ์ง์ ํด์ค ์๋ ์๋ค. ๋ ๋ ๋ธ๋ ํธ๋ฆฌ : ๋ถ๋ชจ๋ ธ๋๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง๋ ๋ ธ๋๋ ์ผ์ชฝ ์์์ผ๋ก, ํฐ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ๋ ธ๋๋ ์ค๋ฅธ์ชฝ ์์์ผ๋ก ๋ฐฐ์นํ์ฌ ๋ฐ์ดํฐ์ ์ถ๊ฐ๋ ์ญ์ ์ ํธ๋ฆฌ๊ฐ ํ์ชฝ์ผ๋ก ์น์ฐ์ณ์ ธ์์ง ์๋๋ก ๊ท ํ์ ๋ง์ถ์ด์ค๋ค...
๐ CS Study ์ด์์ฒด์ โ ํ๋ก์ธ์ค ( Process ) โ๏ธ ํ๋ก์ธ์ค๊ฐ ๋ฌด์์ธ๊ฐ ? ํ๋ก์ธ์ค๋ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ผ๋ก ๋์คํฌ๋ก๋ถํฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด CPU์ ํ ๋น์ ๋ฐ์ ์ ์๋ ์ํ์ด๋ค. ํ๋ก์ธ์ค๋ ์ด์์ฒด์ ๋ก๋ถํฐ ์ฃผ์ ๊ณต๊ฐ, ํ์ผ, ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ํ ๋น ๋ฐ๋๋ค. โ๏ธํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๊ตฌ์กฐ๋ ์ด๋ป๊ฒ ์๊ฒผ๋ ? ์คํ์์ญ : ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์, ๋ฆฌํด ๊ฐ ๋ฑ์ด ์์๋ก ์ ์ฅ๋์ด ๊ณ ์ ๋ ํฌ๊ธฐ์ ๊ณต๊ฐ์ด๋ค. ์ฃผ๋ก ํจ์๊ฐ ๋ถ๋ ธ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค๊ฐ ํจ์๊ฐ ์ข ๋ฃ๋ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค. ํ ์์ญ : ํ๋ก์ธ์ค๊ฐ ๋์์ค์ ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํ ๋นํ๋ ๊ณต๊ฐ์ด๋ค. ๋ฐ์ดํฐ ์์ญ : ๋ฐ์ดํฐ ์์ญ์๋ ํ๋ก๊ทธ๋จ์ด ์์๋ ๋ ์์ฑ๋๋ ์ ์ญ๋ณ์, ์ ์ ๋ณ์ ๋ฑ์ด ์ ์ฅ๋๋ค. Blocked State Symbol ์์ญ : ๋ฐ์ดํฐ ์์ญ์๋..
๐ฑBrain Buddy โ๏ธ 2023๋ 5์ 17์ผ ~ 2023๋ 6์์ค ( ์ฝ 3์ฃผ ) - ๊ธฐํ - ๊ฐ๋ฐ๊ณผ์ - ์๋ฌ์ฌํญ ๊ธฐํ ์ฌ์ค ๊ธฐํ์๋๋ ํ๋ถ ์์ ์ข ์ด์ ์ ์ด๊ฐ๋ฉฐ ์๊ธฐํ๋ฉฐ ๊ณต๋ถํ๋ ๋์ ๋ชจ์ต์ ๋ ์ฌ๋ฆฌ๊ณ ๊ธฐํํ๊ฒ ๋์๋ค. ์ ๊ณต์์ ์ ์๋ ๋ด์ฉ์ ๋ฐฑ์ง์ ์ฎ๊ฒจ ์ ์ด๊ฐ๋ฉฐ ์ธ์ฐ๊ณ ๋ฌ์๋, ์ด๋ฅผ ๋ค์ ๋น์นธ์ ๋ด๊ฐ ๋ง๋ค์ด์ ์ ์ธ์ ๋ ์ํ ๋ณด๊ณ ์ถ์๋๋ฐ ๋น์นธ์ ๋ง๋ค์๊ฐ์ ์ฐจ๋ผ๋ฆฌ ์กฐ๊ธ ๋ ์ธ์ฐ๋๋ฐ ์ง์ค์ ํด๋ณด๊ณ ์ ํ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ์ฌ์ฉ์๊ฐ ์ค์ค๋ก ๊ณต๋ถํ๋ฉฐ ๋ฐฑ์ง์ ์ ์ ๋ด์ฉ๋ค์ ์ฌ์ง์ผ๋ก ์ฐ์ผ๋ฉด ํด๋น ๋ด์ฉ์ค์์ ๋๋ค์ผ๋ก ๋น์นธ์ ์์ฑํด์ฃผ๋ฉฐ ๋น์นธ ๋ด์ฉ์ ์ฑ์๋ณผ ์ ์๋ ์ฑ์ ์๊ฐํ๊ฒ ๋์๋ค. ๋ํ ์ค์ ๋ก ํ์ ์ด์ฉํด ์ํ์ ๋ณด๋ ๊ฒ๊ณผ ๊ฐ์ ๋๋์ ์ฃผ๊ธฐ ์ํด์ ํ ์คํธ ์ ๋ ฅ๋ณด๋ค๋ ์ ํํ์ฌ์ ์ฌ์ฉํ์ฌ ์ง์ ์ธ ์ ..
๐ ๋น๋ ํด๋ฆฐ Clean Build Folder ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ Image ํ์ผ๋ค์ ์ถ๊ฐํ๊ณ ๊ด๋ฆฌํ๋ ๊ณผ์ ์์ AppIcon ์ด๋ฏธ์ง๋ฅผ ๋ณ๊ฒฝํ๋ ๊ณผ์ ์์ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๋ฅผ ๋ง๋ฌ๋ค. 2๊ฐ์ง ์ค๋ฅ๊ฐ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ๋จ๊ธฐ๋ ํ๋๋ฐ, App ์์ด์ฝ ์ด๋ฏธ์ง๋ฅผ ํฝ์ ๋ณ๋ก ๋ค์ด๋ฐ์์ ํด๋ ๊ทธ๋๋ก ์ถ๊ฐํ์์๋ ์ด์ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ง๋์ Build Success๊ฐ ์ด๋ฃจ์ด์ง์ง ์์๋ค. AppIcon ๋ค์ด๋ฐ๋ ์๋ชป๋์ง์์์๊ณ , 152.png ํ์ผ๋ ์ ์์ ์ผ๋ก ๋์๊ฐ ์์๋ค. ์ด ๋ ํด๊ฒฐ๋ฐฉ๋ฒ์, ์ด๋ฏธ์ง๋ฅผ ๊ต์ฒดํ๊ณ ์๋ก ์ถ๊ฐํ๋ ํ์๋ฅผ ํ์ง๋ง๊ณ Product - Clean Build Folder ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ค. ์ฐพ์๋ณด๋ Xcoce์์ ์์ฒด์ ์ผ๋ก ์ง์ํด์ฃผ๋ ๊ธฐ๋ฅ์ธ๋ฐ, 100% ์๋ฒฝํ๊ฒ ์ง์์ง๋๊ฒ์ ์๋๋ผ๊ณ ํ์ง๋ง ์ด๋ฏธ์ง ๊ด๋ จํ ์๋ฌ..
๐ 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 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ..
๐ 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 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋ก..