
โ ๊ธฐ์กด์ ๋ฐฉ์ : NavigationView ๊ธฐ์กด์๋ NaivgationView์ NavigationLink๋ฅผ ํตํด ํ์ดํ๊ณผ ๋ทฐ๋ฅผ ๋ฃ์ด์ฃผ๋ ์์ผ๋ก ์ฌ์ฉ์ด ๋๋ค. var body: some View{ NavigationView { NavigationLink { ๋ทฐ(color: .red, order: 1) } label: { Text("ํ์ดํ") } } } ๐ก Stack์ผ๋ก ๋ฐ๋๋ฉด์ NavigationView์ ์ด๋ค ๋จ์ ์ ๊ทน๋ณตํ๋์ง ? NavigationView์ ์ฃผ์ ๋จ์ ์ค ํ๋๋ SwiftUI์์ ๋งค์ฐ ๊ฐ๋จํ ์ฑ์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ๋ทฐ๊ฐ ๋ด๋น๊ฒ์ด์ ์คํ์ ์๋์ผ๋ก ํธ์๋์ด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋ํ, NavigationView๋ฅผ ์ฌ์ฉํ ๋ ๋ด๋น๊ฒ์ด์ ๋ง๋์ ๋ํ ์ฌ์ฉ์ ์ ์ ๊ธฐ๋ฅ์..
โ 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..
โ Property Wrapper ์์ฑ(Property)์ ์ถ๊ฐ์ ์ธ ํ๋์ด๋ ๊ณ์ฐ์ ๋ง๋ถ์ฌ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ตฌ์กฐ์ด๋ค. ํ๋กํผํฐ ๋ํผ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณต์กํ ๋ก์ง์ด๋ ๊ณ์ฐ์ ๊ฐ๊ฒฐํ๊ฒ ํํํ ์ ์์ด ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ํฅ์์ํจ๋ค. โ PreView ( ์์ฝ ) @State : ๋ทฐ ๋ด๋ถ์์ ๊ด๋ฆฌ๋๋ ๋ก์ปฌ ์ํ๊ฐ ์ ์ฅ @Binding : ๋ถ๋ชจ ๋ทฐ๋ก๋ถํฐ ๋ฐ์ ๊ฐ์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง @ObservedObject : ์ธ๋ถ ํด๋์ค์ ์ํ๋ฅผ ์ถ์ ํ๊ณ ๋ทฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ค. @EnvironmentObject : ์ฑ ์ ์ฒด์์ ๊ณต์ ๋๋ ์ํ ๊ฐ์ฒด ์ฌ์ฉ @Published : ObservableObject์ ์์ฑ์ ์ ๋ฐ์ดํธํ ๋ View๋ฅผ ์๋ ๋ฆฌํ๋ ์ @AppStorage : UserDefaults์ ๊ฐ์ ์ ์ฅํ๊ณ ..

์ด ํฌ์คํ ์ Udemy "MVVM Design Pattern in iOS Using SwiftUI" ๊ฐ์๋ฅผ ๋ฐํ์ผ๋ก ์์ฑ๋ ๊ฒ์ด๋ฉฐ ๋ชจ๋ ๋ด์ฉ์ ์ ์๊ถ์ ๊ฐ์์ ์์์์ธ Mohammad Adam ์๊ฒ ์์์ ๋ฐํ๋๋ค. โ MVVM ํจํด์ด๋ Model - View - ViewModel๋ก ๋๋๋ค. ํ๋ฉด์ ๋ง๋๋ ์ฝ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๋๊ฒ์ด MVVM์ ํต์ฌ์ด๋ค. ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ์ฌ View๊ฐ ViewModel ๊ฐ์ ๊ด์ฐฐํ์ฌ ๋ณํ๋ฅผ ๋ฐ์ํ๋ค. ์๋ฅผ ๋ค์ด์, ๋ฒํผ ํด๋ฆญ์ ํ์ ๋ ๋ค์ ์ด๋ฏธ์ง๊ฐ ๋์ค๋ ๋์์ ํ๋ค๊ณ ์น๋ค. MVC๋ ๋ฒํผ์ด ๋๋ฆฌ๋ฉด ์ด๋ฏธ์ง๋ฅผ "๋ฐ๊พผ๋ค"์ ๊ฐ๋ ์ด๋ผ๋ฉด, MVVM์ ๋ฒํผ์ ๋๋ ์ ๋ ๋ทฐ๋ชจ๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๊ณ , ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ ์ด๋ฏธ์ง๋ "์์ฐ์ค๋ฝ๊ฒ ๋ฐ๋์ด์ง๋ค"๋ ๊ฐ๋ ์ด๋ค...
https://school.programmers.co.kr/learn/courses/30/lessons/118666 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๊ฐ ์ ํ์ ์์๋๋ก ๋ฐฐ์ด์ ๋ฃ๊ณ , ๊ฐ ์ ํ๋ณ๋ก ์ ์ํ์ ๊ณ์ฐํ ๋ฐฐ์ด๋ ์์ฑํด์ฃผ๊ณ choices์ ๊ฐ๋ค์ ๋ฐ๋ก index๋ก ๊ณ์ฐํด์ ์ ์๋ฅผ ์ถ๊ฐํด์ค๋ค. ( ์ ์ ๋ฐฐ์ด score๋ ์์ฑ ) 2๊ฐ์ง ์ ํ๋ง๋ค ๊ณ์ ๋น๊ตํ๋๊น, ์ผ์ชฝ์ ์ ํ์ ์ ์๋ฅผ ์ถ๊ฐํ ๋๋ 1~3์ ์ผ๋๊ณ , ์ค๋ฅธ์ชฝ์ ํ์ ์ ์๋ฅผ ์ถ๊ฐํ ๋๋ 5~7์ ์ด๋ ๊ทธ ๋๊ฐ์ง ๊ฒฝ์ฐ์ ์๋ฅผ ๋๋์ด์ ํ์ฌ ์ถ๊ฐ๋ ์ ํ์ calc์ index๋ฅผ ์ฐพ์์ ca..

ํ์ ์ ์ธ ๊ฐ์ง ์๋๋ฆฌ์ค 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..

์๊ฒฉ์ ์ฅ์ : ๊ทธ์ ๋ ๋ค๋ฅธ 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์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ถ๊ฐํ๋ ๊ฒ..

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..