NAVER API HUB ๊ฒ์ ์คํฌ. ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ NAVER API HUB๋ก ๋ธ๋ก๊ทธยท๋ด์คยท์ง์ญยท์นยท์ด๋ฏธ์ง ๋ฑ ๊ฒ์ ๋ฐ ๊ฒ์์ด ํธ๋ ๋ ์กฐํ. "๋ค์ด๋ฒ API HUB", "๋ค์ด๋ฒ ๊ฒ์ API", "๋ธ๋ก๊ทธ ๊ฒ์", "๊ฒ์์ด ํธ๋ ๋" ์์ฒญ์ ํ์ฑํ.
Git Flow ๋ธ๋์นยท์ปค๋ฐ ๊ท์น(๋ณ๊ฒฝ ์์ฝ์ ํ๊ตญ์ด ํ์). ์ปค๋ฐ, ๋ธ๋์น ์์ฑ, Git Flow, ์ปค๋ฐ ๋ฉ์์ง ์์ฑ ์์ฒญ ์ ์ฌ์ฉ.
UIKit MVVM์์ Combine ๋ฐ์ธ๋ฉ, @Published, PassthroughSubject, ObservableObject ์ญํ , sink/cancellables ํจํด. UI ์ํ๋ @Published, ํ๋ฉด ์ด๋/ํ ์คํธ/Alert ๊ฐ์ ์ผํ์ฑ ์ด๋ฒคํธ๋ PassthroughSubject. SwiftUI vs UIKit ObservableObject ์ฐจ์ด, Combine ๋ฐ์ธ๋ฉ ์ค๊ณ ์ ์ฌ์ฉ.
Swift Concurrency ๊ฒฝ๊ณ ์ค์ , @MainActor, Task ๋ฐฐ์น, UIKit MVVM async API ์ค๊ณ. ViewModel, @MainActor, Task, async await, Combine ๋ฐ์ธ๋ฉ, isLoading ์ฒ๋ฆฌ ์ ์ฌ์ฉ.
Swift/iOS MVVM ํจํด ์๋ด. ModelยทViewยทViewModel ๊ตฌ์กฐ, ๋ฐ์ธ๋ฉ(Combine/@Published), ์๋น์ค/์ ์ฅ์ ์ฐ๋ ์ ์ฌ์ฉ.
SwiftUI MVVM์์ @Observable/ObservableObject ์ ํ, @StateObject/@ObservedObject/@EnvironmentObject ์ฌ์ฉ ๊ธฐ์ค, .task/.refreshable์ ์ทจ์ ์ฒ๋ฆฌ, @MainActor ์ํ ๊ฐฑ์ ๊ท์น ์ค๊ณ ์ ์ฌ์ฉ.
์น ๊ฒ์ ๊ธฐ๋ฐ ์กฐ์ฌํ AI ์์ด์ ํธ์ ํ๊ฐ์ ์ค์ด๋ ๊ฒ์ฆ ์ค์ฌ ์ํฌํ๋ก์ฐ. "๊ฒ์ํด์ค", "์กฐ์ฌํด์ค", "์ต์ ์ ๋ณด ์ฐพ์์ค", "๊ทผ๊ฑฐ ์๋ ์์ฝ", "์ฌ์ค ํ์ธ" ๊ฐ์ ์์ฒญ์์ ์ฌ์ฉ.
ํ๊ตญ ๊ณต๊ณต๋ฐ์ดํฐํฌํธ(data.go.kr) API/๋ฐ์ดํฐ์ ๊ฒ์ ์คํฌ. ๊ณต๊ณต๋ฐ์ดํฐ๋ ๊ณต๊ณต API๋ฅผ ์ฐพ๊ฑฐ๋ ์กด์ฌ ์ฌ๋ถ๋ฅผ ๋ฌป๋ ์์ฒญ์ ํ์ฑํ. "~API ์ฐพ์์ค", "~๊ณต๊ณต๋ฐ์ดํฐ ์์ด?", "~๊ด๋ จ API ๋ญ ์์ด?" ๊ฐ์ ํจํด.