Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป
๋ฐ˜์‘ํ˜•

Swift 57

[Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ๊ณ ์ฐจํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด์ž (map, filter, reduce)

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค. ์ด์ œ ์Šฌ์Šฌ swift์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ๊ฐœ๋…์ด ๋งˆ๋ฌด๋ฆฌ๋˜์–ด๊ฐ€๋Š”๋ฐ์š”, ์„œ์นญ์„ ํ•˜๋ฉดํ•  ์ˆ˜๋ก ๊ทธ์ €'๊ธฐ์ดˆ!' ์ผ ๋ฟ์ด๋”๋ผ๊ตฌ์š” ^^ ์™ค์ผ€ ์ˆจ๊ฒจ์ง€๊ณ  ์–ด๋ ต๊ณ  ๊ผฌ์•„์ง„ ๋ฌธ๋ฒ•๋“ค์ด ๋งŽ์€๊ฑด์ง€... ์•„์ง ๊ฐˆ๊ธธ์ด ๋จธ๋„ค์š”. ํŒŒ์ด์ฌ์œผ๋กœ ๋‹ค๋ฅธ ๋ถ„์•ผ๋งŒ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์–ธ์–ด๋ฅผ ์ด๋ ‡๊ฒŒ ๋˜ ์ƒˆ๋กญ๊ฒŒ ๊ณต๋ถ€ํ•ด๋ณด๋Š” ๊ฒƒ์ธ๋ฐ, ์•„์ฃผ ์•„์ฃผ ์ƒˆ๋กญ๋„ค์š”! ์–ผ๋ฅธ todo list๋ผ๋„ ๊ฐœ๋ฐœ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค๋ ฅ์„ ๊ฐ€์งˆ ๋•Œ๊นŒ์ง€,,,, ํ™”์ดํŒ… ํ•ด๋ด…์‹œ๋‹ค.! ๊ณ ์ฐจํ•จ์ˆ˜๋ž€? ๋‹ค๋ฅธํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ์ธ์ž๋กœ ๋ฐ›๊ฑฐ๋‚˜, ํ•จ์ˆ˜ ์‹คํ–‰์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•จ์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. swift์˜ ํ•จ์ˆ˜๋Š” ์ผ๊ธ‰๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜์— ์ „๋‹ฌ์ธ์ž๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. swift์—์„œ ์ง€์›ํ•˜๋Š” ๊ณ ์ฐจํ•จ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. map filter reduce ์ด ์„ธ ๊ฐœ์˜ ํ•จ์ˆ˜..

Swift/Swift BASIC 2022.01.23

[Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ํด๋กœ์ €์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ๊ฐœ๋… (closure)

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค! ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ํด๋กœ์ €์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์€ ํŒจ์ŠคํŠธ์บ ํ”„ 30๊ฐœ ํ”„๋กœ์ ํŠธ๋กœ ๋ฐฐ์šฐ๋Š” ios์•ฑ ๊ฐœ๋ฐœ, ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๋“ค์„ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ถœ์ฒ˜๋Š” ๋ฐ‘์—๋‚จ๊ฒจ์š”! ํด๋กœ์ €๋ž€? ํด๋กœ์ €๋Š” ์ฐธ์กฐํƒ€์ž…์ด๊ณ , ์ฝ”๋“œ์—์„œ ์ „๋‹ฌ ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ๊ธฐ๋Šฅ์ด๋ฉฐ, ์ผ๊ธ‰ ๊ฐ์ฒด์˜ ์—ญํ• ์„ ํ•œ๋‹ค. ์ผ๊ธ‰๊ฐ์ฒด๋ž€ ์ „๋‹ฌ์ธ์ž๋กœ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ๊ณ , ๋ณ€์ˆ˜/์ƒ์ˆ˜ ๋“ฑ์œผ๋กœ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ „๋‹ฌ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด ๋  ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ณดํ†ต ํด๋กœ์ €๋ผ๊ณ  ํ•˜๋ฉด ์ด๋ฆ„์—†๋Š” ํ•จ์ˆ˜ ์ฆ‰, ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ์ง€์นญํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋กœ์ €๋Š” named ํด๋กœ์ €, unnamed ํด๋กœ์ € ๋‘˜๋‹ค ํฌํ•จํ•œ๋‹ค. ํด๋กœ์ € ํ‘œํ˜„์‹์€ ๋‹ค์Œ๊ณผ๊ฐ™๋‹ค. ์ต๋ช…ํ•จ์ˆ˜์—ฌ์„œ func๋ผ๋Š” ํ‚ค์›Œ๋“œ๋Š” ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํด๋กœ์ € ํ—ค๋“œ์™€ ํด๋กœ์ € ๋ฐ”๋””๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๋…ธ๋ž€..

Swift/Swift BASIC 2022.01.23

[Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ์˜ˆ์™ธ์ฒ˜๋ฆฌ (throws, do-catch, try)

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์—๋Ÿฌ๋ฅผ ๋‹ค๋ฃจ๋Š” try-catch๊ตฌ๋ฌธ์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด๋„๋ก ํ•˜์ฃ ! ๊ฐ„๋‹จํ•˜๋‹ˆ ์–ด์„œ gogo~ ๋ณธ ํฌ์ŠคํŒ…์€ ํŒจ์ŠคํŠธ์บ ํ”„ 30๊ฐœ๋กœ ๋ฐฐ์šฐ๋Š” ios๊ฐœ๋ฐœ ๊ฐ•์˜์™€, ์ธํ„ฐ๋„ท ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…๋“ค์„ ๋ณด๋ฉฐ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค :) try-catch๋ž€? try-catch๋ž€ ์—๋Ÿฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ์ด๋‹ค. ์—๋Ÿฌ์ฒ˜๋ฆฌ๋ž€, ํ”„๋กœ๊ทธ๋žจ๋‚ด์—์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ƒํ™ฉ์— ๋Œ€์‘ํ•˜๊ณ  ์ด๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. Swift์—์„œ๋Š” ๋Ÿฐํƒ€์ž„์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ, ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐœ์ƒ, ๊ฐ์ง€, ์ „ํŒŒ, ์กฐ์ž‘์„ ์ง€์›ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ชจ๋“ ๊ธฐ๋Šฅ์ด ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š”๋Œ€๋กœ ๋™์ž‘ํ•œ๋‹ค๋Š” ๋ณด์žฅ์€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜ ์ƒํ™ฉ์„ ๊ตฌ๋ณ„ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด์ ์œผ๋กœ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” ๋“ฑ์— ๋Œ€..

Swift/Swift BASIC 2022.01.23

[Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ์˜ต์…”๋„ ์ฒด์ด๋‹ (Optional Chaining) (ํ•จ์ˆ˜์™€ ๋”•์…”๋„ˆ๋ฆฌ-()?, []?, ?()?, ?[]?)

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์˜ต์…”๋„ ์ฒด์ด๋‹์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์‹œ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์€ ํŒจ์ŠคํŠธ์บ ํผ์Šค 30๊ฐœ ํ”„๋กœ์ ํŠธ๋กœ ๋ฐฐ์šฐ๋Š” iOS์•ฑ ๊ฐœ๋ฐœ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ์ž‘์„ฑํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค :) ์˜ต์…”๋„ ์ฒด์ด๋‹(Optional Chaning) ์ด๋ž€? chaining์ด๋ผ๋Š” ๊ฒƒ์€ ์—ฐ์‡„๋ผ๋Š” ๋œป์œผ๋กœ, ์˜ต์…”๋„์„ ์—ฐ์‡„์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. (์˜ต์…”๋„ ๊ฐœ๋…) ๊ธฐ๋ณธ์ ์ธ ํ˜•ํƒœ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. person.contacts?.address person?.contacts?.address ์ด์ œ ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋˜๋ฉด, ์ด๋Ÿฌํ•œ ํ˜•ํƒœ๋ฅผ ๋งŽ์ด ๋ณด๊ฒŒ ๋ ํ…๋ฐ ํ™•์‹คํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ณด๋„๋ก ํ•˜์ž :) ์˜จ์ (.) ์„ ํ†ตํ•ด ๋‚ด๋ถ€ ํ”„๋กœํผํ‹ฐ๋‚˜ ๋ฉ”์„œ๋“œ์— ์—ฐ์†์ ์œผ๋กœ ์ ‘๊ทผํ•˜๊ฒŒ ๋  ๋•Œ, ์˜ต์…”๋„ ๊ฐ’์ด ํ•˜๋‚˜๋ผ๋„ ๊ปด ์žˆ๋‹ค๋ฉด, ์˜ต์…”๋„ ์ฒด์ด๋‹์ด๋‹ค. ์ด๊ฒƒ์ด ๋ฌด์Šจ๋ง์ด๋ƒ, person.c..

Swift/Swift BASIC 2022.01.20

[Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ์—ด๊ฑฐํ˜• (enum)

์•ˆ๋…•ํ•˜์„ธ์š” ๊ฐ์ž์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋“œ๋””์–ด! ์—ด๊ฑฐํ˜•์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ๋ฌธ๋ฒ•์„ ์•Œ์•„๋ด…์‹œ๋‹ค. ์•ž์„œ ๊ณต๋ถ€ํ•  ๋•Œ ํ•ญ์ƒ ๊ตฌ์กฐ์ฒด, ํด๋ž˜์Šค, ์—ด๊ฑฐํ˜•์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค~~ ์ด๋Ÿฐ์‹์˜ ๋ฌธ๊ตฌ๊ฐ€ ๋งŽ์ด ๋“ฑ์žฅํ–ˆ๋Š”๋ฐ์š”, ์—ด๊ฑฐํ˜•์ด ๊ณผ์—ฐ ์–ด๋–ค๊ฒƒ์ผ์ง€ ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ด๊ฑฐํ˜•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ฃ ! ๊ทธ๋Ÿผ ๊ณ !! ๋ณธ ํฌ์ŠคํŒ…์€ ํŒจ์ŠคํŠธ์บ ํผ์Šค์˜ 30๊ฐœ ํ”„๋กœ์ ํŠธ๋กœ ๋ฐฐ์šฐ๋Š” iOS์•ฑ ๊ฐœ๋ฐœ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒจ์ŠคํŠธ์บ ํผ์Šค [์ง์žฅ์ธ ์‹ค๋ฌด๊ต์œก] ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์˜์ƒํŽธ์ง‘, UX/UI, ๋งˆ์ผ€ํŒ…, ๋ฐ์ดํ„ฐ ๋ถ„์„, ์—‘์…€๊ฐ•์˜, The RED, ๊ตญ๋น„์ง€์›, ๊ธฐ์—…๊ต์œก, ์„œ๋น„์Šค ์ œ๊ณต. fastcampus.co.kr ์—ด๊ฑฐํ˜•์ด๋ž€? ์—ด๊ฑฐํ˜•์ด๋ž€, ์—ฐ๊ด€์„ฑ์ด ์žˆ๋Š” ๊ฐ’์„ ๋ชจ์•„ ๋†“์€ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ด„ ์—ฌ๋ฆ„ ๊ฐ€์„ ๊ฒจ์šธ ๊ฐ™์ด ์—ฐ๊ด€๋œ ํ•ญ๋ชฉ๋ผ๋ฆฌ ๋ฌถ์–ด ๋†“์€ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋Ÿผ ์Šค์œ„ํ”„ํŠธ..

Swift/Swift BASIC 2022.01.20

[Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - extension(ํ™•์žฅ)

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ์ต์Šคํ…์…˜์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด๋„๋ก ํ• ๊ฒŒ์š”. ๋ณธ ํฌ์ŠคํŒ…์€ ํŒจ์ŠคํŠธ์บ ํผ์Šค์˜ 30๊ฐœ ํ”„๋กœ์ ํŠธ๋กœ ๋ฐฐ์šฐ๋Š” iOS์•ฑ๊ฐœ๋ฐœ with Swift ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. extension(์ต์Šคํ…์…˜) ์ด๋ž€? extension(์ต์Šคํ…์…˜, ํ™•์žฅ) ๊ธฐ๋Šฅ์€ ์ด์ „์˜ ๋‚ด๋ถ€ ์†Œ์Šค๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ์›๋ณธ ํƒ€์ž…๋“ค์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค. ๊ธฐ์กด์˜ ํด๋ž˜์Šค, ์—ด๊ฑฐํ˜•, ํ”„๋กœํ† ์ฝœ์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ต์Šคํ…์…˜์ด ํƒ€์ž…์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์—ฐ์‚ฐ ํƒ€์ž… ํ”„๋กœํผํ‹ฐ / ์—ฐ์‚ฐ ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ํƒ€์ž… ๋ฉ”์„œ๋“œ / ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ์ •์˜ ์ƒˆ๋กœ์šด ์ƒ์„ฑ์ž (initializer)์˜ ์ œ๊ณต subscripts ์ ‘๊ทผ๋ฐฉ์‹ ์ •์˜ ์ค‘์ฒฉ ํƒ€์ž…์˜ ์ •์˜ ๋ฐ ์‚ฌ์šฉ ํŠน์ • ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•  ์ˆ˜..

Swift/Swift BASIC 2022.01.20

[Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ํ”„๋กœํ† ์ฝœ (protocol)

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ• ๊ฒŒ์š”! ๋ณธ ํฌ์ŠคํŒ…์€ ํŒจ์ŠคํŠธ์บ ํผ์Šค์˜ 30๊ฐœ ํ”„๋กœ์ ํŠธ๋กœ ๋ฐฐ์šฐ๋Š” iOS์•ฑ๊ฐœ๋ฐœ with Swift ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํŒจ์ŠคํŠธ์บ ํผ์Šค [์ง์žฅ์ธ ์‹ค๋ฌด๊ต์œก] ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์˜์ƒํŽธ์ง‘, UX/UI, ๋งˆ์ผ€ํŒ…, ๋ฐ์ดํ„ฐ ๋ถ„์„, ์—‘์…€๊ฐ•์˜, The RED, ๊ตญ๋น„์ง€์›, ๊ธฐ์—…๊ต์œก, ์„œ๋น„์Šค ์ œ๊ณต. fastcampus.co.kr ํ”„๋กœํ† ์ฝœ (protocol) ์ด๋ž€? ํŠน์ • ์—ญํ• ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ, ํ”„๋กœํผํ‹ฐ, ๊ธฐํƒ€ ์š”๊ตฌ์‚ฌํ•ญ ๋“ฑ์˜ ์ฒญ์‚ฌ์ง„์„ ์ •์˜ํ•œ๋‹ค. ๊ตฌ์กฐ์ฒด ํด๋ž˜์Šค ์—ด๊ฑฐํ˜•์€ ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•˜์—ฌ ํŠน์ • ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœํ† ์ฝœ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ํ”„๋กœํ† ์ฝœ์ด ์š”๊ตฌํ•˜๋Š” ์‚ฌํ•ญ์„ ๋ชจ๋‘ ์ถฉ์กฑํ•˜๋ฉด ํ•ด๋‹น ํƒ€์ž…์ด ์ฑ„ํƒํ•œ ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•œ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ..

Swift/Swift BASIC 2022.01.19

[Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - assert

์•ˆ๋…•ํ•˜์„ธ์š” ๊ฐ์ž์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” assert์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ๊ฒŒ์š”! assert๋Š” ์กฐ๊ฑด์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜๋กœ ์ฃผ๋กœ guard๋ฌธ๊ณผ ํ•จ๊ป˜ ๋ฐฐ์šฐ๋Š”๋ฐ์š”, ์ด๋ฏธ guard๋ฌธ์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์€ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” assert๋งŒ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. guard๋ฌธ์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์—ฌ๊ธฐ๋ฅผ click! [Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - guard ๊ตฌ๋ฌธ (guard๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ) ์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค! swift์˜ ์กฐ๊ฑด๋ฌธ์€ ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๊ณผ ๋น„์Šทํ•˜๊ฒŒ if, switch๊ตฌ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•ฝ๊ฐ„์€ ์ƒ์†Œํ•  ์ˆ˜ ์žˆ๋Š” guard ๋ฌธ์ด ์žˆ๋Š”๋ฐ์š”, ์ด์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ๊ณต๋ถ€ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ didu-story.tistory.com guard ๋ฌธ์ด๋ž€? (๊ฐ„๋‹จํ•˜๊ฒŒ ๊ฐœ๋…๋งŒ (เน‘หƒฬตแด—ห‚ฬต)ูˆ ) ๋ญ”๊ฐ€๋ฅผ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ทธ ๋‹ค์Œ์— ์˜ค๋Š” ์ฝ”..

Swift/Swift BASIC 2022.01.19

[Swift] ํƒ€์ž… ์บ์ŠคํŒ… (Type casting)

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ ํƒ€์ž…์บ์ŠคํŒ…์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ๋ณด๋„๋ก ํ• ๊ฒŒ์š”! ๋งฅ๋ถ์ด ๋„์ฐฉํ•ด์„œ ์–ผ๋ฅธ ๊ฐœ๋ฐœํ•ด๋ณด๊ณ  ์‹ถ์€ ๋งˆ์Œ์— ๋ฌธ๋ฒ• ์†์„ฑ๊ฐ•์˜๋งŒ ๋“ฃ๊ณ  ์š”์ฆ˜ ๊ณต์‹๋ฌธ์„œ ์ •๋ฆฌ๋Š” ๋œธํ•˜๋„ค์š” ใ… ใ…  ์–ผ๋ฅธ ์ •๋ฆฌํ•ด์•ผํ• ํ…๋ฐ.. ์—ญ์‹œ ๊ธฐ๋กํ•˜๊ณ  ํ•„๊ธฐ?ํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•˜๋Š”๊ฑด ์กฐ๊ธˆ ๋” ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š”๊ฒƒ๊ฐ™์•„์š”! ํ•˜์ง€๋งŒ ๋จธ๋ฆฌ์—๋Š” ๋” ๋งŽ์ด ๋‚จ์œผ๋‹ˆ,,,, ์ข€๋งŒ ์ฐธ๊ณ  ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•ด๋ณด๋„๋ก ํ• ๊ฒŒ์š” ใ…Žใ…Ž ๊ทธ๋Ÿผ start! ํƒ€์ž… ์บ์ŠคํŒ…(Type Casting)์ด๋ž€? ์ธ์Šคํ„ด์Šค์˜ ํƒ€์ž…์„ ํ™”์ธํ•˜๊ฑฐ๋‚˜ ์–ด๋– ํ•œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•ด๋‹น ํด๋ž˜์Šค ๊ณ„์ธต ๊ตฌ์กฐ์˜ ์Šˆํผํด๋ž˜์Šค๋‚˜ ์„œ๋ธŒํด๋ž˜์Šค๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. swift์—์„œ๋Š” is์™€ as๋ผ๋Š” ์—ฐ์‚ฐ์ž๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๋‘ ์—ฐ์‚ฐ์ž๋Š” ๊ฐ’์˜ ํƒ€์ž…์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ํƒ€์ž…์บ์ŠคํŒ…์„ ์ดํ•ดํ•˜๊ณ  ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด MediaItem์ด๋ผ๋Š” ..

Swift/Swift BASIC 2022.01.19

[Swift] ํ”„๋กœํผํ‹ฐ ์˜ต์ €๋ฒ„ (property observer)

์•ˆ๋…•ํ•˜์„ธ์š”! ๊ฐ์ž์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ํ”„๋กœํผํ‹ฐ ์˜ต์ €๋ฒ„์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ• ๊ฒŒ์š”! ๊ทธ๋Ÿผ go!! ํ”„๋กœํผํ‹ฐ ์˜ต์ €๋ฒ„(Property Observer) ๋ž€? ํ”„๋กœํผํ‹ฐ ๊ฐ’์˜ ๋ณ€ํ™”๋ฅผ ๊ด€์ฐฐํ•˜๋Š” ๊ฒƒ์œผ๋กœ, "์ €์žฅ ํ”„๋กœํผํ‹ฐ"์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. (์ €์žฅํ”„๋กœํผํ‹ฐ๋ฅผ ๋ชจ๋ฅธ๋‹ค๋ฉด ์—ฌ๊ธฐ click!) ์ƒˆ ๊ฐ’์˜ ์†์„ฑ์ด ํ˜„์žฌ ๊ฐ’๊ณผ ๋™์ผํ•˜๋”๋ผ๋„ ์†์„ฑ ๊ฐ’์ด ์„ค์ •๋˜๋ฉด ํ˜ธ์ถœ ๋œ๋‹ค. ์ฆ‰, ํ”„๋กœํผํ‹ฐ ์˜ต์ €๋ฒ„๋ž€ ๊ด€์ฐฐ์ž! ๋ผ๋Š” ๋œป์ธ๋ฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ด€์ฐฐํ•˜๋Š” ํ”„๋กœํผํ‹ฐ์— ๋ˆ„๊ฐ€ ๊ฐ’์„ ์„ค์ •ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ณ€๊ฒฝ ๊ฐ์ง€๋ฅผ ํ•˜๋ฉด์„œ ํ”„๋กœํผํ‹ฐ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ ค๊ณ  ํ•œ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ํ”„๋กœํผํ‹ฐ ์˜ต์ €๋ฒ„์˜ ์˜ต์…˜ ํ”„๋กœํผํ‹ฐ ์˜ต์ €๋ฒ„์—๋Š” ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ๋‹ค. 1) willSet: ๊ฐ’์ด ์ €์žฅ๋˜๊ธฐ ์ง์ „์— ํ˜ธ์ถœ๋œ๋‹ค. willSet์˜ต์ €๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด, ๊ฐ’์ด ์ €์žฅ๋˜๊ธฐ ์ง์ „์— ์ƒˆ๋กœ ์ €์žฅ๋  ๊ฐ’์ด '..

Swift/Swift BASIC 2022.01.19
๋ฐ˜์‘ํ˜•