Deep_Dev
article thumbnail
[SwiftUI] NavigationStack
๐ŸŽ iOS/SwiftUI 2024. 4. 4. 22:06

โœ… ๊ธฐ์กด์˜ ๋ฐฉ์‹ : NavigationView ๊ธฐ์กด์—๋Š” NaivgationView์™€ NavigationLink๋ฅผ ํ†ตํ•ด ํƒ€์ดํ‹€๊ณผ ๋ทฐ๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ์‹์œผ๋กœ ์‚ฌ์šฉ์ด ๋๋‹ค. var body: some View{ NavigationView { NavigationLink { ๋ทฐ(color: .red, order: 1) } label: { Text("ํƒ€์ดํ‹€") } } } ๐Ÿ’ก Stack์œผ๋กœ ๋ฐ”๋€Œ๋ฉด์„œ NavigationView์˜ ์–ด๋–ค ๋‹จ์ ์„ ๊ทน๋ณตํ–ˆ๋Š”์ง€ ? NavigationView์˜ ์ฃผ์š” ๋‹จ์  ์ค‘ ํ•˜๋‚˜๋Š” SwiftUI์—์„œ ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์•ฑ์˜ ๊ฒฝ์šฐ์—๋„ ๋ชจ๋“  ๋ทฐ๊ฐ€ ๋‚ด๋น„๊ฒŒ์ด์…˜ ์Šคํƒ์— ์ž๋™์œผ๋กœ ํ‘ธ์‹œ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ, NavigationView๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‚ด๋น„๊ฒŒ์ด์…˜ ๋ง‰๋Œ€์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๊ธฐ๋Šฅ์„..

[SwiftUI] Property Wrapper โ‘ก
๐ŸŽ iOS/SwiftUI 2024. 3. 27. 19:30

