728x90 ๋ฐ์ํ ํ ์คํธ7 [Design Pattern] MVP ํจํด์ด๋? ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ Model - View - Presenter๋ก ์ด๋ค์ ธ์๋ M.V.P ๋์์ธ ํจํด์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์ง๊ธ๋ถํฐ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. MVP๋? Model - View - Presenter ๋ก ์ด๋ค์ง ๋์์ธ ํจํด์ด๋ฉฐ MVC์์ Controller๊ฐ ํ๋ ์ญํ ์ Presenter๊ฐ ํ๋ค๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค. "๊ทธ๋ฌ๋ฉด MVC ์ฐ๋ฉด ๋์ง ์ MVP๋ฅผ ์จ?" MVC๋ Model๊ณผ View๊ฐ ์๋ก ์ฐ๊ฒฐ๋์ด ์์ด ์์กด๊ด๊ณ๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง MVP๋ Model๊ณผ View ๋ถ๋ฆฌ๋์ด ์๊ณ ์ค์ง Presenter๋ฅผ ํตํด์ ์ํ๋ ๋ณํ๋ฅผ ์๋ ค์ค ์ ์์ต๋๋ค. ์ด๋ ๊ฒ View์ ๋น์ง๋์ค ๋ก์ง์ด ์์ ํ ๋ถ๋ฆฌ๊ฐ ๋์ด ํ ์คํธ๊ฐ ์ฉ์ดํด์ง๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ๋ทฐ๊ฐ ์ ๋ฐ์ดํธ ๋๋ ๊ณผ์ ์.. 2021. 8. 11. [iOS] TestFlight ํ ์คํธ ์ฌ์ฉ์ ์ด๋ํ๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค. ์ง๋ ๊ธ์์ ํ ์คํธ ํ๋ผ์ดํธ๋ฅผ ์ด๋ป๊ฒ ๋ฐฐํฌํ๋์ง์ ๋ํด์ ์์๋ณด์๋๋ฐ์. ํ ์คํธ ํ๋ผ์ดํธ ์ฌ์ฌ๋ฅผ ๊ฑฐ์น๊ณ ํ ๋ช์๊ฐ ๋ค? ํ ์คํธ๊ฐ ํต๊ณผ๋์์ต๋๋ค. ๊ทธ๋์ ์ค๋์ ํ ์คํธ ํ๋ผ์ดํธ์ ํ ์คํธ๋ฅผ ํ ์ฌ์ฉ์๋ฅผ ์ด๋ํ๋ ๋ฒ์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ํ๊ฒ ์ต๋๋ค. App Store Connect ์ฑ์คํ ์ด ์ปค๋ฅํธ๋ก ์ด๋ํ์๋ฉด ํต๊ณผ๊ฐ ๋์๋ค๋ฉด ์๋์ ๊ฐ์ด "ํ ์คํธ ์ค๋น ์๋ฃ" ๋ผ๊ณ ์จ์ ธ์์๊ฑฐ์์. ํ ์คํธ ๊ธฐ๊ฐ์ 90์ผ์ด ์ฃผ์ด์ง๋ค์. ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์ App Store Connect์ ์ฌ์ฉ์ ๋ฐ ์ก์ธ์ค๋ก ๊ฐ์ค๋๋ค. ์ ๊ท ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ๋ ฅํด์ฃผ๊ณ ์ด๋๋ฅผ ๋๋ฌ์ค๋๋ค. ์ด๋๊ฐ ์ ์์ ์ผ๋ก ๋์๋ค๋ฉด ์๋์ ๊ฐ์ด ์ฌ์ฉ์์ ์ ๋ณด๊ฐ ์ถ๊ฐ๊ฐ ๋๊ณ ์ด๋ ์ฌ์ ์ก์ด๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ๋ณด์ผ๊ฑฐ์์. ํด๋น ์ด๋ฉ์ผ๋ก ์ด๋ํ์ ์.. 2021. 7. 22. [iOS] TestFlight ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ ์์๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ ์ฑ์ ์ถ์ํ๊ธฐ ์ ์ ํ ์คํธ ์ฌ์ฉ์์๊ฒ ์ฑ์ ๋ค์ด๋ก๋ ํ ์ ์๊ฒ ํ๋ ํ ์คํธํ๋ผ์ดํธ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค! ๋ฐ๋ก ์์ํ ๊ฒ์~ Xcode ํ ์คํธ๋ฅผ ์งํํ๊ณ ์ถ์ ํ๋ก์ ํธ๋ฅผ ์คํํด์ค๋๋ค. Any iOS Device(arm64)๋ก ๋ง์ถฐ์ฃผ์๊ณ Xcode ์์ชฝ ํญ์ Product - Archive๋ฅผ ๋๋ฌ์ฃผ์ธ์. (Archiveํ๋๋ฐ ๋ช๋ถ์ ๋ ์์๋ฉ๋๋ค..) ๋ฒ์ ๊ณผ ์ต์๋ฒ์ ์ด ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ ํ์ธํ๊ณ ์์นด์ด๋ธ๋ฅผ ํด์ฃผ์ธ์! ์์นด์ด๋ธ ์๋ฃ๋๋ฉด ์๋์ ๊ฐ์ ์๋ก์ด ์ฐฝ์ด ๋ฐํ ๋ฐ Distribute App์ ๋๋ฌ์ฃผ์ธ์. (No suitable application records were found. ๋ง์ฝ ์์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ด๋ค๋ฉด App Store Connect์ ํด๋น ์ฑ์ด ๋ฑ๋ก๋์ง.. 2021. 7. 21. [iOS] UI Test ๊ฐ๋จํ๊ฒ ์ฌ์ฉํด๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ ๋ฒ ํฌ์คํ ์ Unit Test์ ๋ํด์ ๋ค๋ค๋๋ฐ์ ์ค๋์ UI๋ฅผ ํ ์คํธ ํ ์ ์๋ UI Test์ ๋ํด์ ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค ๋ฐ๋ก ์์ํ ๊ฒ์~ UITest Bundle ๋ง๋ค๊ธฐ Project - General ํญ์ผ๋ก ์ด๋ํ์ ์ ์ผ์ชฝ ํ๋จ ๋ถ๋ถ์ +๋ฒํผ์ ๋๋ฌ์ฃผ์ธ์. ๊ทธ๋ฆฌ๊ณค ui๋ฅผ ๊ฒ์ํ๊ณ UI Testing Bundle์ ๋ง๋ค์ด์ฃผ์ธ์. Storyboard ์๋์ ๊ฐ์ด ํ์๊ฐ์ ํ๋ ๋ทฐ์ปจํธ๋กค๋ฌ๋ฅผ ๊ตฌ์ฑํ ๊ฑด๋ฐ์. ์ด๋ฉ์ผ ํ ์คํธํ๋,๋น๋ฐ๋ฒํธ ํ ์คํธํ๋,๋น๋ฐ๋ฒํธ ํ์ธ ํ ์คํธํ๋,ํ์๊ฐ์ ๋ฒํผ์ผ๋ก ๊ตฌ์ฑํด์ฃผ์์ต๋๋ค. SignupViewController IBOutlet์ ๋ชจ๋ ์ฐ๊ฒฐ์์ผ์ฃผ๊ณ signupButton์ ๋๋ ์ ๋ ๋น๋ฐ๋ฒํธ์ ํ์ธ ๋น๋ฐ๋ฒํธ๊ฐ ๋ค๋ฅด๋ค๋ฉด ๊ฒฝ๊ณ ์ฐฝ์ ๋์ฐ๋๋ก ํ์.. 2021. 7. 20. [iOS] Unit Test์ ๋ํด์ ๊ฐ๋จํ ์์๋ณด๊ธฐ ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ Xcode์์ ํ ์คํธ๋ฅผ ํ ์ ์๋ ์ ๋ํ ์คํธ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ์์ ๋ถํฐ ํ ์คํธ์ ๋ํ ์ค์์ฑ์ ์ ๋ง ๊ฐ์กฐ๋์๊ณ ์ ๋ ํด์ผ์ง...ํด์ผ์ง.. ํ๋ฉด์ ๋ฏธ๋ฃจ๋ค๊ฐ ์ด์ ์ผ ์ ๋๋ก ์ฌ์ฉํด๋ณด๊ณ ๊ณต๋ถํ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Unit Test Bundle ๋ง๋ค๊ธฐ ๋จผ์ ์ ๋ํ ์คํธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ด ํ๋ก์ ํธ ์์ฑ์์ Include Tests ์ฒดํฌํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ๋ง์ฝ์ ์ด๊ฑฐ ํ๋ก์ ํธ๋ฅผ ์ด๋ฏธ ๋ง๋ค์ด๋ฒ๋ ธ๋ค๋ฉด Project - General ํญ์ผ๋ก ์ด๋ํ์ ๋ค ์ผ์ชฝ ํ๋จ ๋ถ๋ถ์ + ๋ฒํผ์ ๋๋ฌ์ฃผ์ธ์. ๊ทธ ๋ค์ Unit์ ๊ฒ์ํ์๋ฉด Unit Testing Bundle์ด ์์๊ฑฐ์์ ์ด๊ฑธ ์ถ๊ฐํด์ค๋๋ค. Unit Test ํ์ผ ๋ง๋ค๊ธฐ UnitTest Exam.. 2021. 7. 19. [CS] TDD(Test-Driven-Development)๋? ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋ ์์๋ณผ ์ฃผ์ ๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋ฌด์กฐ๊ฑด ๊ฐ์ถฐ์ผ ํ๋ ์์ธ์ธ TDD์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ์ ๋ง ์ค์ํ ๊ฐ๋ ์ธ๋ฐ ์ด์ ์์ผ ๋ค๋ฃจ๊ฒ ๋๋ค๋... ๋ฐ๋ก ์์ํ ๊ฒ์! TDD(ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ)๋? ๐ค "ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ ๋งค์ฐ ์งง์ ๊ฐ๋ฐ ์ฌ์ดํด์ ๋ฐ๋ณตํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ค ํ๋์ด๋ค. ๊ฐ๋ฐ์๋ ๋จผ์ ์๊ตฌ์ฌํญ์ ๊ฒ์ฆํ๋ ์๋ํ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฐ ํ์, ๊ทธ ํ ์คํธ ์ผ์ด์ค๋ฅผ ํต๊ณผํ๊ธฐ ์ํ ์ต์ํ์ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ๋ง์ง๋ง์ผ๋ก ์์ฑํ ์ฝ๋๋ฅผ ํ์ค์ ๋ง๋๋ก ๋ฆฌํฉํ ๋งํ๋ค. ์ด ๊ธฐ๋ฒ์ ๊ฐ๋ฐํ๊ฑฐ๋ '์ฌ๋ฐ๊ฒฌ' ํ ๊ฒ์ผ๋ก ์ธ์ ๋๋ Kent Beck์ 2003๋ ์ TDD๊ฐ ๋จ์ํ ์ค๊ณ๋ฅผ ์ฅ๋ คํ๊ณ ์์ ๊ฐ์ ๋ถ์ด๋ฃ์ด์ค๋ค๊ณ ๋งํ์๋ค." - ์ํค ๋ฐฑ๊ณผ - ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด ์ฝ๋๋ฅผ ์ฐ๊ธฐ .. 2021. 6. 7. [CS] F.I.R.S.T ์์น์ด๋? (feat.UnitTest) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋ ์์๋ณผ ์ฃผ์ ๋ ์ข์ ์ ๋ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํ F.I.R.S.T ์์น์ ๋ํด ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ F.I.R.S.T ์์น์ด๋? First ์์น์ 'ํด๋ฆฐ ์ฝ๋' ๋ผ๋ ์์ฃผ ์ ๋ช ํ ์ฑ ์ ์ ์์ธ Bob Martin์ด ์ฒ์ ์ ์ํ ๊ท์น์ ๋๋ค. ์ด ๊ท์น์ ํจ์จ์ ์ด๊ณ ์ข์ ๋จ์ ํ ์คํธ๋ฅผ ํ๊ธฐ ์ํ 5๊ฐ์ง ์์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ๋น ๋ฅด๊ณ (Fast),๋ ๋ฆฝ์ ์ด๊ณ (Independent),๋ฐ๋ณต๊ฐ๋ฅํ๋ฉฐ(Repeatable),์์ฒด ๊ฒ์ฆ๊ฐ๋ฅํ๊ณ (Self-validating),์ฒ ์ ํ๊ณ ์ ์์(Thorough&Timely) ์์ฑ ๊ฐ๋ฅํ ํ ์คํธ๋ฅผ First ์์น์ ์ค์ํ ์ ๋ํ ์คํธ๋ผ๊ณ ํฉ๋๋ค. ์ด 5๊ฐ์ง ์์น์ ๋ํด์ ์ธ์ธํ๊ฒ ๋ค๋ฃจ๋๋ก ํ๊ฒ ์ต๋๋ค. Fast ์ ๋ ํ ์คํธ๋ ๋น ๋ฅด๊ฒ .. 2021. 6. 7. ์ด์ 1 ๋ค์ 728x90 ๋ฐ์ํ