์๋ ํ์ธ์? ๋๊ตฌ๋ฆฌ์ ๋๋ค. ์ค๋์ ํด๋ฆฐ์ํคํ ์ฒ์์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ณต๋ถํด๋ณด๊ฒ ์ต๋๋ค. # ๊ฐ์ฒด ์งํฅ์ ์ด๋ป๊ฒ ์ค๋ช ํด์ผ ํ ๊น? ๊ฐ์ฒด ์งํฅ์ ์ ๋๋ก ์ค๋ช ํ๊ธฐ ์ํด์๋ ์บก์ํ, ์์, ๋คํ์ฑ ๊ฐ๋ ์ด ํ์ํ๋ค. # ์บก์ํ ์บก์ํ๋ ๋ฐ์ดํฐ์ ํจ์๊ฐ ์์ง๋ ฅ์๊ฒ ๊ตฌ์ฑ๋ ์ง๋จ์ ์๋ก ๊ตฌ๋ถํ ์ ์๊ฒ ํ๋ ๊ฐ๋ ์ด๋ค. ์ด๋ ๊ฒ ์ง๋จ์ด ๊ตฌ๋ถ๋๋ฉด ์ง๋จ ๋ด๋ถ์ ๋ฐ์ดํฐ๋ ๋ฐ๊นฅ์ผ๋ก ๋ถํฐ ์๋๋๊ณ ์ผ๋ถ ํจ์๋ง ๋ ธ์ถ๋๊ฒ ํ ์ ์๋ค. ๋ฐ๊นฅ์์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํจ์ ๊ตฌํ์ ์์ ํ ๋ชจ๋ฅผ ๋ ์์ ํ ์บก์ํ๋ค. swift์์๋ ์ฐ๋ฆฌ๊ฐ ์ ์๋ ์ ๊ทผ ์ ์ด์(private, public ๋ฑ)๋ก ๊ตฌํ ๊ฐ๋ฅํ๋ฐ ๋ฐ์ดํฐ๋ค์ private๋ก ์ ์ธํ์ฌ ์ง๋จ ๋ด๋ถ์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ์ธ๋ถ์์ ๊ฐ์ ์ํ ๋๋ public์ผ๋ก ์ ์ธ๋ ํจ์๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ..
์๋ ํ์ธ์? ๋๊ตฌ๋ฆฌ์ ๋๋ค. ํด๋ฆฐ์ํคํ ์ฒ ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ๊ณต๋ถํด๋ณด๊ฒ ์ต๋๋ค. # ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ ์์ฑ ๋ฐฐ๊ฒฝ ํ๋ก๊ทธ๋๋ฐ์ ์ํ์ ์ผ๋ก ์ฆ๋ช ํด ๋ณด๋ ค๋ ๊ณผ์ ์์ ์๊ฒจ๋ฌ๋ค. ์ฆ๋ช ๊ณผ์ (์์ฐจ ๊ตฌ๋ฌธ-์ด๊ฑฐ๋ฒ, ๋ถ๊ธฐ-์ด๊ฑฐ๋ฒ, ๋ฐ๋ณต-๊ท๋ฉ๋ฒ)์ ํตํด ์ ํด๋ฆฌ๋ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค. ์ด ๊ณผ์ ์์ goto๋ฌธ์ด ๋ชจ๋ ๋ถํด๋ฅผ ์ฌ๊ท์ ์ผ๋ก ๋ถํดํ๋ ๊ณผ์ ์ ๋ฐฉํด๊ฐ ๋๋์ ์ ํ์ goto๋ฌธ์ ๋ํ ํด๋ก์์ ๋ด์ ๊ธ์ ์ก์ง์ ์ค์๋ค. # ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ์ด๋ ๊ณ ์์ค์ ๋ชจ๋์ ๊ธฐ๋ฅ์ ์ผ๋ก ์ ์์ค์ ๋ชจ๋๋ก, ์ ์์ค์ ๋ชจ๋์ ์ ์์ค์ ํจ์๋ก ๋ถํดํ๋๋ฐ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด ๊ธฐ๋ฅ๋จ์๋ก ๋ถํดํ ์ ์๊ณ , ์ด ๊ธฐ๋ฅ์ผ๋ก ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ์ ์ ํ๋ ์ ์ด ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ ํํํ ์ ์๋ค. ์ด๋ ๋ถํด๋ ๊ธฐ๋ฅ์ ์ฆ๋ช ๊ฐ๋ฅํด์ผ ํ๋ค. # ํ ์คํธ ํ ์คํธ..
์๋ ํ์ธ์ ๋๊ตฌ๋ฆฌ์ ๋๋ค. ์ค๋์ ํด๋ฆฐ ์ํคํ ์ฒ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ๊ณต๋ถํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ ์ธ ๊ณ # ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด๋? ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ ๊ธฐ๋ฐ์ ๋๋ค ๊ณ์ฐ๋ฒ์ผ๋ก ๋ฐ๋ช ๋์๋ค. ํฐ ํน์ง์ผ๋ก๋ ๊ฐ๋ณ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ๊ฒ์ด๋ค. (ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๋ ๋ค์์ ์์ธํ ์ดํด๋ณด๊ณ ๋ณด์ถฉํด์ผ๊ฒ ๋ค) # ์ํคํ ์ฒ์์ ๋ฐ๋ผ๋ณธ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ํคํ ์ฒ๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์์ ๊ฐ๋ณ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ ์ ์ค์ํ๊ฒ ์๊ฐํ๋ค. ๊ทธ ์ด์ ๋ ๋ฌด์์๊น? ๊ฐ๋ณ ๋ณ์๋ฅผ ์ฐ๋ฉด race condition, dead lock, concurrent update ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ํคํ ์ฒ๋ ๋์์ฑ ๋ฌธ์ ์ ๊ด์ฌ์ ๊ฐ์ ธ์ผ ํ๋๋ฐ ์ค๋ ๋์ ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ ์ํ์์๋ ์ค๊ณํ ์์คํ ์ด ๊ฐ๊ฑดํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ถ๋ณ์ฑ์ด ์คํ..
์๋ ํ์ธ์? ๋๊ตฌ๋ฆฌ์ ๋๋ค. test code์์ F.I.R.S.T ์์น์ค์ ํ๋๋ Independent - ํ ์คํธ๋ ๋ ๋ฆฝ์ ์ด์ฌ์ผ ํ๋ฉฐ ์์กดํ์ง ์์์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ํด ์ค์ ๋ก ๋ง์ด ์์ฑํ๋ ์ฝ๋๋ network๋ฅผ ํตํด request๋ฅผ ํ๊ณ ๊ทธ์ ๋ฐ๋ฅธ response๋ฅผ ๋ฐ๋๋ก ์์ฑํ ์ฝ๋์ ๋๋ค. ์ฌ๊ธฐ์ networkํต์ ์ ์ธ๋ถ์ ์์ญ์ผ๋ก ๋๋๊ฒ ๋์ด ํ ์คํธ ์ ๋ถ๋ฆฌํ์ฌ์ผ ํ๋ ์์ญ์ ๋๋ค. test code์์ ์ค์ ๋ก network ํต์ ์ ํ๊ฒ ๋๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์ค์ ๋ก ํธ์ถ๋๋ค ๋ณด๋ ์๊ฐ์ด ์์๋์ด ํ ์คํธ ์คํ ์๊ฐ์ด ๊ธธ์ด์ง๊ณ , ํ ์คํธ๊ฐ ์คํจํ ์๋ ์์ผ๋ฉฐ, ์๋ชป๋ request๋ก ์๋ฒ์ ์ ํจํ์ง ์์ ๋ฐ์ดํฐ๊ฐ ์์ผ ์ ์์ต๋๋ค. ๊ทธ๋์ test code์์ ๋ถ๋ฆฌํ๊ณ , ๊ธฐ๋ฅ ์ฝ๋์..
์๋ ํ์ธ์? ๋๊ตฌ๋ฆฌ ์ ๋๋ค. ํ ์คํธ ์ฝ๋์์ Stub, Mock ๋ฑ ์ด๋ฐ ๋จ์ด๋ค์ ์์ฃผ ๋ณด์ จ์ ํ ๋ฐ์. ๊ทธ๋ฅ ๋๋ฏธ ๋ฐ์ดํฐ์ธ๊ฐ? ์ด๋ ๊ฒ ์๊ฐํ๊ณ ๋์ด๊ฐ์๋ ์์ง๋ง ์ฉ์ด ์ ๋ฆฌ๋ฅผ ํ๊ณ ๊ณต๋ถํ๊ณ ์ ํฉ๋๋ค Test Double์ด๋? test double์ ๋ฌด์์ผ๊น? ํ ์คํธ๋ฅผ ๋๋ฒ ํ๋ค๋ ๋ป์ผ๊น? ์ด ๋ป์ ์์๋ณด๊ธฐ ์ํด ์ ์ ์ฃผ์ ๋ฅผ ์ํ๋ก ์ฎ๊ฒจ๋ณผ๊ฒ์. ์ํ ์ดฌ์์ฅ์์ stunt double์ด๋ผ๋ ์ฉ์ด๊ฐ ์์ต๋๋ค. stunt double์ stunt man๊ณผ ๋น์ทํ๊ฒ ๋ฐฐ์ฐ์ ๋น์ทํ ์ฒด๊ฒฉ, ์ธ๋ชจ, ํน์ง์ ๊ฐ์ง๊ณ ์์ผ๋ฉด์ ์ํํ ์ฌ์ ๋์ ์ดฌ์ํ๋ ์ฌ๋์ ๋งํ๋๋ฐ์. ๊ทธ๋ ๋ค๋ฉด test double์ ์ค์ ๋ก ์๋ ์ฝ๋๋ก ํ ์คํธ๋ฅผ ํ๋๊ฒ ์๋๋ผ ์ค์ ๋ก ๋์ํ๋ ์ฝ๋์ ๋น์ทํ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉด์ ํ ์คํธ๋ฅผ ์งํํ๋๋ก ๋๋ ..
Unit Test๋ unit test๋ ๋ฌด์์๊น์? ์ํค๋ฐฑ๊ณผ๋ฅผ ํตํด ์ฐพ์๋ณด๋ฉด ์ด๋ ๊ฒ ์ค๋ช ํ๊ณ ์์ต๋๋ค. ์ ๋ ํ ์คํธ(unit test)๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์์ ์์ค ์ฝ๋์ ํน์ ๋ชจ๋์ด ์๋๋ ๋๋ก ์ ํํ ์๋ํ๋์ง ๊ฒ์ฆํ๋ ์ ์ฐจ๋ค. ์ฆ, ๋ชจ๋ ํจ์์ ๋ฉ์๋์ ๋ํ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ ์ ์ฐจ๋ฅผ ๋งํ๋ค. ์ด๋ฅผ ํตํด์ ์ธ์ ๋ผ๋ ์ฝ๋ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, ๋จ์๊ฐ ๋ด์ ์ด๋ฅผ ํ์ ํ๊ณ ๋ฐ๋ก ์ก์ ์ ์๋๋ก ํด์ค๋ค. ์ด์์ ์ผ๋ก, ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ์๋ก ๋ถ๋ฆฌ๋์ด์ผ ํ๋ค. ์ด๋ฅผ ์ํด ๊ฐ์ง ๊ฐ์ฒด(Mock object)๋ฅผ ์์ฑํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด๋ค. ์ ๋ ํ ์คํธ๋ (์ผ๋ฐ์ ์ธ ํ ์คํธ์ ๋ฌ๋ฆฌ) ๊ฐ๋ฐ์(developer) ๋ฟ๋ง ์๋๋ผ ๋ณด๋ค ๋ ์ฌ๋์๋ ํ ์คํธ๋ฅผ ์ํด ํ ์คํฐ(tester)์ ์ํด ์ํ๋๊ธฐ๋ ํ..
์๋ ํ์ธ์? ๋๊ตฌ๋ฆฌ์ ๋๋ค. ์์ฆ ํ ์คํธ๋ผ๋ ์ฃผ์ ์ ๋น ์ ธ์์ต๋๋ค. ๊ธฐํ์์ ๋ฐ๊ณ ์ฒ์ ๊ฐ๋ฐ์ ํ ๋๋ ๋ชจ๋ ์ผ์ด์ค์ ๋ํด ๊ณ ๋ คํ๋ฉด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ํ์ง๋ง ๊ธํ๊ฒ ์์ ํ๊ฑฐ๋ ์์ ํ์ง ์ค๋๋ ์ฝ๋๋ฅผ ์์ ํ๋ค ๋ณด๋ฉด ์์์น ๋ชปํ๊ฒ ์ฌ์ด๋ ์ดํํธ๊ฐ ๋๊ธฐ ๋ง๋ จ์ ๋๋ค. ์์ฆ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์์ฑํด์ผ ํ ๊น ๊ณ ๋ฏผํ๋ ์ค ์ค๋ฅ๋ฅผ ์ค์ด๊ณ ์ถํ ์์ ํ๋๋ผ๋ ์ด๋ฐ ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ก์๋ด๋ ์ฝ๋๋ฅผ ์์ฑํด๊ฒ ๋ค ์๊ฐ์ด ๋ค์์ต๋๋ค. ๊ทธ๋์ ๊ธฐ๋ฅ ๊ตฌํ์ ๋ฐ๋ ค๋ ์๋ Test Code์ ๋ํด ๊ด์ฌ์ด ์๊ฒผ๊ณ TDD์ ๋ํด ๊ณต๋ถํด๋ณด๊ณ ์ ํฉ๋๋ค. TDD(Test - Driven Development) ๋? TDD๋ Test-Driven-Development, ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ ๋๋ค. ๋งค์ฐ ์งง์ ๊ฐ๋ฐ ์ฌ์ดํด์ ๋ฐ๋ณตํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ค ํ๋..
์๋ ํ์ธ์? ๋๊ตฌ๋ฆฌ์ ๋๋ค. swift์์ network๋ถ๋ถ์ ๊ณ์ ๋ค๋ฃจ๊ณ ์๋๋ฐ ์ด๋ฒ์๋ Alamofire๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค. alamofire๋ urlsession๊ธฐ๋ฐ์ผ๋ก ๋์ด ์๋๋ฐ urlsession์ ๋ชจ๋ฅด์๋ ๋ถ์ ์ฌ๊ธฐ ๋ฅผ ๋ณด๊ณ ์์ฃผ์ธ์!! Alamofire๋? Alamofire is an HTTP networking library written in Swift. ๊ณต์๋ฌธ์์๋ "swift๋ก ์์ฑ๋ http ๋คํธ์ํน ๋ผ์ด๋ธ๋ฌ๋ฆฌ" ๋ผ๊ณ ๋์ด ์์ต๋๋ค. ์ฆ, ๋คํธ์ํน ์์ ์ ์ฝ๊ฒ ์์ ํ ์ ์๋๋ก ๋์์ค๋๋ค. alamofire๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ด ์์ต๋๋ค. ์ด๋ฌํ ํน์ง์ ๊ฐ์ง๊ณ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๋ณด๋ ๋ง์ ๊ณณ์์ alamofire๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ง๋งํ๋ฉด ์ ์ด ์ํ๋ ๋ฐ๋ก ์ฌ์ฉํด๋ณด์ฃ . Ala..
์๋ ํ์ธ์? ๋๊ตฌ๋ฆฌ์ ๋๋ค. URLSession์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ฒ์ ์ ํ์๋ ๋ถ์ด๋ผ๋ฉด URL Loading System ์ ๋จผ์ ์ฝ๊ณ ์์ฃผ์ธ์! ๋ชจ๋ ๋ด์ฉ์ ๊ณต์๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. URLSession์ ๋ฌด์์ธ๊ฐ URLSession์ ๋คํธ์ํฌ ํต์ ์ ํ ์ ์๋๋ก ์ ํ์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ API์ ๋๋ค. ์์ฃผ ๋ค์ด๋ณด์ จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, Alamofire๋ Moya๋ํ URLSession์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. URLSession์ ํตํด data๋ฅผ ์ ๋ก๋ ํ๊ฑฐ๋ ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์์ด์! URLSession์ ๊ฐ๋จํ ์ฌ์ฉํ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฑ๊ธํค ๊ฐ์ฒด(shared)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง shared๊ฐ์ฒด๋ configuration๊ฐ ์์ด์ ์ธ๋ถ์ ์ธ ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค. configurat..
์๋ ํ์ธ์? ๋๊ตฌ๋ฆฌ์ ๋๋ค. api ํธ์ถ ์ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๊ตํ๊ธฐ ์ํด์ ์ฒ์๋ถํฐ ๋ค์ ์ง์ด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋์ ๊ทธ ์์์ธ url loading system์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๊ฐ๋ URL loading system์ ํ์ค ์ธํฐ๋ท ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ url๊ณผ ์ํธ์์ฉํ๊ณ ์๋ฒ์ ์ํตํฉ๋๋ค. - http๋ ์ปค์คํ ๋ ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ url๋ก ์๋ณ๋๋ ๋ฆฌ์์ค์ ๋ํ ์์ธ์ค๋ฅผ ์ ๊ณต - ๋น๋๊ธฐ๋ก ์ํ๋๊ณ ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ ์ค๋ฅ๊ฐ ๋ค์ด์ค๋ฉด ์ฒ๋ฆฌ ํ ์ ์์ ํ๋ฆ - ํ์ผ์ ๋ค์ด๋ก๋, ์ ๋ก๋ ํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์๋๋ ํ๋ ์ด์์ URLSessionTask ์ธ์คํด์ค๋ฅผ ์์ฑํด์ผํจ - URLSessionTask๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ URLSession์ ์ฌ์ฉํด์ผํจ - ๊ตฌ์กฐ : URLSession > U..
- Total
- Today
- Yesterday
- swift ๊ณต๋ถ
- RxSwift
- ํ๋กํ ์ฝ
- ์คํ ๋ ์ด์์
- ios
- ๊ณต๋ถ
- Unit Test
- URLSession
- observable
- swift urlsession
- network
- Clean
- autolayout
- swift
- test
- XCTest
- set
- RX
- swift ํ๋กํ ์ฝ
- ์ค์ํํธ ๊ณต๋ถ
- ํ๋กํผํฐ
- ์ค์ํํธ map
- Protocol
- ์ค์ํํธ ํ๋กํ ์ฝ
- Subscribe
- ์ค์ํํธ
- func
- ํ ์คํธ
- Property
- Swift Network
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |