๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐ˜์‘ํ˜•

Language/Swift

(12)
๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ Swift - ์ ‘๊ทผ์ œ์–ด ์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ๊ตฌ์กฐ์ฒด, ํด๋ž˜์Šค, ํ”„๋กœํผํ‹ฐ, ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•ด ์งš์–ด๋ดค๋Š”๋ฐ์š”. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ ‘๊ทผ์ œ์–ด์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ์ค‘์š”ํ•œ ๋‚ด์šฉ ์ค‘์— '์€๋‹‰ํ™”'๋ผ๋Š” ๊ฐœ๋…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ธ ์ ‘๊ทผ์ œ์–ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ ‘๊ทผ์ œ์–ด - ์ฝ”๋“œ๋ผ๋ฆฌ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ๋•Œ ํŒŒ์ผ ๊ฐ„ ๋˜๋Š” ๋ชจ๋“ˆ ๊ฐ„์— ์ ‘๊ทผ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ. - ์ ‘๊ทผ์ œ์–ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์ƒ์„ธ ๊ตฌํ˜„์€ ์ˆจ๊ธฐ๊ณ  ํ—ˆ์šฉ๋œ ๊ธฐ๋Šฅ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต. ์ ‘๊ทผ์ œ์–ด๊ฐ€ ์™œ ํ•„์š”ํ• ๊นŒ? - ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ์ค‘์š”ํ•œ ์บก์Аํ™”์™€ ์€๋‹‰ํ™”๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ด์œ ๋Š” ์™ธ๋ถ€์—์„œ ๋ณด๊ฑฐ๋‚˜ ์ ‘๊ทผํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ. - ๋ถˆํ•„์š”ํ•œ ์ ‘๊ทผ์œผ๋กœ ์˜๋„์น˜ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•˜๊ฑฐ๋‚˜ ๊ผญ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ œ๊ณตํ•ด์•ผํ•˜๋Š”๋ฐ ์ „์ฒด ์ฝ”๋“œ๊ฐ€ ๋…ธ์ถœ๋  ..
๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ Swift - Struct, Class, Property, Method ๊ธฐ๋ณธ๊ธฐ ๋ณด์ถฉ์„ ์œ„ํ•ด ์Šค์œ„ํ”„ํŠธ์˜ ๊ต๊ณผ์„œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ์•ผ๊ณฐ์ฑ…์„ ๋‹ค์‹œ ๋ณด๋Š” ์ค‘์ธ๋ฐ์š”. ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์ด์ง€๋งŒ ์—ญ์‹œ ๋ณผ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๊ฒƒ ๊ฐ™๋„ค์š” ใ…‹ใ…‹ใ…Žใ…Ž ์ž‘๋…„์— ์›ํ‹ฐ๋“œ์—์„œ ์ง„ํ–‰ํ–ˆ๋˜ ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ์„ ๋•Œ๋„ ์•ผ๊ณฐ๋‹˜์ด ๊ธฐ์ดˆ์ ์ธ ๊ฐœ๋…์„ ๋งค์šฐ ๊ฐ•์กฐํ•˜์‹œ๋ฉด์„œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ 1์ฐจ์‹œ์— ์†Œ๊ฐœํ•ด์ฃผ์…จ๋˜ ๊ฒƒ์ด ์ƒ๊ฐ๋‚˜๋„ค์š”.. ^^.. ๋งค๋‹ฌ 1๊ถŒ์”ฉ์€ ๊ผญ ์ฑ…์„ ์ฝ์œผ๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ์ด๋ฒˆ ๋‹ฌ์—” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์‚ฌ์‹ค๊ณผ ์˜คํ•ด. ๋ผ๋Š” ์ฑ…์„ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋ฒˆ ๋‹ฌ๊นŒ์ง„ ์ž๊ธฐ๊ณ„๋ฐœ์„œ, ์ธ๋ฌธํ•™ ๋„์„œ๋ฅผ ํ•œ ๋‹ฌ์— 1~2๊ถŒ ์ •๋„ ์ฝ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ๋‹ฌ์—” ๊ฐœ๋ฐœ ์„œ์ ์„ ์ข€ ์ฝ์–ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค ! ์จ‹๋“ , ์ฑ…์„ ์ฝ๊ธฐ ์ „์— Swift์—์„œ์˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ฐ๋‹ค์ž„์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์„ ์งš์–ด๋ณด๊ณ ์ž ๋ณต์Šต์„ ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ! 1ํƒ„์—์„œ๋Š” ๊ตฌ์กฐ์ฒด, ํด๋ž˜์Šค, ํ”„๋กœํผํ‹ฐ, ๋ฉ”..
Swift) SOLID ์›์น™ in Swift SOLID ์›์น™์ด๋ž€ ? SOLID ์›์น™์ด๋ž€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์— ๋” ์ข‹์€ ์•„ํ‚คํ…์ณ๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์ง€์ผœ์•ผํ•˜๋Š” ์›์น™๋“ค์˜ 5๊ฐ€์ง€๋ฅผ ์•ž์˜ ์•ฝ์–ด๋งŒ ๋”ฐ์„œ ์ •๋ฆฌํ•œ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค. SOLID ์›์น™์„ ์™œ ์•Œ์•„์•ผํ•˜์ฃ  ? ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ๋‹น์žฅ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ์ƒˆ๋กญ๊ฒŒ ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ ๋”์šฑ ์ƒ์‚ฐ์„ฑ ์žˆ๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ์ข‹๊ฒ ์ฃ .? ์ด๋Ÿฌํ•œ ์ข‹์€ ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ์›์น™๋“ค์„ ์ •๋ฆฌํ•œ๊ฒŒ SOLID ์›์น™์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. VIPER๋‚˜ MVVM๋„ ๋ชจ๋‘ ์ด๋Ÿฐ ์›์น™์— ์ž…๊ฐํ•ด์„œ ๋งŒ๋“ค์–ด์กŒ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. SOLID ์›์น™์„ ์ ์šฉํ•˜์—ฌ ์„ค๊ณ„ํ•˜๋ฉด ! 1. ์žฌ์‚ฌ์šฉ๊ณผ ์œ ์ง€๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์šด, ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํŠผํŠผํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฉฐ ๋†’์€ ํ™•์žฅ์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. 2. ๋†’์€ ..
Swift) ํ”„๋กœํ† ์ฝœ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์šฐ๋ฆฌ๊ฐ€ iOS ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ์“ฐ๋Š” Swift ์–ธ์–ด๋Š” ํ”„๋กœํ† ์ฝœ ์ง€ํ–ฅ ์–ธ์–ด ๋ผ๊ณ  ํ•˜์ฃ  ! ํ”ํžˆ ์•Œ๊ณ ์žˆ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์‚ฌ๋ฌผ์„ ๊ฐ์ฒด๋กœ ํ˜•์„ฑํ•˜์—ฌ ๊ณตํ†ต์ ์„ ๊ฐ–๋Š” ๋ชจ๋“  ๊ณณ์—์„œ ์ƒ์†๋ฐ›๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋กœ์ง์„ ์บก์Аํ™” ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ SuperClass์— ์ข…์†์ ์ด๋ผ๋Š” ์ ๊ณผ Value Type์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋‹จ์ ์ธ๋ฐ์š” ! ๋˜, ๋‹จ ํ•˜๋‚˜์˜ SuperClass ๋งŒ ์ƒ์†ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๊ธฐ๋Šฅ๋„ ํ™•์žฅ๋˜๋ฏ€๋กœ ์ด์— ๋”ฐ๋ผ ๋ณต์žก๋„๊ฐ€ ๋†’์•„์ง€๊ณ  ๊ด€๋ฆฌ๋„ ์–ด๋ ค์›Œ ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ํ”„๋กœํ† ์ฝœ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ๋‹ค์ค‘ ํ”„๋กœํ† ์ฝœ์„ ๊ตฌํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ! ๋˜, ํ”„๋กœํ† ์ฝœ ๊ทœ์น™์„ class, struct, enum์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ™•์žฅ ๋ถ€๋ถ„์—์„œ๋„ OOP..
Swift ) ๊ธฐ์ดˆ ๋ฌธ๋ฒ• 6์ผ์ฐจ - Class ์™€ Struct ์ง€๊ธˆ๊นŒ์ง€๋Š” ํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด์˜ ์ฐจ์ด๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋ชจ๋ฅด๊ณ  ๊ทธ๋ƒฅ ViewController๋Š” Class.. Model ๋งŒ๋“ค ๋•Œ๋Š” Struct .. ๋ฅผ ์จ์™”์Šต๋‹ˆ๋‹ค ! ํ•˜์ง€๋งŒ.. ์ด์ œ๋Š” ์กฐ๊ธˆ์ด๋ผ๋„... ์•Œ์•„์•ผ ํ•  ๋•Œ๊ฐ€ ์˜จ ๊ฒƒ ๊ฐ™๋„ค์š” ^_^ ๐Ÿ“Œ Class์™€ Struct์˜ ๊ณตํ†ต์ ์€ ? ๊ฐ’์„ ์ €์žฅํ•  ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์  ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๊ฐ’์—. ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ํ”„๋กœํผํ‹ฐ ๊ฐ’์— ์ ‘๊ทผ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. extension์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Protocol์„ ์ฑ„ํƒํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ Class์™€ Struct์˜ ์ฐจ์ด์ ์€ ? ๐ŸŽฏ Class ์ฐธ์กฐ ํƒ€์ž… ARC๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ฐ™์€ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค..
Swift ) Closure ์˜ค๋Š˜์€ ์Šคํ„ฐ๋”” ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ํด๋กœ์ €์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๊ณต๋ถ€ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค ! ๐ŸŒ€Closure ๋ž€? - ์ผ์ • ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋ธ”๋ก์œผ๋กœ ๋ชจ์•„๋†“์€ ๊ฒƒ - func ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค์—ˆ๋˜ ํ•จ์ˆ˜ : named Closure - ์ผ๋ฐ˜์ ์ธ ํด๋กœ์ € : Unnamed Closure๋ฅผ ์ง€์นญ { (Parameters) -> Return Type in ์‹คํ–‰ ๊ตฌ๋ฌธ } ๐ŸŒฟ1๊ธ‰ ๊ฐ์ฒด๋กœ์„œ์˜ ํŠน์ง• - ํด๋กœ์ €๋ฅผ ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜์— ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž…์œผ๋กœ ํด๋กœ์ €๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์œผ๋กœ ํด๋กœ์ €๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ํ•จ์ˆ˜์™€ Closure์˜ ์‚ฌ์šฉ ๋ฐฉ์‹์˜ ์ฐจ์ด : Closure๋Š” ํ•จ์ˆ˜๋ฅผ func ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ์„ ์–ธํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ์ทจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. - ์ผ๋ฐ˜์ ..
Swift ) @discardableResult ๋ž€? ์˜ค๋Š˜์€ @discardableResult ๋ผ๋Š” ์นœ๊ตฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ! ์ œ๊ฐ€ ํ•˜๊ณ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ์— ์“ฐ์ด๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์ €๋„ ๊ถ๊ธˆํ•ด์ ธ์„œ ๊ฐ€์ ธ์™€๋ดค์Šต๋‹ˆ๋‹ค ! ๐ŸŒ€ @discardableResult - ์˜๋ฏธ: ๊ฒฐ๊ณผ๊ฐ’์„ discardable ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๋ผ๋Š” ์˜๋ฏธ - ํ•จ์ˆ˜์˜ return๊ฐ’์„ discadable ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค -> return ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ warning ๋ฉ”์„ธ์ง€๋ฅผ ๋‚˜์˜ค์ง€ ์•Š๋„๋ก ์„ค์ • ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ Warning์„ ๋ณด๊ฒŒ๋˜๋Š”๋ฐ์š” ! ใ…Žใ…Ž ๊ทธ์ค‘์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด Result of call to '์–ด์ฉŒ๊ตฌ' is unused ๋ผ๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ณธ์ ์ด ์žˆ์„ ๊ฑฐ์—์š” ! ๊ฒฐ๊ณผ๋ฅผ return ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ’์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์— ๋œจ๋Š” ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค ! ๊ทธ๋ ‡์ง€๋งŒ.. ! ..
Swift ) ๊ธฐ์ดˆ ๋ฌธ๋ฒ• 5์ผ์ฐจ - UnWrap ์˜ต์…”๋„ ๋ณ€์ˆ˜ ๐ŸŒ€ Optional ์ด๋ž€ ? - ํƒ€์ž…์— ๊ฐ’์ด ์žˆ์„์ˆ˜๋„ ์—†์„์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ณ  ํƒ€์ž…๋’ค์— ?๋ฅผ ๋ถ™์—ฌ์„œ Optional ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ๋ณ€์ˆ˜์˜ ๊ฐ’์ด nil ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ Optional ๋ณ€์ˆ˜๋“ค์€ ๊ฐ’์ด Optional("—-") ํ˜•์‹์œผ๋กœ ํ‘œ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์— value ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” unwrapping์„ ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. unwrapํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋จผ์ € Force unwrapping์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’ ๋’ค์— !๋ฅผ ๋ถ™์ด๋ฉด ๋˜๋Š”๋ฐ ์ด๋•Œ value๊ฐ€ nil์ธ ๊ฒฝ์šฐ์— force unwrapping์„ ์‹œ๋„ํ•˜๋ฉด ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๐ŸŒ€ Optional ์„ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ? Optinal ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์€ Optional Binding ๊ณผ Optinal Chaini..

๋ฐ˜์‘ํ˜•