์ ์ฒด ๊ธ
-
Early ExitSwift 2021. 4. 13. 10:55
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ ๋ฒ ํฌ์คํ ์ธ ์ต์ ๋ ์ฒด์ด๋์ ์ด์ด ๊ด๋ จ๋ Early Exit, ๋น ๋ฅธ์ข ๋ฃ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ต์ ๋ ์ฒด์ด๋๊ณผ ์ต์ ๋ ๋ฐ์ธ๋ฉ์ ์ดํด๊ฐ ๋ ์ํ์์ ๋น ๋ฅธ ์ข ๋ฃ์ ํค์๋์ธ guard์ ๋ํด ์์๋ณด๊ณ if์๋ ์ด๋ค ์ต์ ๋ ๋ฐ์ธ๋ฉ์์ ์ฐจ์ด๊ฐ ์์์ง์ ๋ํด ๋ฐฐ์๋ณด๊ฒ ์ต๋๋ค๐ Early Exit : ๋น ๋ฅธ์ข ๋ฃ๋ก if๋ฌธ์์๋ else ๊ตฌ๋ฌธ์ด ์์ด๋ ๋๋ฉฐ ๋ง์ฝ else ๊ตฌ๋ฌธ์ด ์์๋๋ if์ else ๊ตฌ๋ฌธ ๋ชจ๋ ๊ตฌํ์ ํด์ฃผ๋ฉฐ ๋ถ๊ธฐ๋ฅผ ํด์ค๋๋ค. ๊ทธ๋ฌ๋ guard ๊ตฌ๋ฌธ์ ๊ผญ else ๊ตฌ๋ฌธ์ด ์์ด์ผ ๋ฉ๋๋ค. else ๊ตฌ๋ฌธ์์๋ ๋ฌด์กฐ๊ฑด ์์์ ์ฝ๋๋ธ๋ญ์ ์ข ๋ฃ์ํค๋ ์ ์ด๋ฌธ ์ ํ ๋ช ๋ น ํน์ ๊ทธ ๊ตฌ๋ฌธ์ ํ์ถ์ํฌ ์ ์๋ ๋น๋ฐํ ํจ์ / ๋ฉ์๋ ํธ์ถ์ด ์์ด์ผ ํฉ๋๋ค. ์ ์ด๋ฌธ ์ ํ ๋ช ๋ น์ด : return..
-
Optional ChainingSwift 2021. 4. 12. 19:33
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Optional Chaining ์ต์ ๋ ์ฒด์ด๋์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค. ์ต์ ๋ ์ฒด์ด๋ (Optional Chaining) : ์ต์ ๋ ์ฒด์ด๋์ด๋ ์ต์ ๋์ ์ฌ๋ฌ๋ฒ ์ฒด์ธ ์ฒ๋ผ ์ฌ์ฉํ๋ ๊ธฐ์ -> ์ต์ ๋ ์ฒด์ด๋์ ๋ ๋ถ๋ถ์์ ๊ฐ์ด ํ๋๋ผ๋ nil์ด๋ฉด nil์ ๋ฐํ ์ต์ ๋ ์ฒด์ด๋์ ์ฌ์ฉ import Foundation class Camper { var nickName: String var description: Description? init(nickName: String) { self.nickName = nickName } } struct Description { var gender: Gender? var age: Int } class Gender { var gende..
-
GCD & OperationSwift 2021. 4. 9. 15:02
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ผ์ ์ ๋ค๋ฃฌ๋ฐ ์๋ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์์ GCD & Operation์ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค. ์ด์ ๋ณด๋ค ์ ์ฒด์ ์ธ ๊ฐ๋ ์ ๋ํ ํ์ต์ ๊ฐ์ง๋ง ์กฐ๊ธ ๋ ์ฌํ๋ ๋ด์ฉ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋คโบ๏ธ ์ฐ์ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์์ ์ค์ํ ๋น๋๊ธฐ์ ๋ํด ์กฐ๊ธ ์ง๊ณ ๋์ด๊ฐ๋ณด๊ฒ ์ต๋๋ค. ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ด ๊ฐ ์ค๋ ๋๋ณ๋ก ๋น๋๊ธฐ์ ์ผ๋ก ์ผ์ ์ฒ๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋ถ๋ถ์ ๋๋ค. ๊ทธ๋์ ๊ฐ ์ผ์ ๊ธฐ๋ค๋ ธ๋ค ํ์ง ์๊ณ ๋์์ ์ฒ๋ฆฌํ๋๋ก ๋ง๋ค์ด์ค๋๋ค. ์ ์์ ์ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํด์ผ๋ ๊น? : ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๊ฒฝ์ฐ๋ ๊ต์ฅํ ๋ง์ต๋๋ค. ์๋ฅผ๋ค์ด ๋คํธ์ํฌ ์์ ๋ค์ ๋ํดํธ๊ฐ ๋น๋๊ธฐ์ ๋๋ค. ํํ ๋ณด๋ ํ ์ด๋ธ ๋ฐ ์ปฌ๋ ์ ๋ทฐ์์ ์ด๋ฏธ์ง๋ฅผ ์๋ฒ์์ ๋ฐ์ ๋ฟ๋ ค์ฃผ๋ ์ธ์คํ๊ทธ๋จ๋ค์ ๊ฒฝ์ฐ๋ ๋ง์ฝ ๋น๋๊ธฐ..
-
iTerm2 ์ค์น ๋ฐ ์ฌ์ฉMacOS 2021. 4. 5. 14:18
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ iTerm2๋ฅผ ์ค์น ๋ฐ ์ปค์คํฐ๋ง์ด์งํ์ฌ ์ฌ์ฉ ์ ์ฉํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์์ ๋ถํฐ MacOS์์ ๊ธฐ๋ณธ ํฐ๋ฏธ๋์ ์ฌ์ฉํ๊ณ ์์๋๋ฐ ๋ค๋ฅธ ๋ถ๋ค์ค์ iTerms2๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ธ ๋ ํธ๋ฆฌํ๊ณ ์ฌ์ค ์์ ํฐ๋ฏธ๋?๋ก ์ฌ์ฉํ๋๊ฑธ ๋ณด๊ณ ์ธ์ ๊ฐ ํด๋ด์ผ์ง ํ๊ณ ์๋ ๋ถ๋ถ์ด์์ต๋๋ค..! ์ด๋ฒ ๊ธฐํ์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ค์น๋ถํฐ ์ ์ฉ๊น์ง ํด๋ดค์ต๋๋คโบ๏ธ iTerm2? : iTerm2์ด ์ฐ์ ๋ฌด์์ธ์ง ๊ฐ๋ ์ ์ผ๋ก ์์์ผ๊ฒ ์ฃ ? ๊ณต์ ์ฌ์ดํธ์์๋ ์๋์ ๊ฐ์ด ๊ธฐ์ ๋์ด ์์ต๋๋ค. "iTerm2๋ ๋ฌด์์ ๋๊น? iTerm2๋ Terminal์ ๋์ฒดํ๋ฉฐ iTerm์ ํ์ ์ ํ์ ๋๋ค. macOS 10.14 ์ด์์ด ์ค์น๋ Mac์์ ์๋ํฉ๋๋ค. iTerm2๋ ๋น์ ์ด ํญ์ ์ํ๋ ๊ฒ์ ์ ํ ๋ชฐ๋๋ ๊ธฐ๋ฅ๋ค๋ก ํฐ๋ฏธ๋์ ํ..
-
Core AnimationiOS 2021. 4. 1. 18:44
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ฒ Core Graphics์ ์ด์ด Core Animation์ ๋ํด ํ์ตํ๊ฒ ์ต๋๋ค๐ง๐ป๐ป Core Animation? : ์๊ฐ์ ์์์ ๋ํด ๊ทธ๋ํฝ ๋๋๋ง ๋ฐ ๊ตฌ์ฑ์ ํตํด ์ ๋๋ฉ์ด์ ์ ๋ง๋๋ ํ๋ ์์ํฌ : ์์ ๋ฐ ๋ ํฌ์ธํธ์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ตฌ์ฑํ๊ณ ์ ๋๋ฉ์ด์ ์ ๊ตฌํํ๋ฉด Task๊ฐ ์๋์ผ๋ก ์ผ์ ์ํํจ! : ๋๋ก์ ์์ ์ ๊ทธ๋ํฝ ํ๋์จ์ด๋ก ์ ๋ฌํ์ฌ ๋ ์ด์ด ๊ฐ์ฒด๊ฐ ์กฐ์ํ ์ ์๋๋ก ๋ ๋๋ง ์์ ์ ๊ฐ์ํํด ์ฑ ์๋ ๋ฐ ํ์ง์ ๋ค์ด์์ด ๋์ ํ๋ ์๊ณผ ์์ฐ์ค๋ฌ์ด ์ ๋๋ฉ์ด์ ์ ๋ณด์ฌ์ค๋๋ค๐ -> UIKit์ AppKit์ ๋ฐ์ ํ ๊ด๊ณ!! : ๋๋ก์ ์์คํ ์์ฒด๊ฐ ์๋ ์ฑ์ ์ฝํ ์ธ ๋ฅผ Layer๋ฅผ ๊ฐ์ง๊ณ ๊ด๋ฆฌํ๋ค๋ ์ ์์ ์ฝ์ด ๊ทธ๋ํฝ์ค์์ ์ฐจ์ด๐ : ์ฝ์ด ์ ๋๋ฉ์ด์ ์ ๋ทฐ๊ฐ ์..
-
Markdown & TyporaDoc 2021. 3. 31. 11:36
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Markdown๊ณผ Typora ํด์ ๋ํด ๊ฐ๋จํ ์์๋ณด๊ฒ ์ต๋๋คโ๏ธ Markdown? : ๋งํฌ๋ค์ด์ ๋ฌธ์ ์์ฑ์ ํ๋ฉด์ ๊ธ์์ ํด๋น ์์์ ์ ํ ์ ์๋ ๋ฌธ๋ฒ์ผ๋ก ๊นํ ๋ฑ์์ Readme.md์์ ์ด md๊ฐ ๋งํฌ๋ค์ด์ ํ์ฅ์๋ช ์ผ๋ก ์์ฆ ๋ณดํธํ๋ ๋ฌธ์ ์์ฑ์ ์ฝ๊ณ ๋ค์ํ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋๋ค. -> ํ ์คํธ ๊ธฐ๋ฐ ๋งํฌ์ ์ธ์ด๋ก HTML๋ก ๋ณํ ๊ฐ๋ฅ Markdown ์ฅ์ 1) ์ ์ํ๊ณ ํธ๋ฆฌํจ (๋ค์ํ ํํ ๋ณํ) 2) ๋ณ๋ค๋ฅธ ํด ์์ด ์์ฑ 3) ํ ์คํธ ํ์ผ ํํ์์ผ๋ก ์ฉ๋์ ์ ๊ฒ ์ฐจ์งํ๋ฉฐ ๋ฒ์ ๊ด๋ฆฌ์์คํ ์ผ๋ก ์ด๋ ฅ ๊ด๋ฆฌ์ ์์ 4) ๋ค์ํ ํ๋ซํผ์์ ์ง์ Markdown ๋จ์ 1) ํ์ค์ด ์ ํด์ ธ ์์ง ์์ ๋ณํ๋๋ ๋ฐฉ์์ด ๋ค์ํจ 2) HTML ๋งํฌ์ ์ ๋ชจ๋ ๋ถ๋ถ์ ๋..
-
Homebrew & Vapor ToolboxiOS 2021. 3. 30. 14:30
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Homebrew์ Vapor Toolbox์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ Homebrew? : ํ๋ธ๋ฃจ(Homebrew)๋ ์คํ์์ค ์ํํธ์จ์ด ํจํค์ง ๊ด๋ฆฌ ์์คํ ์ ์ผ์ข ์ผ๋ก macOS์ ์ํํธ์จ์ด ์ค์น๋ฅผ ์ง์ํด์ค๋ค. ์ฆ, macOS์ฉ ํจํค์ง ๊ด๋ฆฌ์๋ก ์ํํธ์จ์ด์ ์ฌ์ด ์ค์น์ ์ ๋ฐ์ดํธ ๋ฐ ์ญ์ ๋ฑ์ ๊ด๋ฆฌํด์ค๋ค. Homebrew ์ค์น ๋ฐ ํจํค์ง ๊ด๋ฆฌ 1) Xcode Command Line Tool ์ค์น $ xcode-select --install 2) Homebrew ์ค์น $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" : ํฐ๋ฏธ๋์ ํด๋น ์ปค๋งจ..
-
Core GraphicsiOS 2021. 3. 29. 16:41
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋ ํฌ์คํ ์ Core Graphics(์ฝ์ด ๊ทธ๋ํฝ์ค)์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ค Core Graphics๋? : Quarts(์ฟผ์ธ )๋ผ๋ ๊ทธ๋ํฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ ๋ค์ด์๋ ๊ธฐ์ ์ ํ์ฉํ์ฌ 2D ๋ ๋๋ง, ์ํ ๊ฒฝ๋ก ๊ธฐ๋ฐ ๋๋ก์, ์ํฐ ์ผ๋ฆฌ์ด์ฑ ๋ ๋๋ง, ๊ทธ๋ผ๋์ธํธ, ์ด๋ฏธ์ง, ์์, PDF ๋ฌธ์ ๋ฑ๋ฑ์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ!! : ์ฝ์ด ๊ทธ๋ํฝ์ค ํ๋ ์ ์ํฌ๋ ์ฟผ์ธ ๋๋ก์ ์์ง ๊ธฐ๋ฐ์ผ๋กํ 2D ์์ (CG๊ฐ ์์ ๋ถ์๊ฒ๋ค..!) -> 2์ฐจ์ ๊ทธ๋ํฝ์ ๊ทธ๋ฆด ์ ์๋ ๊ทธ๋ํฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Quarts? : ์ฝ์ด ๊ทธ๋ํฝ์ค + ์ฝ์ด ์ ๋๋ฉ์ด์ ์ผ๋ก ๊ตฌ์ฑ (ํ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋) drawRect : ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ํด์ค ์ /์ขํ/ํฝ์ : CGFloat ํํ๋ก ์ผ์ชฝ ์๋จ 0,0 ๋ถํฐ ์์น๋ฅผ ๋ํ๋ด์ค CGSi..