[iOS] ๋ฉ์ดํธ๋ฌ๋: ์ด๋ฏธ์ง ์บ์ฑ ์ ์ฉ๊ธฐ(๋ฉ๋ชจ๋ฆฌ ์บ์ฑ, ๋์คํฌ ์บ์ฑ ๊ทธ๋ฆฌ๊ณ ETag)
๋ฉ์ดํธ ๋ฌ๋ ์ฑ ๊ฐ๋ฐ ๊ณผ์ ์ ๊ณต์ ํ๋ ํฌ์คํธ์ ๋๋ค!
์ฌ๊ธฐ์ ์ ํฌ ํ๋ก์ ํธ๋ฅผ ๋ ์์ธํ ๋ณผ ์ ์์ด์!
๊ทธ๋ผ ์์ํ๊ฒ ์ต๋๋ค!
๋ฌ๋ฆฌ๊ธฐ ์ฑ์ธ๋ฐ ์บ์ฑ์ด ์ ํ์ํด..?
๋ค ์ ํฌ๋ ๊ทธ๋ด ์ค ์์์ต๋๋ค..
Firebase Firestore์์ ํ๋ฆฌํฐ์ด๋ก ์ ๊ณตํ๋ ์ฉ๋์ ํ๋ฃจ ๋ค์ด๋ก๋ ์ต๋ 1๊ธฐ๊ฐ๋ฐ์ดํธ์ธ๋ฐ ์ด์ฐจํผ ์ ํฌ๋ ํ๋กํ ์ด๋ฏธ์ง ๋ง๊ณ ๋ ์ฌ์ง์ ์ ์ฅํ์ง ์์ผ๋ ํฐ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ฃ ..
๊ทธ๋ฐ๋ฐ ์ฐ๋ ค๊ฐ ํ์ค์ด ๋ฉ๋๋ค.. ๊ฐ๋ฐ์ ํ๋ฉด์ ํ ์คํธํ๋ ์ค์ ๊ฐ์๊ธฐ ์ด๋ฏธ์ง๊ฐ ๋ค์ด๋ก๋๋์ง ์์ผ๋ฉด์ 402๊ฐ ์๋ต ์ฝ๋๋ก ๋์์๊ณ , ํ์ธํด๋ณด๋ ์ฌ์ฉ๋ ์ด๊ณผ๋ก ์์ฒญ์ด ๊ฑฐ๋ถ๋ ๊ฒ์ด์์ต๋๋ค.
์์ธ์ ๋ถ์ํด๋ณด๋,
์ ํฌ๋ ์ด๋ ๊ฒ ์๊ฐ๋ณด๋ค ๋ง์ ํ๋ฉด์์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์์์ต๋๋ค. ๋๊ตฐ๋ค๋ ์น๊ตฌ๋ ์์ ์ ํ๋กํ ์ด๋ฏธ์ง๋ง์ ๋ค์ด๋ก๋ํ๊ธฐ ๋๋ฌธ์ ๋งค๋ฒ ๋๊ฐ์ ์ด๋ฏธ์ง๊ฐ ๋ฐ๋ณต๋ฉ๋๋ค. ๋ง์ฝ ์ด๋ฏธ์ง ์บ์ฑ์ ์ฌ์ฉํ๋ค๋ฉด ๊ณ์ ๋๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ์ง ์์๋ ๋๊ฒ ์ฃ !
๊ฒฐ๊ตญ ์ ํฌ๋ ์ด๋ฏธ์ง ์บ์ฑ์ ์ ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค..!
์บ์ฑ ์ค๊ณ
์บ์ฑ์ ์ด๋๊น์ง ์ง์ํด์ผํ ์ง ํนํ, ๋ฉ๋ชจ๋ฆฌ ์บ์ฑ๊น์ง๋ง ํ๋ฉด ์ข์์ง, ๋์คํฌ ์บ์ฑ๊น์ง ํด์ผํ ์ง ์๊ฐ์ ํด๋ณด์์ต๋๋ค. ์ฐ๋ฆฌ ์ฑ์ ์ฌ์ฉ์๊ฐ ์ฑ์ ์ผ ์ํ์์ ๋ง์ ์ผ์ ํ์ง ์๊ณ ๋ฌ๋์ด ํ์ํ ๋ ์ฑ์ ์ผ๊ฒ ๋ฉ๋๋ค. ๋, ํ๋กํ ์ด๋ฏธ์ง๋ ์๊ฐ๋ณด๋ค ์์ฃผ ๋ฐ๋์ง ์์ฃ . ๊ทธ๋์ ๋จ์ํ ๋ฉ๋ชจ๋ฆฌ ์บ์ฑ๋ง ์ ์ฉํ๋ฉด ์ฑ์ ํ ๋ฒ ์ผฐ์ ๋๋ง ์บ์ฑ๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์บ์ฑ ํจ๊ณผ๊ฐ ๊ทธ๋ค์ง ํฌ์ง ์์ ๊ฒ์ ๋๋ค.
ํจ์จ์ ์ผ๋ก ์ ํ๋ ์๋ฒ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ๊ณ ์์ฃผ ๋ฐ๋์ง ์๋ ํ๋กํ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด์ ๋์คํฌ ์บ์ฑ๊น์ง ๋ชจ๋ ์ ๊ณตํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง ์บ์ฑ์ผ๋ก ์ ๋ช ํ KingFisher์ฒ๋ผ ์ธ๋ถ์์๋ UIImageView๋ ์บ์ฑ์ ๋ํ ์ ๋ณด๋ ๋ชจ๋ฅธ ์ฑ ์ด๋ฏธ์ง์ URL๋ง ์์ฒญํ๋ฉด ์ด๋ฏธ์ง๋ฅผ ๋ฐํ์์ผ์ฃผ๋๋ก ํ๊ณ ์ถ์์ต๋๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ UIImageView์ extension์ ๋ง๋ค์ด๋๊ณ ์บ์ ์๋น์ค๋ฅผ ํตํด ์ด๋ฏธ์ง๋ฅผ ์ ๋ฌ๋ฐ๋๋ก ๊ตฌ์ฑํ์ต๋๋ค.
์ ์ฒด์ ์ธ ๊ณผ์ ์ ์์ ๊ฐ์๋ฐ์, ์ด๋ฏธ์ง ์์ฒญ์ด ์์๋๋ฉด ๋ฉ๋ชจ๋ฆฌ ์บ์๋ฅผ ํ์ธํ๊ณ , ์์ผ๋ฉด ๋์คํฌ ์บ์๋ฅผ, ๊ทธ๋ฆฌ๊ณ ๋์คํฌ ์บ์์๋ ์์ผ๋ฉด ๋คํธ์ํฌ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํด์ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์์ค๋ ๊ณผ์ ์ผ๋ก ์ค๊ณ๋ฅผ ๋ง๋ฌด๋ฆฌํ์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์บ์ฑ
๋ฉ๋ชจ๋ฆฌ ์บ์ฑ์ ์ ํ์์ ์ ๊ณตํ๋ NSCache๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค.
NSCache๋ Key-Value ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ ์ ์๊ฒ ํด ์ฃผ๋๋ฐ์, ๋ค์ด๋ก๋ํ ์ด๋ฏธ์ง์ URL์ ํค ๊ฐ์ผ๋ก ์ผ์ ์ด๋ฏธ์ง๋ฅผ Data ํ์ ์ผ๋ก ์ ์ฅํฉ๋๋ค.
์ด๋ ๊ฒ ๊ตฌํํ๋ฉด URL์ ๋ํ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ํด๋น ๋ฐ์ดํฐ๊ฐ ๋ฐํ์ด ๋๊ณ , ์์ผ๋ฉด nil ์ด ๋ฐํ์ด ๋๊ฒ ์ฃ ?
๋์คํฌ ์บ์ฑ
๋ฉ๋ชจ๋ฆฌ ์บ์๋ฅผ ์ฒดํฌํ์ ๋ nil์ด ๋ฐํ๋์ด Miss๊ฐ ๋๋ฉด ๋์คํฌ ์บ์๋ฅผ ํ์ธํฉ๋๋ค.
๋์คํฌ ์บ์๋ ๋์คํฌ๊ฐ Miss ๋๋ฉด nil์ ๋ฐํํ๊ณ , Hit ๋๋ฉด ์ฝ๋์๋ ๋์์์ง ์์ง๋ง, ์บ์ ์ง์ญ์ฑ์ ์๋ฆฌ๋ฅผ ์ด๋ฆฌ๊ธฐ ์ํด Hit ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์บ์์ ์ฌ๋ฆฌ๋ ๊ณผ์ ๊น์ง ํฌํจ๋ฉ๋๋ค.
๋์คํฌ ์บ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ File Manager๋ฅผ ํตํด ํ์ผ ์ฝ๊ณ ์ฐ๊ธฐ๋ฅผ ํ๊ณ , ํ์ผ์ ์ฑ ์๋๋ฐ์ค์ Libarary/Caches ์์น์ ์์ฒญํ๋ ์ด๋ฏธ์ง ์ฃผ์๋ฅผ ํ์ผ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝํด ์ ์ฅํฉ๋๋ค.
๋ญ๊ฐ ์ด์ํ๋ฐ...?
๊ตฌํ์ ๋ง์น๊ณ ์บ์ฑ์ด ์ ๋๋์ง ํ์ธํ๊ณ , ์ฝ๋๋ฅผ ๋จธ์งํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด์ํ๊ฒ ์ฌ์ฉ์๊ฐ ํ๋กํ ์ฌ์ง์ ๋ณ๊ฒฝํด๋ ๋ค๋ฅธ ์ฌ์ฉ์๋ค์๊ฒ๋ ๋ณ๊ฒฝ๋ ํ๋กํ ์ฌ์ง์ด ๋ณด์ด์ง ์๋ ํ์์ด ์ผ์ด๋ฌ์ต๋๋ค. ์บ์ฑ์๋ง ์ง์คํ๋๋ผ ์์ ์ค์ํ ํ ๊ฐ์ง๋ฅผ ๋์ณ๋ฒ๋ฆฐ ๊ฒ์ด์ฃ ..
์น๊ตฌ์ ํ๋กํ ์ฌ์ง์ ํ ๋ฒ์ด๋ผ๋ ์ฝ์ผ๋ฉด ๋์คํฌ์ ์บ์ฑ์ด ๋๊ณ ๊ทธ ์ดํ๋ถํฐ๋ ํญ์ ๋์คํฌ ์บ์์์ Hit ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ์ง ์๊ฒ ๋๋ ๋ฌธ์ ์์ต๋๋ค. ์ฆ, ๋ก์ปฌ ๋ฐ์ดํฐ์ ์๋ฒ ๋ฐ์ดํฐ๊ฐ ์ผ์นํ๋์ง ํ์ธํ๋ ๊ณผ์ ์ด ์๋ต๋์๋ ๊ฒ์ ๋๋ค.
๋ก์ปฌ-์๋ฒ ๋ฐ์ดํฐ ๋๊ธฐํ feat. ETag
๊ฒฐ๊ตญ ์๋ฒ์ ํ์ฌ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ์ด๋ฏธ์ง๊ฐ ์ต์ ๋ณธ์ธ์ง ํ์ธํ๋ ๊ณผ์ ์ด ํ์ํ๋๋ฐ์, ์ด๋ฅผ ์ํด ETag ๊ฐ๋ ์ ํ์ตํ๊ณ ์ ์ฉํ์ต๋๋ค. ํ์ด์ด๋ฒ ์ด์ค ์คํ ๋ฆฌ์ง์ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๋ ๋ฐ ์ฑ๊ณตํ๋ฉด, ์๋ฒ๋ ์๋์ ๊ฐ์ ์๋ต ํค๋๋ฅผ ๋ฐํํด์ค๋๋ค.
์ด ETag๋ ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ํจ๊ป ๋ฐ๋๋๋ฐ์, ๋ง์ง๋ง์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์์ ๋์ ETag๋ฅผ ๋ณด๊ดํ๊ณ ์๋ค๊ฐ ์๋ฒ๊ฐ ๊ฐ์ง ETag์ ๋น๊ตํ๋ ๋ฐฉ์์ผ๋ก ๋ก์ปฌ ์ด๋ฏธ์ง์ ์๋ฒ ์ด๋ฏธ์ง๊ฐ ๋์ผํ์ง ํ์ธํ ์ ์์์ต๋๋ค.
ETag๋ฅผ ์ ์ฉํ๊ธฐ ์ํด์ ๊ฐ์ฅ ๋จผ์ ์บ์ฑ์ ๋์์ ์ด๋ฏธ์ง์ Data ํ์ ์์ ETag๊น์ง ํฌํจํ๋ ์๋ก์ด ํ์ ์ผ๋ก ๋ณ๊ฒฝํ์ต๋๋ค.
์ด๋ ๊ฒ ํด๋์ค ํ๋๋ฅผ ๋ง๋ค๊ณ , ์ด๋ฏธ์ง์ ETag๋ฅผ ํจ๊ป ์ ์ฅํ ์ ์๋๋ก ํ์ต๋๋ค.
๊ทธ๋ผ ์บ์๊ฐ ๋ค๋ฃจ์ด์ผ ํ ๋ฐ์ดํฐ๋ ๋ฐ๋๊ฒ ์ฃ ?
์ด๋ ๊ฒ ์์์ ์๋ก ์ ์ํ ํ์ ์ ๊ฐ์ผ๋ก ๊ฐ์ง๋ ์บ์๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. NSCache์ ๊ฐ์ผ๋ก Struct๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํด์ ๋ชจ๋ธ์ด์ง๋ง class๋ก ํ์ ์ ๋ง๋ค์ด์ฃผ์์ต๋๋ค.
๋์คํฌ ์บ์ฑ๋ ๋ณ๊ฒฝ์ด ๋์ด์ผ ํ๋๋ฐ์, ๋ฌธ์ ๋ Data์ String ํ์ ์ ํ๋กํผํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ํด๋์ค๋ฅผ ํ ๋ฒ์ ํ์ผ์ ์ ์ฅํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์์ต๋๋ค.
๊ทธ๋์ ETag๋ ์ด๋ฏธ์ง URL์ ํค ๊ฐ์ผ๋ก ์ผ์ UserDefaults์, ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ ๊ธฐ์กด์ฒ๋ผ ํ์ผ์ ์ ์ฅํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋์คํฌ๊ฐ Hit ๋์๋์ง๋ ๋์ผํ๊ฒ ๋์คํฌ์ URL์ด๋ฆ์ผ๋ก ์ ์ฅ๋ ์ด๋ฏธ์ง๊ฐ ์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํ์ต๋๋ค.
์กฐ๊ฑด๋ถ GET์ผ๋ก ETag ํ์ธํ๊ธฐ
์บ์ ๊ตฌ์กฐ๋ ๋ณ๊ฒฝ๋์๊ณ ์ด์ ETag๋ฅผ ์ด์ฉํด ์๋ฒ๋ก๋ถํฐ ๋ฐ์ดํฐ์ ์ต์ ์ฌ๋ถ๋ฅผ ๊ฒ์ฆ๋ฐ์ผ๋ฉด ๋๋๋ฐ์, ์ด๋ฅผ ์ํด์ ์กฐ๊ฑด๋ถ GET์ ์ด์ฉํด ETag๊ฐ ์ผ์นํ์ง ์์ผ๋ฉด ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์๋ต์ผ๋ก ๋ฐ๊ณ , ETag๊ฐ ์ผ์นํ๋ฉด ์ผ์นํ๋ค๋ ์๋ต๋ฐ๋๋ก ํ์ต๋๋ค.
์กฐ๊ฑด๋ถ GET์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ํค๋์ If-None-Match์ ๊ฐ์ผ๋ก ํ์ฌ ์ด๋ฏธ์ง์ ETag๋ฅผ ๋ณด๋ด๋ฉด ๋ฉ๋๋ค.
์ด๋ ๊ฒ์!
๋ง์ฝ ETag๊ฐ ์ผ์นํ๋ฉด ์๋ฒ๋ 304: Not Modified์ ํจ๊ป ๋น์ด์๋ ์๋ต์ ์ฃผ๊ณ , ETag๊ฐ ์ผ์นํ์ง ์์ผ๋ฉด 200: OK ์๋ต๊ณผ ํจ๊ป ์๋ก์ด ์ด๋ฏธ์ง๋ฅผ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ํค๋์๋ ์๋ก์ด ETag๋ ๋ด๊ฒจ์๊ฒ ์ฃ .
๊ทธ๋ผ ์ด์ ์ ์ฒด์ ์ธ ์บ์ฑ ํ๋ฆ์ ์ดํดํ๊ธฐ ์ํด ๊ฐ๋ฅํ ์บ์ฑ ๊ณผ์ ๋ค์ ์๋๋ฆฌ์ค๋ก ๋๋ ์ ๋ด ์๋ค!
์๋๋ฆฌ์ค 1: ๋ฉ๋ชจ๋ฆฌ ์บ์ ํํธ - ETag ์ผ์น
๋จผ์ ์ด๋ฏธ์ง ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์บ์ ์๋น์ค ๊ฐ์ฒด๋ ๋ฉ๋ชจ๋ฆฌ ์บ์๋ฅผ ํ์ธํด๋ด ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์บ์๊ฐ ํํธ๋๋ ์ํฉ์ด๋ ํด๋น URL์ ๋ํ CacheableImage ์ธ์คํด์ค๊ฐ ์๊ฒ ์ฃ ? ๊ทธ๋ฆฌ๊ณ ์ด ์์๋ ETag์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ ์์ต๋๋ค.
ํ์ง๋ง ์ด ์บ์ฑ๋ ์ด๋ฏธ์ง๊ฐ ์ต์ ๋ณธ์ธ์ง ํ์ธํ๊ธฐ ์ํด์ ETag๋ฅผ ํค๋์ ๋ด์ ์๋ฒ์ GET ์์ฒญ์ ๋ณด๋ ๋๋ค.
ETag ์ญ์๋ ์ผ์นํ๋ ์ํฉ์ด๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ 304๋ฅผ ์๋ต์ผ๋ก ์ฃผ๊ณ ์๋น์ค ๊ฐ์ฒด๋ ์ด๋ฅผ ํ์ธํ ๋ค NSCache์ ์๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ๋ฐํํฉ๋๋ค.
์๋๋ฆฌ์ค 2: ๋ฉ๋ชจ๋ฆฌ ์บ์ ํํธ - ETag ๋ถ์ผ์น
์ด๋ฒ์๋ ์๋ฒ์์ 200OK์ ํจ๊ป ์๋ก์ด ์ด๋ฏธ์ง๋ฅผ ์ฃผ๋ ๊ฒฝ์ฐ์ธ๋ฐ์, ์ด๋๋ ์๋ฒ์์ ๋ฐ์ ์ต์ ์ด๋ฏธ์ง์ ETag๋ก ์บ์๋ฅผ ์ด๊ธฐํํด์ฃผ์ด์ผ ํฉ๋๋ค. ๊ทธ๋์ ๋จผ์ ๋ฉ๋ชจ๋ฆฌ ์บ์์ ์๋ก์ด CacheableImage ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด์ ์บ์๋ฅผ ์ ๋ฐ์ดํธํด์ฃผ๊ณ , ์๋ก์ด ETag๋ฅผ UserDefaults์, ์ด๋ฏธ์ง๋ ์บ์ ๋๋ ํ ๋ฆฌ์ ์จ์ฃผ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์ต์ ๋ฐ์ดํฐ๊ฐ ๋ฐํ๋ฉ๋๋ค.
์ฝ๋๋ ์ด๋ ๊ฒ ๊ตฌํ๋์ด ์์ต๋๋ค. ์์์ ์ค๋ช ํ๋ ๋ฐฉ๋ฒ๋๋ก, ์บ์์ ๋งค์นญ ๋๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์กฐ๊ฑด๋ถ get์ ์๋ํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ์บ์, ๋์คํฌ ์บ์๊ฐ ๋ชจ๋ ์คํจํ๋ฉด ๋คํธ์ํฌ๋ก ์์ฒญ์ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
์บ์ ์ ์ฉ ํ..
์บ์๋ฅผ ์ ์ฉํ ์ดํ์๋ ํ ์คํธ๋ฅผ ์ํด ๊ณ์ํด์ ์ฑ์ ์ฌ์ฉํ๊ฒ ๋์๋๋ฐ์, ์บ์ฑ ์ดํ๋ถํฐ๋ ์๋์ฒ๋ผ ๋ฐ์ดํฐ ์ ์ก๋์ด ํฌ๊ฒ ์ค์ด๋ ๊ฒ์ ํ์ธํ ์ ์์์ต๋๋ค..!
๋ง๋ฌด๋ฆฌ
์บ์ฑ์ ๊ตฌํํ๋ฉด์ ETag๋ผ๋ ์๋ก์ด ๊ฐ๋ ๋ ํ์ตํ๊ฒ ๋๊ณ , ์กฐ๊ฑด๋ถ Get์ ์์ฒญ์ด๋ ์๋ต๋ ๊ณต๋ถํ ์ ์์ด์ ๊ตฌํ ๊ณผ์ ์ด ์ฆ๊ฑฐ์ ์ต๋๋ค! ์์ผ๋ก๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ ๊ฒ ๊ฐ์์!
ํน์๋ ์๋ชป๋ ๋ด์ฉ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!
์ ํฌ ํ๋ก์ ํธ์ ๋ํด ๋ ๊ถ๊ธํ์๋ค๋ฉด ๊นํ๋ธ ์ ์ฅ์์๋ ๋๋ฌ ์ค์ธ์!
https://github.com/boostcampwm-2021/iOS06-MateRunner
์ถ๊ฐ
์ด๋ฏธ์ง ์บ์ ๊ตฌํ์ ๋ถ์กฑํ ๋ถ๋ถ๋ค์ด ์์ด์ ์ด๋ฅผ ๊ฐ์ ํ ๊ณผ์ ์ ๋ณ๊ฐ์ ํฌ์คํธ๋ก ๋ด์์ด์! ํ์ธํด๋ณด์๋ฉด ์ฌ๋ฏธ์์๊ฑฐ์์!
'๐ ์์ด-์ค-์์ค > ๐ฑ iOS ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote