์Šค์œ„ํ”„ํŠธ ๋ฌธ๋ฒ•

ยท๐ŸŽ iOS & Swift
๋“ค์–ด๊ฐ€๋ฉฐ โ˜€๏ธ ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๊ณต๋ถ€์˜ ํ•„์š”์„ฑ์„ ๋Š๊ปด์„œ ์ดˆ์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ€ ์กฐ๊ธˆ์”ฉ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ง€๊ธˆ ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ๋“ค์ด ๋‹จ์ˆœ ์ •๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š๋„๋ก ๊ณ„์† ๊ณ ๋ฏผํ•˜๊ณ  ์—ฐ๊ตฌํ•˜๋Š” ์ž์„ธ๋ฅผ ๊ฐ€์ง€๋„๋ก ํ•˜์ž. ๊ธฐ์ดˆ๋Š” ๊ฐ€์žฅ ์‰ฌ์›Œ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ€์žฅ ์ค‘์š”ํ•ด์„œ ๊ทธ ์˜๋ฏธ๊ฐ€ ์žˆ์Œ์„ ๊นจ๋‹ซ์ž. if๋ฌธ ๐Ÿ™‹๐Ÿป‍โ™‚๏ธ ํŠน์ • ์กฐ๊ฑด์—์„œ๋งŒ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์‹คํ–‰ํ•˜์ง€ ๋ง์•„์•ผ ํ•˜๊ฑฐ๋‚˜ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์“ฐ์ธ๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ์ •๋ง ํ•„์ˆ˜์ ์œผ๋กœ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„์ˆ˜์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์ด๋‹ค. ์ค‘์š”ํ•œ ๊ฑด if๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ switch-case๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ• ์ง€๋Š” ์ ..
ยท๐ŸŽ iOS & Swift
์•ˆ๋…•ํ•˜์„ธ์š”, ํƒœ๋ผ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์€ ์ •๋ฆฌํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•ด๋‘์–ด ์–ดํˆฌ๊ฐ€ ์กฐ๊ธˆ ๋”ฑ๋”ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.. ์ดํ•ด๋ถ€ํƒ๋“œ๋ ค์š” ๐Ÿฅฒ ์ด๋ฒˆ ๊ธ€์€ ์–ดํˆฌ๋„ ๋”ฑ๋”ฑํ•˜๊ณ  ์ค„๊ธ€ ํ˜•์‹์ด๋‹ค. ๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฐœ๋…์ด๋‹ค. ๋‹จ์ˆœํ•˜๊ฒŒ ๋งž์„œ๋ณด์ž. ์š”์•ฝ ํ”„๋กœํ† ์ฝœ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ œ๋„ค๋ฆญ Placeholder์˜ ๋Š๋‚Œ์ด๋‹ค. Associated Type์€ ์›๋ž˜ typealias์˜€๋Š”๋ฐ, Swift 2.2๋ถ€ํ„ฐ Associated Type์ด๋ž€ ํ‚ค์›Œ๋“œ๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค. ์„ค๋ช… ์œ„์˜ ๋‘ ๊ฐ€์ง€ ๊ด€์ ์—์„œ ๋ณด๋ฉด ๋‚ด์šฉ์€ ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š๋‹ค. ์•„๋ž˜์˜ ์˜ˆ์‹œ๋กœ ํ•จ๊ป˜ ์ดํ•ดํ•ด๋ณด๊ฒ ๋‹ค. ์šฐ์„  ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์ž ๊น ์ดํ•ดํ•ด๋ณด๋ฉด, ํ”„๋กœ์ ํŠธ๋Š” ํ˜„์žฌ MVVM ํŒจํ„ด์„ ๋”ฐ๋ฅด๊ณ  ์žˆ๋‹ค. ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ViewModel์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค. ๋ณดํ†ต ๊ฐ ViewControlle..
ยท๐ŸŽ iOS & Swift
์•ˆ๋…•ํ•˜์„ธ์š”, ํƒœ๋ผ์ž…๋‹ˆ๋‹ค~ ์˜ค๋Š˜์€ Convenience initializer๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๋ฅผ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Designated initializer, Covenience initializer ์ฐจ๋ก€๋Œ€๋กœ ์ง€์ • ์ด๋‹ˆ์…œ๋ผ์ด์ €, ํŽธ์˜ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋ผ๊ณ  ํ•ด์„ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ง€์ • ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ํด๋ž˜์Šค(๊ตฌ์กฐ์ฒด)๋‚ด์˜ ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ๊ฐ€ ์ดˆ๊ธฐํ™”๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ด๋‹ˆ์…œ๋ผ์ด์ €์ด๊ณ , ํŽธ์˜ ์ด๋‹ˆ์…œ๋ผ์ด์ €๋Š” ์ถ”๊ฐ€์ ์ธ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๋ณด์กฐ ์ด๋‹ˆ์…œ๋ผ์ด์ €์ž…๋‹ˆ๋‹ค. Designated init ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์ผ๋ถ€๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์„œ Convenience init ์•ˆ์—์„œ Designated init ์„ ํ˜ธ์ถœํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ํฌ์ธํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. Convenience i..
taeeekki
'์Šค์œ„ํ”„ํŠธ ๋ฌธ๋ฒ•' ํƒœ๊ทธ์˜ ๊ธ€ ๋ชฉ๋ก