๐ SOLID ์์น์ด๋? SOLID๋ผ๋ ์ฉ์ด๋ ๊ฐ์ฒด ์ค๊ณ์ ํ์ํ 5๊ฐ์ง ์์น์ ์ฝ์๋ก, ์ ์ง๋ณด์๊ฐ ์ฝ๊ณ , ์ ์ฐํ๊ณ , ํ์ฅ์ด ์ฌ์ด ์ํํธ์จ์ด๋ฅผ ๋ง๋๋๊ฒ์ ๋ชฉ์ ์ผ๋ก ํ๋ค. Clean Agile, Clean Achitecture, Clean Code, Clean Sof
๐ Clean Architecture๋? ํด๋ฆฐ ์ํคํ ์ณ๋ Rober C. Martin(aka. Uncle Bob)์ด ์ํฐํ๋ผ์ด์ฆ ์ํคํ ์ณ์์ ๋ ผ์๋๋ ๋ด์ฉ์ ์ง์ฝ์ํจ ๊ฐ๋ ์ ๋ธ๋ก๊ทธ์ ๊ธฐ์ฌํ ๋ด์ฉ์ด๋ค. ํด๋ฆฐ ์ํคํ ์ณ๋ ๋ ๊ฐ์ง์ ๊ด์ ์์ ๋ณผ ์ ์๋ค. ํ๋๋ ์ํคํ
Code Coverage๋ ํ ์คํธ์ ๊ฐ์น๋ฅผ ์ธก์ ํ๋ ๋๊ตฌ.(Codeย coverageย isย aย toolย toย measureย theย valueย ofย yourย tests.)์ถ์ฒ: ์ ํ ๋ฌธ์์ฐธ๊ณ : ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง(Code Coverage) ๋ฌผ๋ก , all targets๋ก ํด์ค๋
Code Coverage๋ ํ ์คํธ์ ๊ฐ์น๋ฅผ ์ธก์ ํ๋ ๋๊ตฌ๋ผ๊ณ ํ ์ ์๋ค. ์ด๋ฅผ ํตํด์ ํ ์คํฐ๊ฐ ์๋ํ ๋๋ก ํ ์คํธ๊ฐ ์ ๋์๋์ง ํ๋จํ ์ ์๋ ์๋ฃ ์ค ํ๋์ด๋ค.์ธก์ ๊ธฐ์ค์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๊ณ ์์ค ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํํ๋ ํ์ดํธ ๋ฐ์ค1(๋ผ์ธ(Line) ์ปค๋ฒ๋ฆฌ์ง๋ผ๊ณ ๋ถ
Xcode์์ Unit Test๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋๊ฐ์ง๊ฐ ์๋ค.ํ๋ก์ ํธ ์์ฑ ์ ํ ์คํธ ํ์ผ์ ํจ๊ป ์ถ๊ฐํ๊ธฐ.๊ธฐ์กด์ ํ๋ก์ ํธ์ Unit Testing Bundle์ ์ถ๊ฐํ๊ธฐ.์ฐ๋ฆฌ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ ๋ชจ๋ ํ์ธํด๋ณด์.๋ง์ฝ ๊ธฐ์กด์ ์ฌ์ฉํ๋ Podfile์ด ์๋ค๋ฉด Unit T
๐ ๋จ์ ํ ์คํธ (Unit Test) > ์ ๋ ํ ์คํธ(unit test)๋ ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์์ ์์ค ์ฝ๋์ ํน์ ๋ชจ๋์ด ์๋๋ ๋๋ก ์ ํํ ์๋ํ๋์ง ๊ฒ์ฆํ๋ ์ ์ฐจ๋ค. ์ฆ, ๋ชจ๋ ํจ์์ ๋ฉ์๋์ ๋ํ ํ ์คํธ ์ผ์ด์ค(Test case)๋ฅผ ์์ฑํ๋ ์ ์ฐจ๋ฅผ ๋งํ๋ค. ์ด๋ฅผ
XCTest๋ Xcode ํ๋ก์ ํธ์์ ํ์ฉํ ์ ์๋ ํ ์คํธ ํ๊ฒฝ์ ์ ๊ณตํ๋ ํ๋ ์์ํฌ์ด๋ค.๋จ์ ํ ์คํธ(Unit Test), ์ฌ์ฉ์ ์ธํฐํ์ด์ค ํ ์คํธ(UI Test), ์ฑ๋ฅ ํ ์คํธ(Performance Test) ๋ฑ์ ์ํํ ์ ์๋ค.Xcode ํ๋ก์ ํธ์์ ํ ์คํธ ์ฝ๋
TDD๋ Test Driven Development์ ์ฝ์๋ก ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ด๋ผ๊ณ ํ๋ค. ์์ง๋์ด ์ผํธ ๋ฐฑ (Kent Beck)์ ์ํด ๊ณ ์๋์๋ค. ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ํต๊ณผํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๋จ๊ณ๋ฅผ ๋ฐ๋ณตํ์ฌ ๊ตฌํํ๋ค. ์งง์ ๊ฐ๋ฐ ์ฃผ๊ธฐ์ ๋ฐ๋ณต์ ์์กดํ๋ ๊ฐ
git add -u .\-u : untracked ํ์ผ๋ค์ ์ ์ธ์ํจ๋ค.. : ๋ชจ๋ ํ์ผ์ ์ถ๊ฐํ๋ค.git commit -m "Message": ํด๋น ๋ฉ์ธ์ง๋ฅผ ๋ด์์ commit ํ๋ค.git push -u origin/\-u : ์์ผ๋ก git push ๋ง ์ฌ์ฉํ๋๋ผ๋ ๋ค
ํด๋ผ์ด์ธํธ โ ์๋ฒ โ DBMS ๋จ๊ณ์์๋งค๋ฒ ๋ค๋ฅธ ๋ฌธ์์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ ํํ๋๊ธฐ ๋๋ฌธ์ด๋ค.GETGET ๋ฐฉ์์์๋ Header์ URI์ ํฌํจ๋์ด ์ ๋ฌ๋๋ค.๊ทธ๋ฌ๋ฏ๋ก URI Encdoing์ ๊ฑฐ์ฒ์ผ ํ๋ค.POSTPOST ๋ฐฉ์์์๋ Body์ ํฌํจ๋์ด ์ ๋ฌ๋๋ค.์๋ธ๋ฆฟ์์
AppStore์ ์ฑ์ ์ ๋ก๋ ํ๋ค.( ์์ธํ ๋ฐฉ๋ฒ์ https://0urtrees.tistory.com/59 ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋ค.)App Store Connect ๋์ ์ฑ โ Test Flight ํญ์ผ๋ก ์ด๋ํ๋ค.์ผ์ชฝ ๋ฉ๋ด์์ ์ ๊ทธ๋ฃน์ ํด๋ฆญํ์ฌ ๊ทธ๋ฃน์ ์๋ก
์ต๊ทผ Swift ์์ ์ด๋ฏธ์ง ๋ฆฌ์ฌ์ด์ง์ ์ํด์ ์ฝ๋๋ฅผ ์ฐพ์ ๋ดค๋ ์ ์ด ์๋ค.UIImage๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์์ UIImage๋ฅผ ๋ฐํ๊ฐ์ผ๋ก ๊ฐ์ง๋ Function์ ๊ฐ์ ธ์์ ์ฌ์ฉํ์๋๋ฐ์ฝ๋์ ๋ด์ฉ์ ์๋์ ๊ฐ์๋ค.์ถ์ฒ : https://soooprmx.com/ar
Amazone Web Service ์ Storage ์๋น์ค ์ ๋๋ค. ํ๋ง๋๋ก ๋๊ธฐ์ ์๋ง์กด์ด ์ด์ํ๋ ๋์ฉ๋ ์ ์ฅ์ ์ ๋๋ค.https://aws.amazon.com/ko/s3/?nc=sn&loc=1์ด๊ณณ์ ์์ธํ ์ค๋ช ์ด ์์ผ๋ ์ฐธ๊ณ ํ์ธ์ ใ ใ regionType
Safe Area Guide ๋ฅผ ๋ฐ๋ฅด๊ธฐ ์ํด ๊ฒ์์ ํตํด View ๊ฐ SafeArea ๋ฅผ ์นจ๋ฒํ์ง ์๋๋ก ์ ์ฉํ๋ ๋ฒ์ ๋ํด์ ๊ณต๋ถ๋ฅผ ํ๊ณ ์์๋ค.https://devmjun.github.io/archive/SafeArea_1Mjun ๋์ด ๋ฒ์ญํ์ฌ ์ฌ๋ ค ๋์
์ฐ๋ฆฌ๋ ์์์ ์ธ๊ธํ๋ global state๋ฅผ ์ข ๋ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ ํ์๊ฐ ์๋ค. service provider๋ Reactor ๋ง์ผ๋ก๋ ๋ถ์กฑํ ํ๋ก์ธ์ค ๋จ์์ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋๋ก ๋์์ฃผ๋ ์ญํ ์ ํ๋ ๋์์ side effect, API ํธ์ถ๊ณผ ๊ฐ์ ๋น๋๊ธฐ ์
View๋ data๋ฅผ Displayํ๋ ์ญํ ์ด๋ค. View layer์๋ ๋น์ฆ๋์ค ๋ก์ง์ด ์๋ค. action stream์ user์ ์ ๋ ฅ์ ๋ฐ์ธ๋ฉํ๊ณ , view state๋ฅผ view์ UI์ ๋ฐ์ธ๋ฉ๋ง ํด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ฆฌ๊ณ action๊ณผ state๋ฅผ ์ด๋ป๊ฒ ๋งตํํ ์ง๋ง
์๋ ํ์ธ์ ์ด๋ฒ ๊ธ์์๋ ์ ๊ฐ ํ๋ก์ ํธ์ ์ง์ ์ฌ์ฉ์ค์ธ ReactorKit์ ๊ดํ ์ค๋ช ์ ๋ด์ ๊ธ์ ๊ณต์ ํด๋ณด๊ฒ ์ต๋๋ค. ์ ์ฌ์ฉํ๊ฒ ๋์๋์ง? ReactorKit์ด ๋ฌด์์ธ์ง? ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง? ๊ทธ๋ฆฌ๊ณ ํด๋น ๊ธ์ ์๋ ์ Notion์ ์ ์ด๋์๋ ๊ธ์ Velog๋ก ์ฎ๊ฒจ๋๋
์ฑ์ ์ ์ ํ๋ค๋ณด๋ฉด ํน์ ์์ดํ ์ ์ธ๋ถ๋ก ๊ณต์ ํ๊ฑฐ๋ ์ธ๋ถ ์ดํ์ Export ํ๊ณ ์ถ์ ๋๊ฐ ์์ต๋๋ค.๊ทธ๋ฐ ๊ฒฝ์ฐ์๋ ActivityViewController๋ฅผ ํตํด ํ์ฉํ ์ ์์ต๋๋ค.ํด๋น ํด๋์ค๋ iOS 6.0 ์ด์ ๋ถํฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.iPod Touch ํน์ i
swift์์ ๋คํธ์ํฌ ์ํ๋ฅผ ์ฒดํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.์ฐ์ swift์๋ Network๋ผ๋ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ฐ ์ด๊ฒ์ ์ด์ฉํด์ฃผ๋ฉด ๋ฉ๋๋ค.์ด๊ฒ์ ์ด์ฉํ๋ฉด ํ์ฌ ๋คํธ์ํฌ์ ์ํ, ์ข ๋ฅ ๋ฑ.. ๋ค์ํ ์ ๋ณด๋ค์ ์ ์ ์์ต๋๋ค.๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ป๊ฒ ์ฌ์ฉ
ํ์ฌ ๊ฐ๋ฐ์ค์ธ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๊ณ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฝ๋๋ฅผ ๋ณด๋ค๋ณด๋ Atomic<A>๋ผ๋ ๊ตฌ์กฐ์ฒด๊ฐ ์์๊ณ ์ฐธ๊ณ ํ ์ ์๋ ๋งํฌ๊ฐ ์๊ธฐ์ ํธ๊ธฐ์ฌ์ ๋ค์ด๊ฐ ๋ดค๋ค๊ฐ ํฅ๋ฏธ๋ก์ด ๋ด์ฉ์ธ๊ฑฐ ๊ฐ์ ๋ฒ์ญ์ ํด๋ด ๋๋ค.Atomic Variables๋ ๋ฌด์์ผ๊น? ๋ฐ๋ก ์์์ฑ์ ๋ณด์ฅํ๋