728x90 ๋ฐ์ํ ๐ฅ Computer Science61 [๐ป Programming] Clean Code - ์๋ฏธ์๋ ์ด๋ฆ์ ์จ๋ผ ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ ๋ฒ ๊ธ์ ๊นจ๋ํ ์ฝ๋๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ๋ค๋ค๋ณด์๋๋ฐ์. ์ด๋ฒ์ ์ข ๋ ๊ตฌ์ฒด์ ์ผ๋ก ๊นจ๋ํ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ฒซ๋ฒ์งธ ๊ท์น "์๋ฏธ์๋ ์ด๋ฆ" ์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ์๋๋ฅผ ๋ถ๋ช ํ ๋ฐํ๋ผ ๋์ ์ โ ๋ง์ฝ ์๋์ ๊ฐ์ ํจ์๊ฐ ์๋ค๋ฉด ๋ญ ์๋ฏธํ๋์ง ์ ์๊ฐ ์๋ค. func abc(a:String,b:String) -> String { return a+b } ์ข์ ์ ๐๐ป ์์ ๊ฐ์ ์ญํ ์ ํจ์์ด์ง๋ง ์๋์ฒ๋ผ ์์ฑํ๋ฉด ํ์คํ ์ฑ๊ณผ ์ด๋ฆ์ ๋ฐ์์ ํ๋ค์์ ๋ง๋๋ ๊ฒ์ด๊ตฌ๋ ๋ผ๊ณ ์ ์ ์๋ค. func makeFullName(firstName:String,lastName:String) -> String { let fullName = firstName + lastName .. 2021. 6. 13. [๐ป Programming] Clean Code - ๊นจ๋ํ ์ฝ๋๋? (feat.์จ์ผํ๋ ์ด์ ) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋๋ถํฐ ํ๋ก๊ทธ๋๋จธ๋ผ๋ฉด ๊ผญ ์ฝ์ด๋ด์ผ ํ๋ "ํด๋ฆฐ ์ฝ๋" ์ฑ ์ ๋ํด์ ๋ฐฐ์ด ๋ด์ฉ์ ์ดํดํ๋๋ก ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋์ ์ฝ๋๋? ํด๋ ํ๊ธฐ ์ด๋ ค์ด ์ฝ๋ ์์ฐ์ฑ์ ๋จ์ด๋จ๋ฆฌ๋ ์ฝ๋ ์ผ์ ๊ธฐํ์ ๊ธํ๊ฒ ์ง ์ฝ๋ ์ฆ, ํ๋ง๋๋ก ๊ธํ๊ฒ ๋์ถฉ ์ง์ ์ฝ๋๊ฐ ์ฝ๊ธฐ ์ด๋ ค์์ง๊ณ ๊ทธ๋ฌ๋ค๊ฐ ์ ์ ๊ฐ๋ฐ ์๋๊ฐ ๋์ด๊ฐ๋ ์ฝ๋๊ฐ ๋์ ์ฝ๋์ ๋๋ค. "์๋ ๊ทธ๋ฌ๋ฉด ์ผ์ ๊ธฐํ์ ๋นก๋นกํ๊ฒ ์ก์ ๊ด๋ฆฌ์ ์๋ชป ์๋์ผ?" ๋ผ๊ณ ์ง๋ฌธํ ์๋ ์์ต๋๋ค. ํ์ง๋ง ์ด ์ฑ ์์๋ ์์ฌ๋ผ๋ ์ง์ ์ผ๋ก ๋น์ ๋ฅผ ํ๋๋ฐ์. ๋ง์ฝ ๋น์ ์ด ์์ฌ์ธ ์ํฉ์์ ๊ด๋ฆฌ์๊ฐ ์๊ฐ ๋ด์ ์์ ์ ๋ง์น๊ธฐ ์ํด์ ์์ ์ป๋ ๊ฒ์ ์๋ตํ๋ผ๊ณ ์๊ตฌํฉ๋๋ค. ์ด ๋ ๋ง์ฝ ํ์์๊ฒ ๋ฌด์จ ์ผ์ด ์๊ฒผ๋ค๋ฉด ๋๊ตฌ์ ์๋ชป์ด ํด๊น์? ๋น์ฐํ ์์ ์ ๋งก์ ์์ฌ์ ์๋ชป์ด ํด๊ฒ๋.. 2021. 6. 13. [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. [Algorithm] ๊น์ด ์ฐ์ ํ์(DFS,Depth-First-Search)์ด๋? (feat.Swift) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์์ ์์ฒญ ๋น๋ฒํ๊ฒ ์ถ์ ๋๊ณ ์์๋๋ฉด ์ ๋ง ์ ์ฉํ DFS์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์! DFS๋? "๊น์ด ์ฐ์ ํ์์ ๋งน๋ชฉ์ ํ์ ๋ฐฉ๋ฒ์ ํ๋๋ก ํ์ํธ๋ฆฌ์ ์ต๊ทผ์ ์ฒจ๊ฐ๋ ๋ ธ๋๋ฅผ ์ ํํ๊ณ , ์ด ๋ ธ๋์ ์ ์ฉ ๊ฐ๋ฅํ ๋์์ ์ค ํ๋๋ฅผ ์ ์ฉํ์ฌ ํธ๋ฆฌ์ ๋ค์ ์์ค์ ํ ๊ฐ์ ์์๋ ธ๋๋ฅผ ์ฒจ๊ฐํ๋ฉฐ, ์ฒจ๊ฐ๋ ์์ ๋ ธ๋๊ฐ ๋ชฉํ๋ ธ๋์ผ ๋๊น์ง ์์ ์์ ๋ ธ๋์ ์ฒจ๊ฐ ๊ณผ์ ์ ๋ฐ๋ณตํด ๊ฐ๋ ๋ฐฉ์์ด๋ค." - ์ํค ๋ฐฑ๊ณผ - ์ด๊ฒ ๋ญ๋ง์ด์ผ....;;; ์ฝ๊ฒ ์์ ๋ฅผ ํตํด์ ์ค๋ช ๋๋ฆฌ๊ฒ ์ต๋๋ค. ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ์ง๊ตฌ ์์ ์ธ ๋๋ผ๋ง ์๊ณ ๋ชจ๋ ๋๋ผ์ ๋๋ผ์ ๋์๋ค์ ํ์ํ๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ์ด๋ค ์ฌ๋์ "๋ ๋จผ์ ์ด๋ค ๋๋ผ๋ค์ด ์๋์ง ๋ถํฐ ํ์ธํ๊ณ ๊ทธ ๋๋ผ ์์ ์๋.. 2021. 6. 5. [OS] ์ปดํ์ผ๊ณผ ๋งํฌ ๊ทธ๋ฆฌ๊ณ ๋น๋์ ์คํ์ ์ฐจ์ด๋?(Differences Build,Complile,Run and Link) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋ ์์๋ณผ ๊ฒ์ ์ ๋ง ๊ธฐ์ด์ ์ธ ์ปดํ์ผ๊ณผ ๋น๋์ ๋งํฌ์ ๋ฐ์ ์ฐจ์ด์ ๋ํด์ ์์๋ณผ๊ฑฐ์์! ๋์ถฉ์ ๋ญ๊ฐ ๋ญ์ง ์ง์์ ๊ฐ๋๋ฐ ํ๋ง๋๋ก ์ ๋ฆฌํ๋ ค๋๊น ๋ง์ด ์๋์ค๋๋ผ๊ตฌ์... ๋ฐ๋ก ์์ํ ๊ฒ์~ Compile "์ปดํ์ผ๋ฌ๋ ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฐ์ฌ ์๋ ๋ฌธ์๋ฅผ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฎ๊ธฐ๋ ์ธ์ด ๋ฒ์ญ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค." - ์ํค ๋ฐฑ๊ณผ - ์ฆ, ์ฌ๋์ด ์์ฑํ ์ธ์ด๋ฅผ ๊ธฐ๊ณ๊ฐ ์ฝ์ ์ ์๋๋ก ๋ฒ์ญํ๋ ๊ฒ์ด ๋ฐ๋ก ์ปดํ์ผ์ ๋๋ค. (iOS๋ Xcode์์ ์ปดํ์ผ์ ํ ์ ์์ผ๋ฉฐ ์ฃผ ์ปดํ์ผ๋ฌ๋ LLVM/Clang์ด๋ผ๊ณ ํ๋ค์. ์ด๊ฑด ๋ค์์ ๋ ๊น์ด ์์๋ณด๋๋ก ํ ๊ฒ์!) Build "๋น๋๋ ์์ค ์ฝ๋ ํ์ผ์ ์ปดํจํฐ๋ ํด๋ํฐ์์ ์คํํ ์ ์๋ ๋ ๋ฆฝ ์ํํธ์จ์ด ๊ฐ๊ณต๋ฌผ๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋งํ๊ฑฐ๋.. 2021. 6. 2. [OS] ๋๊ธฐ์ ๋น๋๊ธฐ ๊ทธ๋ฆฌ๊ณ ์ง๋ ฌ๊ณผ ๋์๋ ๋ฌด์์ผ๊น?(Sync vs Async & Serial vs Concurrent) ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋ ์ฐ๋ ๋๋ฅผ ๊ณ ์(?)์ฒ๋ผ ์ด์ฉํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ง์์ธ ๋๊ธฐ์ ๋น๋๊ธฐ ๊ทธ๋ฆฌ๊ณ ์ง๋ ฌ๊ณผ ๋์์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ Sync(๋๊ธฐ) ๋๊ธฐ์ ๋ป์ ๋ง ๊ทธ๋๋ก ๋์์ ์ผ์ด๋๋ค๋ ๋ป์ ๋๋ค. ์ด ๋ป ๋๋ฌธ์ ๋ ํท๊ฐ๋ฆฌ๊ธฐ๋ ํ๋๋ฐ์. ๋๊ธฐ๋ก ์์ ์ ํ์๋ ๋์์ ์ผ์ด๋์ง ์๊ณ ์ฐจ๋ก๋๋ก ์ผ์ด๋์ฃ ? ๊ทธ๋ฌ๋ฉด ๋๋์ฒด ๋ญ๊ฐ ๋์์ ์ผ์ด๋๋ค๋ ๊ฒ์ผ๊น์? ๋ฐ๋ก ์์ฒญ๊ณผ ์๋ต์ ๋๋ค. ๊ทธ๋ฌ๋๊น "๋ด๊ฐ ์ด๊ฑฐ ํ๋ผ๊ณ ์ง์ํ์ผ๋ฉด ๋๋ผ๋๊น์ง ์๋ฌด๊ฒ๋ ํ์ง๋ง! ์์ฒญ์ ํ์ผ๋ฉด ๋์์ ์๋ตํด!" ์ด๋ฐ ๋ป์ด์ฃ .. ์ผ๋ฐ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ ๋ฉด ์์ฑํ ์์๋๋ก ํธ์ถ๋์ฃ ? ์๋ฌด๋ฐ ์ธํ ์ ํด๋์ง ์์ ๊ฒฝ์ฐ ๋ณดํต ๋๊ธฐ๋ก ์์ ์ด ์งํ๋ฉ๋๋ค. func ์์ 1() { print("์์ 1 ์์") Thread... 2021. 5. 31. [Algorithm] ๋ค์ต์คํธ๋ผ(Dijkstra) ์๊ณ ๋ฆฌ์ฆ์ด๋? (feat.Swift) ์๋ ํ์ธ์ Foma ๐ ์ ๋๋ค! ์ค๋์ ๊ทธ๋ํ ๋ฌธ์ ์์ ์์ฃผ ๋น๋ฒํ๊ฒ ์ฌ์ฉ๋๋ ๋ค์ต์คํธ๋ผ๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์! ๋ค์ต์คํธ๋ผ๋? ๐ค ๋๋ฌด ์ํค์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด์์ต๋๋ค. "์์ ๊ฐ์ค์น๊ฐ ์๋ ๊ทธ๋ํ์ ํ ์ ์ ์์ ๋ชจ๋ ์ ์ ๊น์ง์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๊ฐ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค." ์ฝ๊ฒ ๋งํ๋ฉด ํ ์ ์ ์์ ๋ค๋ฅธ ์ ์ ์ผ๋ก ์ด๋ํ ๋ ๊ฐ์ฅ ๋น ๋ฅธ ๊ธธ์ ์ฐพ์์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ์ด์์. ๊ทธ๋ํ ์ค๋ช ๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ํ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ์์ ์ ์ ์ 1๋ก ๋ชฉํ ์ ์ ์ 4๋ก ๋์์ ๋ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ๋ ๋ช์ผ๊น์? 1 - 5 - 4 ๋ก ๊ฐ๋ ๊ฒฝ์ฐ๊ฐ 3 + 1 = 4๋ก ๊ฐ์ฅ ๊ฐ๊น์ด ๊ธธ์ด๊ฒ ์ฃ ? ์ด๋ ๊ฒ ๊ฐ๋จํ ๋ณด์ด๋ ๊ฒฝ๋ก๋ ๋์ผ๋ก ์ฝ๊ฒ ์ฐพ์ ์ ์์ง๋ง ๋ณต์กํ ๊ฒฝ๋ก์ผ์๋ก ์ฐพ๊ธฐ๊ฐ ์ด๋ ค์์ง ๊ฒ์ ๋๋ค. ์ด.. 2021. 5. 22. [Algorithm] ํ๋ก์ด๋ ์์ฌ(Floyd Warshall) ์๊ณ ๋ฆฌ์ฆ์ด๋? (feat.Swift) ์๋ ํ์ธ์ Foma๐ ์ ๋๋ค! ์ค๋์ ๊ทธ๋ํ ๋ฌธ์ ์์ ์์ฃผ ๋น๋ฒํ๊ฒ ์ฌ์ฉ๋๋ ํ๋ก์ด๋ ์์ฌ์ด๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์! ํ๋ก์ด๋ ์์ฌ์ด๋? ๐ค ์ํค ๋ฐฑ๊ณผ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด์์ต๋๋ค. "ํ๋ก์ด๋ ์์ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ณ์ ๊ฐ์ค์น๊ฐ ์์ด๊ฑฐ๋ ์์ธ (์์ ์ฌ์ดํด์ ์๋) ๊ฐ์ค ๊ทธ๋ํ์์ ์ต๋จ ๊ฒฝ๋ก๋ค์ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค." ์ฝ๊ฒ ๋งํ๋ฉด ๋ชจ๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด์์. ๊ทธ๋ํ ์ค๋ช ์๋์ ๊ฐ์ ๊ทธ๋ํ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ ๊ฒ์. (ํ๋์ ๋๊ทธ๋ผ๋ฏธ๋ ์ ์ , ์ฌ์ด์ ์ซ์๋ ๊ฑฐ๋ฆฌ์ ๋๋ค.) ๋ง์ฝ 1๋ฒ ์ ์ ์์ 3๋ฒ ์ ์ ์ผ๋ก ๊ฐ๋ ค๋ฉด ์ด๋ค ์ ์ ์ ์ด์ฉํด์ผ ๊ฐ์ฅ ์งง์๊น์? ์ ๋ต์ ์๊ธฐ ์ํด์ ์ค๊ฐ์ ๋ชจ๋ ์ ์ ์ ๊ฑฐ์ณ์ ๊ฐ ๋ค์ ๊ฐ์ฅ ์งง์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํด์ผ ํ ๊ฒ ์ ๋๋ค. 1๋ฒ -> 2๋ฒ -> 3๋ฒ 3.. 2021. 5. 17. [CS] ์ผ๊ธ ๊ฐ์ฒด๋? ์๋ ํ์ธ์ Foma ์ ๋๋ค! ํด๋ก์ ธ์ ๋ํด์ ์ ํํ ๊ณต๋ถํ๋ ค๊ณ ์์๋ณด๋ ์์ค์ "ํด๋ก์ ธ๋ ์ผ๊ธ๊ฐ์ฒด์ด๋ค" ๋ผ๋ ๋ง์์ ์ผ๊ธ๊ฐ์ฒด์ ๋ํด์ ๋ช ํํ๊ฒ ์ค๋ช ํ ์๊ฐ ์์ด์ ๊ตฌ์ฒด์ ์ผ๋ก ์์๋ณด๊ณ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์! First-Class-Object(์ผ๊ธ ๊ฐ์ฒด) ์ผ๊ธ ๊ฐ์ฒด๋ ๋ฌด์์ผ๊น?๐ง ์ํค๋ฐฑ๊ณผ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด์์ต๋๋ค. "์ผ๊ธ ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฉ ๊ฐ๋ฅํ ์ฐ์ฐ์ ๋ชจ๋ ์ง์ํ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ๋ณดํต ํจ์์ ๋งค๊ฐ๋ณ์๋ก ๋๊ธฐ๊ธฐ, ์์ ํ๊ธฐ, ๋ณ์์ ๋์ ํ๊ธฐ์ ๊ฐ์ ์ฐ์ฐ์ ์ง์ํ ๋ ์ผ๊ธ ๊ฐ์ฒด๋ผ๊ณ ํ๋ค." ์ฆ, ํจ์๋ฅผ ๊ฐ์ผ๋ก๋ ์ ์ฅํ ์ ์๊ณ ํ๋ผ๋ฏธํฐ๋ก ๋ฃ์ด์ค ์๋ ์๊ณ ๋ฆฌํด๊ฐ์ผ๋ก๋ ์ฐ์ผ ์๊ฐ ์๋ ๊ฒ์ด ์ผ๊ธ ๊ฐ์ฒด์ ๋๋ค. 1960๋ ๋, ์๊ตญ์ ์ปดํจํฐ ๊ณผํ์ ํฌ๋ฆฌ์คํ ํผ ์คํธ๋์น๊ฐ ์ฒ์ .. 2021. 5. 12. [Network] HTTP ์ํ ์ฝ๋๋? ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋ ์์๋ณผ๊ฑด REST API๋ก ํต์ ํ ๋ ์๋ฒ์ ์ด๋ ํ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ์์ฒญ์ ๋ํ ์๋ต ์ฝ๋๋ฅผ ๋ฐ๊ฒ๋ฉ๋๋ค. ๊ทธ๋์ ์์ฒญ์ด 200๋์ด๋ฉด ์ฑ๊ณต์ด๊ณ 400๋์ด๋ฉด ์ค๋ฅ์ธ๊ฑด ์์์ง๋ง ๊ตฌ์ฒด์ ์ผ๋ก ์์ง ๋ชปํด์ ์ ๋ฆฌํ๊ฒ ๋์์ต๋๋ค. ์ํค๋ฐฑ๊ณผ์ ๋ณด๋ฉด ๋ค ๋์์์ง๋ง ๊ตณ์ด ์ ๋ฆฌํ๋ ์ด์ ๋ ๋ชฐ๋๋ ๊ฒ๋ค์ ์ ๋ธ๋ก๊ทธ๋ฅผ ํตํด์ ์ฐพ๊ธฐ ์ฝ๊ฒ ํ๊ธฐ ์ํด์ ์ ๋ฆฌํด๋์ต๋๋ค. ๋ฐ๋ก ์์ํ ๊ฒ์~ 100~ ์์ฒญ์ ๋ฐ์๊ณ ์์ ์ ํ๊ณ ์๋ ์ํ๋ฅผ ๋ํ๋ ๋๋ค. 200~ ์์ฒญํ ๋์์ ์ดํดํ๊ณ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌํ์์ ๋ํ๋ ๋๋ค. 200 = ์์ฒญ์ ์ ๋๋ก ์ฒ๋ฆฌํ์. 201 = ์ฑ๊ณต์ ์ผ๋ก ์์ฒญ๋์์ผ๋ฉฐ ์๋ฒ๊ฐ ์๋ฆฌ์์ค๋ฅผ ์์ฑํ์ 202 = ์์ฒญ์ ์ ์ํ์ง๋ง ์์ง ์ฒ๋ฆฌํ์ง ์์์. 203 = ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌํ์ง๋ง ๋ค.. 2021. 3. 17. [Programming] SOLID ์์น์ด๋? (feat.iOS ๊ฐ๋ฐ์) ์๋ ํ์ธ์ Foma ์ ๋๋ค! ์ค๋ ๋ค๋ค๋ณผ ์ฃผ์ ๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (OOP) ์์ ๊ผญ ์ง์ผ์ผ ํ๋ ์์น์ธ SOLID ์ ๋๋ค. SOLID๋ฅผ ์์๋ณด๋ ์ด์ ๋ Swift๋ก ๊ฐ๋ฐ์ ํ๋ฉด์ ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ฒ, ์บก์ํ, ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ ๋ฑ ๋ง์ OOP ๊ฐ๋ ์ ์ฌ์ฉํด์ผ ํ์ต๋๋ค. ํ์ง๋ง ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ์ด๋ค ๊ฒ์ด ํจ์จ์ ์ธ์ง ์ด๋ค ๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ OOP๋ฅผ ์งํค๋ฉด์ ์ฌ์ฉํ๋ ๊ฒ์ธ์ง๋ ์์ง ๋ชปํ์ฑ ๊ทธ๋ฅ ์ฝ๋ฉ๋ง ํ์์ฃ ... ๊ทธ๋ฌ๋ค๊ฐ ์ฐ์ฐํ "OOP์์ ๋ฐ๋์ ์ง์ผ์ผ ํ๋ ์์น์ด 5๊ฐ์ง๊ฐ ์๋๋ฐ ๊ทธ๊ฒ์ด SOLID ์์น์ด๋ผ ๋ถ๋ฆฐ๋ค." ๋ผ๋ ๊ฒ์ ๋ฃ๊ณ ์ด๊ฒ ๋ฌด์์ธ์ง ๊ทธ๋ฆฌ๊ณ ์ ์ง์ผ์ผ ํ๋์ง์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ก ์์ ํ ๊ฒ์~ SOLID ์์น์ ๋ฌด์์ผ๊น์?๐ง ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์์ SOLID๋ ๋ก๋ฒํธ ๋งํด์ด .. 2021. 3. 4. ์ด์ 1 2 3 4 5 6 ๋ค์ 728x90 ๋ฐ์ํ