์๋
ํ์ธ์, ํ๋ผ์
๋๋ค. ์ด๋ฒ ๊ธ์ ์ ๋ฆฌํํ๋ก ์์ฑํด๋์ด ์ดํฌ๊ฐ ์กฐ๊ธ ๋ฑ๋ฑํ ์ ์์ต๋๋ค.. ์ดํด๋ถํ๋๋ ค์ ๐ฅฒ ์ด๋ฒ ๊ธ์ ์ดํฌ๋ ๋ฑ๋ฑํ๊ณ ์ค๊ธ ํ์์ด๋ค. ๋๋ฌด ์ด๋ ต๊ฒ ์๊ฐํ ํ์๊ฐ ์๋ ๊ฐ๋
์ด๋ค. ๋จ์ํ๊ฒ ๋ง์๋ณด์. ์์ฝ ํ๋กํ ์ฝ์์ ์ฌ์ฉ๋๋ ์ ๋ค๋ฆญ Placeholder์ ๋๋์ด๋ค. Associated Type์ ์๋ typealias์๋๋ฐ, Swift 2.2๋ถํฐ Associated Type์ด๋ ํค์๋๋ก ๋ฐ๋์๋ค. ์ค๋ช
์์ ๋ ๊ฐ์ง ๊ด์ ์์ ๋ณด๋ฉด ๋ด์ฉ์ ํฌ๊ฒ ์ด๋ ต์ง ์๋ค. ์๋์ ์์๋ก ํจ๊ป ์ดํดํด๋ณด๊ฒ ๋ค. ์ฐ์ ํ๋ก์ ํธ์ ๋ํด ์ ๊น ์ดํดํด๋ณด๋ฉด, ํ๋ก์ ํธ๋ ํ์ฌ MVVM ํจํด์ ๋ฐ๋ฅด๊ณ ์๋ค. ๋ค์ ํ๋ก์ ํธ์์๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ViewModel์ ๊ตฌํํด์ผ ํ๋ค. ๋ณดํต ๊ฐ ViewControlle..
IOS
ํด๋น ๊ธ์ ์ฌ์ฉ๋ ์์๋ 2๊ฐ์ง ๊ธ์์ ๊ฐ์ ธ์์ต๋๋ค. ์ถ์ฒ๋ ๊ธ ๋ง์ง๋ง์ ์ ์ด๋์์ต๋๋ค. ์ฐธ๊ณ ํ์
์ ๊ธ ์ฝ์ด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค :) ๐ฌ ๋ค์ด๊ฐ๊ธฐ์ ์ ๊ฒฐ๋ก ๋ถํฐ ๋งํ๊ณ ์์ํ๊ฒ ์ต๋๋ค. typealias๋ ์ฝ๋๋ฅผ ์ข ๋ ๊ฐ๊ฒฐํ๊ฒ ๊ฐ๋
์ฑ์๊ฒ ์์ฑํ๊ธฐ ์ํด์ ์ฌ์ฉํฉ๋๋ค. ์ธ์ ์ฌ์ฉํ๋๊ตฌ์? ์ ๋ต์ ์์ต๋๋ค. ๋ค๋ง ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์์ฃ . ์ด๋ฒ ๊ธ์์๋ ๊ทธ ๋ถ๋ถ์ ๋ํด์ ํจ๊ป ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๐ typealias๋ typealias๋ ํ์
์ ๋ถ์ผ ์ ์๋ ๋ณ์นญ, ์ฝ์นญ์
๋๋ค. typealias (์ฌ์ฉํ ๋ณ๋ช
) = (์กด์ฌํ๋ ํ์
) ex) typealias Nickname = Int ex) typealias Codable = Decodable & Encodable ex) ... typealias๋ ์..
์๋
ํ์ธ์, ํ๋ผ์
๋๋ค~ ์ค๋์ Convenience initializer๊ฐ ๋ฌด์์ธ์ง ์์๋ณด๊ฒ ์ต๋๋ค! ์ด๋์
๋ผ์ด์ ๋ ํฌ๊ฒ 2๊ฐ์ง๋ฅผ ์ดํด๋ณผ ์ ์์ต๋๋ค. Designated initializer, Covenience initializer ์ฐจ๋ก๋๋ก ์ง์ ์ด๋์
๋ผ์ด์ , ํธ์ ์ด๋์
๋ผ์ด์ ๋ผ๊ณ ํด์ํด๋ณผ ์ ์๋๋ฐ, ์ง์ ์ด๋์
๋ผ์ด์ ๋ ํด๋์ค(๊ตฌ์กฐ์ฒด)๋ด์ ๋ชจ๋ ํ๋กํผํฐ๊ฐ ์ด๊ธฐํ๋ ์ ์๋๋ก ํด์ฃผ๋ ์ด๋์
๋ผ์ด์ ์ด๊ณ , ํธ์ ์ด๋์
๋ผ์ด์ ๋ ์ถ๊ฐ์ ์ธ ์์
์ ํ ์ ์๋๋ก ํด์ฃผ๋ ๋ณด์กฐ ์ด๋์
๋ผ์ด์ ์
๋๋ค. Designated init ์ ํ๋ผ๋ฏธํฐ ์ผ๋ถ๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์ ํด์ Convenience init ์์์ Designated init ์ ํธ์ถํด์ ์ธ ์ ์์ต๋๋ค. ์ค์ํ ํฌ์ธํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. Convenience i..
์๋
ํ์ธ์, ํ๋ผ์
๋๋ค :) ์์ฆ์๋ ํ ๋จ๊ณ ๋ ์ฑ์ฅํ๊ธฐ ์ํด์ ๋ค์ ๊ธฐ์ด๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ณต๋ถํ๋ ์ค์
๋๋ค. ํ์คํ ๊ณต๋ถ๋ฅผ ํ๋ค๋ณด๋ ์ด์ ์ ์๋ฌด ์๊ฐ์์ด ์์ฑํ๋ ์ฝ๋๋ ๊ฐ๋
๋ค์ด ๋์ ํ ๋๋๋ผ๊ตฌ์... ์๊ณ ์ฌ์ฉํ๋๊ฑฐ๋ ๋ชจ๋ฅด๊ณ ์ฌ์ฉํ๋๊ฑฐ๋์ ์ญ์ ์์ฒญ๋ ์ฐจ์ด์ด๊ธฐ ๋๋ฌธ์ ํญ์ ๊ธฐ์ด๋ถํฐ ํํํ ํฉ์๋ค... (๊ทผ๋ฐ ๊ธฐ์ด๋ง ๊ณต๋ถํ๋ค๋ณด๋ฉด ํฅ๋ฏธ๊ฐ ๋จ์ด์ง๋๊ฑด ์ฌ์ค... ๊ทธ๋ฌ๋๊น ์ ์ ํ ์๋ฆฌ์กฐ๋ฆฌ ์์์ฃ ...? ๐) frame vs bounds ์ค๋์ frame๊ณผ bounds์ ๋ํด ์ ๋ฆฌํ ๊ฑฐ์์. ์ ๊ทผ๋ฐ, ์์ฝ๋ฒ์ ์ด๋๊น ์์ธํ์ง ์์๋ ์ดํดํด์ฃผ์ธ์... ๊ผผ๊ผผํ ์ค๋ช
๋ฒ์ ์ ๋์ค์... ์ฐ์ ๋ค ์ดํดํ๊ณ ๋์ ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ฉด frame๊ณผ bounds์ ์ฐจ์ด๋ ๋ค์ 3๊ฐ์ง๋ก ์ ๋ฆฌํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ขํ๊ณ์ ๋ํ ์ฐจ..
์ฐ๋ฆฌ๋ ์ต์
๋์ ๋ํด ๋ฌผ์์ ๋, ์ผ๋ง๋ ์ ๋๋ตํ ์ ์์๊น? Summary ์ต์
๋์ ๋ณ์์ ๊ฐ์ด ์์ ์๋ ์๊ณ , ์์ ์๋ ์๋ ์ํ(nil)๋ฅผ ํํํ๊ธฐ ์ํด Swift์ ๋์
๋ ๊ฐ๋
์
๋๋ค. ์ต์
๋์ Enum ํํ๋ก ์ ์๋์ด ์๊ณ , ๊ฐ์ ์๊ณ ์์์ ๊ฐ Case๋ก ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ต์
๋๋ก ํํ๋ ๊ฐ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ Forced Unwrapping(๊ฐ์ ์ธ๋ํ), Optional Binding(์ต์
๋ ๋ฐ์ธ๋ฉ), Nil-Coalescing Operator(Nil๋ณํฉ์ฐ์ฐ์)๊ฐ ์์ต๋๋ค. ์ต์
๋ ์ฒด์ด๋์ ํตํด์ ์ต์
๋ ๋ฐ์ธ๋ฉ์ผ๋ก ํํ๋ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ์ต์
๋(Optional) ๋๋ ๋
์ ์ต์
๋์ ์๋ฏธ ์ ์ฐ๋ฆฌ๋ ๊ทผ๋ณธ์๋ ๊ฐ๋ฐ์์ด๊ธฐ ๋๋ฌธ์ Apple ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๋๋ก ํ์ฃ . (..
์๋
ํ์ธ์~ ์ด์ ๋ ์ด๋ฐ ์์ ์ด์๋ค๋ ์ ๊ธฐ๋กํด๋์ผ๋ ค๊ณ ํฉ๋๋ค. ๋๊ตฐ๊ฐ๋ ์ ์ฒ๋ผ ์ด์๋ฅผ ๊ฒช๊ณ ์ฐพ์ผ๋ ค๊ณ ํ ํ
๋๊น์! ๋์์ด ์กฐ๊ธ์ด๋ผ๋ ๋๋ฉด ์ข๊ฒ ์ต๋๋ค. ํน์ Info.plist๋ฅผ ์ฎ๊ธฐ๊ณ ๋๋๊น ์ ์์ ์ผ๋ก ๋น๋๊ฐ ์๋์๋์? ๊ทธ๋ผ ๊ฑฐ์ 90% ํ๋ฅ ๋ก ์ด ์ด์์ผ ๊ฒ ๊ฐ์์. (์ข ๊ณผ์ฅ๋๊ธฐ๋ ํ์ง๋ง...ใ
ใ
) ์ด์ ์ํฉ ๋ณดํต ์ฒ์ ํ๋ก์ ํธ๋ฅผ ์ธํ
ํ ๋, Info.plist์ ์์น๋ฅผ ์ฎ๊ฒผ์ ๋ ํด๋น ์ด์๊ฐ ๋ฐ์ํฉ๋๋ค. ์๋ Info.plist๋ ํ๋ก์ ํธ ๋ฐ๋ก ๋ฐ์ ์์นํด์๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ํด๋๋ก ์ฎ๊ธฐ๊ฑฐ๋ ์์น๋ฅผ ์ฎ๊ฒผ์ ๋ ๊ทธ ๊ฒฝ๋ก๋ฅผ ๋ค์ ์ง์ ํด์ฃผ์ด์ผ ํด์. Showing All Messages Build input file cannot be found: '/Users/taehy.k/Desktop/MVVMSamp..
๐ฌ ๋ค์ด๊ฐ๊ธฐ ์ ์(Prepare) ์๊ฐ๋ณด๋ค ์ฐ๋ฆฌ๋ ํ์ด์ง ๋๋ ํ๋ฉด์ ์์ฃผ ๋ง๋ฉ๋๋ค. ์ฑ์ ์จ๋ณด๋ฉ ํ๋ฉด๋ถํฐ ์์ํด, ์บ๋ฌ์
๋ทฐ(Carousel View), ์๋๋ก์ด๋์์๋ View Pager๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๋ ํญ ๊ฐ ์ ํ๋๋ ํ๋ฉด ๋ฑ ์ ๋ง ๋ง์๋ฐ์! (์ฌ์ค ์์ํ๋ฉด์ ๋ค ์ฒจ๋ถํ๊ณ ์ถ์ง๋ง,,, ๊ท์ฐฎ์๊ฑด ์๋น๋ฐ..ใ
ใ
,,, ๊ผญ ์ฒจ๋ถํ๋๋ก ํ๊ฒ ์ต๋๋ค..) ์์์ ์ธ๊ธํ ํ๋ฉด์ ๊ตฌํํ๋๋ฐ์๋ ๊ทธ ์ข
๋ฅ๋งํผ ๋ค์ํ ๋ฐฉ๋ฒ๋ค์ด ์กด์ฌํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด๋ค๊ฑฐ๋ ์คํฌ๋กค๋ทฐ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ์ค๋ ์ ๊ฐ ์๊ฐํด๋๋ฆด ์ปฌ๋ ์
๋ทฐ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๊ฒ ๋ค์. ํ์ํ ์ํฉ์ ๋ง๊ฒ ์ ์ ํ๊ฒ ์ฌ์ฉํ๋ฉด ๋๊ฒ ์ฃ ? ์ค๋ ์ ๊ฐ ์์๋ก ์ค๋ช
๋๋ฆด ํ๋ฉด์ ์ฑ์ ์ฌ์ฉ์๊ฐ ์ฒ์ ์์ํ๊ฒ ๋๋ฉด ๋ง๋๊ฒ ๋๋ ์จ๋ณด๋ฉ ํ๋ฉด(Onboarding View)์
๋๋ค..
๋ค์ด๊ฐ๊ธฐ ์ ์ ํ๋ก์ ํธ๋ฅผ ํ๋ค๋ณด๋ฉด ๋ฐฐ์ด ๊ทธ๋๋ก๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ด์ธ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐ์ ๋ง๊ฒ ๋ณํ์์ผ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๊ทธ๋ด๋๋ง๋ค ์ฐ๋ฆฌ๋ ์กฐ๊ฑด๋ฌธ์ ์ด์ฉํด ๋ถ๊ธฐ์ฒ๋ฆฌ๋ฅผ ํ๊ฑฐ๋ ์ฝ๋๋ฅผ ์ ๋ฒ ๊ธธ๊ฒ ์์ฑํด์ ๋ฐฐ์ด์ ์ฒ๋ฆฌํ๊ณ ๋ ํ๋๋ฐ์. ์ ์ญ์๋ ๊ทธ๋ฐ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค. ์ด๋ฒ์ SOPT๋ผ๋ IT ๋ฒค์ฒ ์ฐฝ์
๋์๋ฆฌ์์ APPJAM ์ด๋ผ๋ 3์ฃผ๊ฐ์ ํฐ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ค์ํ๊ฒ ๋๋ ๊ฒ ์ค ํ๋๋ ๋ฐฐ์ด์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ํ๋ ๊ฒ์ด์์ต๋๋ค. ์๋์์ ์๊ฐํ๋ ๋ด์ฉ์์๋ ์ ๋ง ์ผ๋ถ๋ถ๋ง ๋ค๋ฃฌ ๊ฒ์ธ๋ฐ์. ์ด ์ญ์ Apple Develeoper ๊ณต์ ๋ฌธ์์ ์ ๋ง ์์ธํ๊ฒ ์ ๋์์์ต๋๋ค. (์ง์ง ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ๋๋ผ๋ ๊ฒ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ ์ฝ์ ์ธ ๊ฒ ๊ฐ๋ค์..ใ
ใ
) ๋ญ ์ฌํผ! ์ค๋์ ๋ฐฐ์ด์์ ์ฌ์ฉ๋๋ ๊ณ ..