Topic
โข
๋๋ํ ์จ๋ผ์ธ ์ผํ ๋ฆฌ๋ง์ธ๋
Summary
๊ฐํน ๊ตฌ๋งคํ๊ธฐ๋ก ํ๋ ๋ฌผํ์ ๊น๋จน์ด ๊ณจ์น ์ํ ๋ ์ ์ด ๋ง์๋๋ฐ, ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฌผํ์ ๋ฑ๋กํด๋๋ฉด ์ฃผ๊ธฐ์ ์ผ๋ก ํธ์ ์๋ฆผ์ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ๋ฌผํ ๊ตฌ๋งค๋ฅผ ์์ง ์๋๋ก ๋์์ฃผ๋ ์๋น์ค์
๋๋ค. ๋ง์ฝ ์ผํ๋ชฐ ๋งํฌ๋ฅผ ๋ณต์ฌํด๋ ์ฑ ์ฑ์ ํค๊ฒ ๋๋ฉด, ์๋์ผ๋ก ๋ฌผํ์ ์ธ์ํ์ฌ ๋ฑ๋ก ํ์ด์ง๋ก ์๋ดํด์ฃผ์ด ํธ์์ฑ์ ๊ฐ์กฐํ์ต๋๋ค.
Key Function
โข
๊ตฌ๋งคํ ๋ฌผํ์ ์ด๋ฆ, ์ด๋ฏธ์ง, ๊ฐ๊ฒฉ, ๋ฉ๋ชจ, ์ค์๋ ๋ฑ์ ์
๋ ฅํ์ฌย ์ฑ์ ๋ฑ๋กย -ย ๊ตฌํ์๋ฃ
โข
์ฌ์ฉ์๊ฐ ๋ฑ๋กํด๋ ๋ฌผํ์ ์ต์ ์, ์ค์๋์, ๊ฐ๊ฒฉ์์ผ๋ก ์ ๋ ฌํ์ฌ ๋ณด์ฌ์ค -ย ๊ตฌํ์๋ฃ
โข
์ฌ์ฉ์๊ฐ ๋ฑ๋กํด๋ย ๋ฌผํ ํค์๋ ๊ฒ์ย ๊ธฐ๋ฅ ์ ๊ณต -ย ๊ตฌํ์๋ฃ
โข
์์ง ๊ตฌ๋งคํ์ง ์์ ๋ฌผํ์ ๋ํ์ฌย ์ ๊ธฐ์ ์ผ๋กย ํธ์์๋ฆผ ์ ๊ณต
โข
ํด๋ฆฝ๋ณด๋์ ์ผํ๋ชฐ ๋งํฌ๊ฐ ๊ฐ์ง๋๋ฉด,ย ๋ฌผํ ์ ๋ณด๋ฅผ ์๋์ผ๋ก ์ฑ์์ค(Open Graph ํ์ฑ)
Tech Stack
Swiftย ,ย ViewModelย ,ย CoreDataย ,ย Combineย ,ย CombineCocoaย ,ย OpenGraph,ย Differ
Architecture
โข
MVVM
Part
โข
๊ฐ์ธ ํ๋ก์ ํธ(๊ฐ๋ฐ)
Learned
โข
MVVM ํจํด์ ์ฒ์์ผ๋ก ๋์
ํด๋ณด๋ฉฐ,ย ํจํด์ ๋ํ ์ดํด๋ฅผ ๋์ผ ์ ์์์.
โข
*Combine**ย ์ ์ฌ์ฉํ์ฌย ViewController์ ์์กด๋๋ฅผ ๋ฎ์ถ๋ ์์
์ ์งํํด๋ณด์๊ณ , ๊ทธ ๊ณผ์ ์์์ย ViewModel์ ์ญํ ย ๋ํ ๋ฐฐ์ธ ์ ์์์.
โข
๋น๋๊ธฐ ์์
์ ๊ทธ๋ฅย *DispatchQueue**ย ๋ง ์ฌ์ฉํ๋ฉด ๋ค ๋๋์ค ์์์ ๋ง ๋ฃ๋ ๋ฐ๋์ ์ฌ๋ฌ ๋์๋ค์ด ๊ผฌ์ฌ ๋๋ ์ด๊ฐ ์๊ฒผ์์ง๋ง, ๊ฐย ๋ชฉ์ ์ ๋ฐ๋ผ ๋น๋๊ธฐ ์ฒ๋ฆฌย ๊ตฌํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ๊ทน๋ณตํจ.
โข
SearchBar์ ๊ฒ์ ํ
์ย *debounceย ๋ก ์ฒ๋ฆฌํด๋ณด๋ฉด์ย *Combineย ์ ์คํผ๋ ์ดํฐ๋ค์ ์ฌ์ฉํด๋ณผ ์ ์์์.