โœ… Property Wrapper ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ์‹ธ ํŠน๋ณ„ํ•œ ํƒ€์ž…์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด๋ณด๋ฉด, ์–ด๋–ค ๋กœ์ง๋“ค์„ ๋งค๋ฒˆ ๋™์ผํ•˜๊ฒŒ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š๊ณ  Property Wrapper๋กœ ๋งŒ๋“  ํƒ€์ž…์œผ๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ ์–ธํ•ด ๋™์ผ ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค. โœ… Property Wrapper๊ฐ€ ์—†๋‹ค๋ฉด ? struct House { private var width = 0 var size: Int { get { return width } set { width = pow(newValue, 20) } } } struct KoreaHouse { private var _appartment = House() private var _villa = House() var appartmentSize: Int { get { return _appar..

[SwiftUI] ํ”„๋กœํผํ‹ฐ๋ž˜ํผ ์ •๋ฆฌ
๐ŸŽ iOS/SwiftUI 2024. 3. 17. 17:54

โœ… Property Wrapper ์†์„ฑ(Property)์— ์ถ”๊ฐ€์ ์ธ ํ–‰๋™์ด๋‚˜ ๊ณ„์‚ฐ์„ ๋ง๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ตฌ์กฐ์ด๋‹ค. ํ”„๋กœํผํ‹ฐ ๋ž˜ํผ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ๋กœ์ง์ด๋‚˜ ๊ณ„์‚ฐ์„ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. โœ… PreView ( ์š”์•ฝ ) @State : ๋ทฐ ๋‚ด๋ถ€์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ๋กœ์ปฌ ์ƒํƒœ๊ฐ’ ์ €์žฅ @Binding : ๋ถ€๋ชจ ๋ทฐ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๊ฐ’์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๊ฐ€์ง @ObservedObject : ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๊ณ  ๋ทฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. @EnvironmentObject : ์•ฑ ์ „์ฒด์—์„œ ๊ณต์œ ๋˜๋Š” ์ƒํƒœ ๊ฐ์ฒด ์‚ฌ์šฉ @Published : ObservableObject์˜ ์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ๋•Œ View๋ฅผ ์ž๋™ ๋ฆฌํ”„๋ ˆ์‹œ @AppStorage : UserDefaults์— ๊ฐ’์„ ์ €์žฅํ•˜๊ณ  ..

article thumbnail
[์•„ํ‚คํ…์ฒ˜ํŒจํ„ด][iOS] MVVMํŒจํ„ด
๐ŸŽ iOS/Design Pattern 2024. 3. 12. 23:39

์ด ํฌ์ŠคํŒ…์€ Udemy "MVVM Design Pattern in iOS Using SwiftUI" ๊ฐ•์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑ๋œ ๊ฒƒ์ด๋ฉฐ ๋ชจ๋“  ๋‚ด์šฉ์˜ ์ €์ž‘๊ถŒ์€ ๊ฐ•์˜์˜ ์›์ž‘์ž์ธ Mohammad Adam ์—๊ฒŒ ์žˆ์Œ์„ ๋ฐํž™๋‹ˆ๋‹ค. โœ… MVVM ํŒจํ„ด์ด๋ž€ Model - View - ViewModel๋กœ ๋‚˜๋‰œ๋‹ค. ํ™”๋ฉด์„ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š”๊ฒƒ์ด MVVM์˜ ํ•ต์‹ฌ์ด๋‹ค. ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ View๊ฐ€ ViewModel ๊ฐ’์„ ๊ด€์ฐฐํ•˜์—ฌ ๋ณ€ํ™”๋ฅผ ๋ฐ˜์˜ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, ๋ฒ„ํŠผ ํด๋ฆญ์„ ํ–ˆ์„ ๋•Œ ๋‹ค์Œ ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜์˜ค๋Š” ๋™์ž‘์„ ํ•œ๋‹ค๊ณ  ์นœ๋‹ค. MVC๋Š” ๋ฒ„ํŠผ์ด ๋ˆŒ๋ฆฌ๋ฉด ์ด๋ฏธ์ง€๋ฅผ "๋ฐ”๊พผ๋‹ค"์˜ ๊ฐœ๋…์ด๋ผ๋ฉด, MVVM์€ ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ๋ทฐ๋ชจ๋ธ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋€Œ๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋€Œ๋‹ˆ ์ด๋ฏธ์ง€๋„ "์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐ”๋€Œ์–ด์ง„๋‹ค"๋Š” ๊ฐœ๋…์ด๋‹ค...

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JAVA] Level 1 : ์„ฑ๊ฒฉ ์œ ํ˜• ๊ฒ€์‚ฌํ•˜๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/118666 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๊ฐ ์œ ํ˜•์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋„ฃ๊ณ , ๊ฐ ์œ ํ˜•๋ณ„๋กœ ์ ์ˆ˜ํŒ์„ ๊ณ„์‚ฐํ•œ ๋ฐฐ์—ด๋„ ์ƒ์„ฑํ•ด์ฃผ๊ณ  choices์˜ ๊ฐ’๋“ค์€ ๋ฐ”๋กœ index๋กœ ๊ณ„์‚ฐํ•ด์„œ ์ ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. ( ์ ์ˆ˜ ๋ฐฐ์—ด score๋„ ์ƒ์„ฑ ) 2๊ฐ€์ง€ ์œ ํ˜•๋งˆ๋‹ค ๊ณ„์† ๋น„๊ตํ•˜๋‹ˆ๊นŒ, ์™ผ์ชฝ์˜ ์œ ํ˜•์˜ ์ ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ• ๋–„๋Š” 1~3์ ์ผ๋•Œ๊ณ , ์˜ค๋ฅธ์ชฝ์œ ํ˜•์˜ ์ ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ• ๋–„๋Š” 5~7์ ์ด๋‹ˆ ๊ทธ ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‚˜๋ˆ„์–ด์„œ ํ˜„์žฌ ์ถ”๊ฐ€๋  ์œ ํ˜•์˜ calc์˜ index๋ฅผ ์ฐพ์•„์„œ ca..

article thumbnail
[Git/Github] ํ˜‘์—… ์‹œ๋‚˜๋ฆฌ์˜ค
๐Ÿ’ป/Git&Github 2024. 3. 11. 00:25

ํ˜‘์—…์˜ ์„ธ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค 1. ๋‚ด ๋กœ์ปฌ์ €์žฅ์†Œ๋Š” ๋ณ€ํ–ˆ๋Š”๋ฐ ์›๊ฒฉ ์ €์žฅ์†Œ๋Š” ๋ณ€ํ•จ ์—†๋Š” ๊ฒฝ์šฐ 2. ๋‚ด ๋กœ์ปฌ์ €์žฅ์†Œ๋Š” ๋ณ€ํ•จ ์—†๋Š”๋ฐ ์›๊ฒฉ ์ €์žฅ์†Œ๋Š” ๋ณ€ํ•œ ๊ฒฝ์šฐ 3. ๋‚ด ๋กœ์ปฌ์ €์žฅ์†Œ๋„ ๋ณ€ํ–ˆ๋Š”๋ฐ ์›๊ฒฉ ์ €์žฅ์†Œ๋„ ๋ณ€ํ•œ ๊ฒฝ์šฐ โœ… ์ฒซ๋ฒˆ ์งธ ๊ฒฝ์šฐ ๊ทธ๋ƒฅ push ํ•˜๋ฉด ๊ทธ๋งŒ โœ… ๋‘๋ฒˆ ์งธ ๊ฒฝ์šฐ git pull ๋กœ ๋™๊ธฐํ™” ํ›„ push ํ•˜๊ธฐ โœ… ์„ธ๋ฒˆ ์งธ ๊ฒฝ์šฐ ๋‚ด๊ฐ€ ๋‚ด ๋กœ์ปฌ์ €์žฅ์†Œ์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์™€์„œ ๋˜ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ์ด๋‹ค. 1. rebase 2. pull request (-> merge) "๋‚ด๊ฐ€ ๋ฐฉ๊ธˆ ์ƒˆ ๋ณ€ํ™”๋ฅผ ๋งŒ๋“ค์–ด๋ƒˆ๋Š”๋ฐ, ๋‚ด ์ƒˆ ๋ฒ„์ „์„ ๋ฐ›์•„์ค˜" "์Šน์ธ" -> merge โœ… ๋‚˜๋Š” ๋ณ€ํ•จ์—†๊ณ  ์›๊ฒฉ์ด ๋ณ€ํ•œ ๊ฒฝ์šฐ : pull & push ์›๊ฒฉ์ €์žฅ์†Œ ์—ฐ๊ฒฐ : git remote add origin git push -u origin m..

article thumbnail
[Git/Github] Github ํ˜‘์—… : remote / push / pull / fetch / clone
๐Ÿ’ป/Git&Github 2024. 3. 10. 21:26

์›๊ฒฉ์ €์žฅ์†Œ : ๊ทธ์ € ๋˜ ๋‹ค๋ฅธ Repository (์ €์žฅ์†Œ ) ํ˜‘์—… : Repository๋ผ๋ฆฌ์˜ ์ƒํ˜ธ์ž‘์šฉ โœ… ์›๊ฒฉ์ €์žฅ์†Œ(Github)๋ฅผ ํ†ตํ•ด ํ˜‘์—…ํ•˜๊ธฐ Repository๋ผ๋ฆฌ์˜ ์ƒํ˜ธ์ž‘์šฉ ์ข…๋ฅ˜ ์›๊ฒฉ์ €์žฅ์†Œ ์กฐํšŒ(์ถ”๊ฐ€) : git remote ์›๊ฒฉ์ €์žฅ์†Œ ๋ฐ€์–ด๋„ฃ๊ธฐ : git push ์›๊ฒฉ์ €์žฅ์†Œ ๊ฐ–๊ณ ์™€์„œ ํ•ฉ์น˜๊ธฐ : git pull ์›๊ฒฉ์ €์žฅ์†Œ ์ผ๋‹จ ๊ฐ–๊ณ ๋งŒ ์˜ค๊ธฐ : git fetch ์›๊ฒฉ์ €์žฅ์†Œ ๋ณต์‚ฌ : git clone โœ… git remote (-v) v์˜ต์…˜ : ๋‹จ์ถ•์ด๋ฆ„๊ณผ URL๊ฐ™์ด ๋ณด๊ธฐ ๋‚ด ๋กœ์ปฌ Repository์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ณ ์žˆ๋Š”( ํ˜น์€ ์•Œ ์ˆ˜ ์žˆ๋Š” ) ์›๊ฒฉ์ €์žฅ์†Œ๋“ค์˜ ๋ชฉ๋ก์„ ์กฐํšŒ ๐Ÿ“Œ git remote add origin : ์›๊ฒฉ์ €์žฅ์†Œ ์กฐํšŒ(์ถ”๊ฐ€)ํ•˜๊ธฐ url์— ์žˆ๋Š” ์›๊ฒฉ์ €์žฅ์†Œ๋ฅผ origin์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ..

article thumbnail
[Git/Github] diff & revert
๐Ÿ’ป/Git&Github 2024. 3. 10. 19:00

git diff โœ… diff๋ž€ ๋ฌด์—‡์ด๊ณ  ์–ธ์ œ ์‚ฌ์šฉํ•˜๋Š”์ง€ ? git diff : ๋ณ€๊ฒฝ๋‚ด์—ญ๋“ค๋ผ๋ฆฌ์˜ ๋น„๊ต ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์šฐ๋ฆฌ๊ฐ€ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ๋„์ค‘์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. 1. 10๋ฒˆ ์ปค๋ฐ‹์ค‘ 1๋ฒˆ ์ปค๋ฐ‹๊ณผ 2๋ฒˆ ์ปค๋ฐ‹์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค. 2. ์ง€๊ธˆ pushํ•œ commit๊ณผ ์ด์ „ commit์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค. 3. ํ˜„์žฌ staging area์— ์žˆ๋Š” ๋ณ€๊ฒฝ ๋‚ด์—ญ๊ณผ ์ง์ „์˜ commit์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค. 4. branch1 ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” commit๊ณผ main ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” commit์„ ๋น„๊ตํ•˜๊ณ  ์‹ถ๋‹ค. ์ด๋Ÿด ๋•Œ, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ diff์ด๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ํŒจ์น˜๊ฐ„์˜ ์ฐจ์ด์ ์„ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. โœ… ๋‘ ์ปค๋ฐ‹๊ณผ์˜ ๋น„๊ต ํ˜„์žฌ ์ €์žฅ์†Œ์— test.txt ํ•˜๋‚˜ ์žˆ๊ณ  1๋ฒˆ๋ถ€ํ„ฐ 5๋ฒˆ๊นŒ์ง€ commi..