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

Swift/Swift BASIC 27

[Swift] Swift์˜ sort() ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•˜์—ฌ

๐Ÿ’ฌ ์‹œ์ž‘ํ•˜๋ฉฐ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ sort()์— ๋Œ€ํ•ด์„œ ๊ถ๊ธˆํ•ด์กŒ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ์ •๋ ฌ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค. ์ฝ”ํ…Œ์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„ ์ •๋ ฌ์„ ์›ํ•  ๋•Œ Sort() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ •๋ ฌ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‹จ์ˆœํžˆ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€์•ผ๋งŒ ํ•˜๋Š” ๊ฐœ๋…์ธ๊ฑด์ง€, ์•„๋‹ˆ๋ฉด ๊ตฌํ˜„๊นŒ์ง€ ๋ชจ๋‘ ์™„๋ฒฝํ•˜๊ฒŒ ํ•  ์ค„ ์•Œ์•„์•ผํ•˜๋Š”๊ฑด์ง€? โšซ๏ธ Swift์˜ sort() ๋‚ด๋ถ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณ€ํ™” โ–ช๏ธ 2018๋…„ ์ด์ „ Swift๋Š” 2018๋…„ sort์˜ ๋‚ด๋ถ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ต์ฒด๊ฐ€ ๋๋‹ค. ์›๋ž˜๋Š”, introsort๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. introSort introsort๋ž€ ํ‰๊ท ์ ์œผ๋กœ ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๋‚ด๋ฉด์„œ ์ตœ์•…์˜ ์ƒํ™ฉ์—์„œ๋„ ์ ์ง„์ ์œผ๋กœ ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. C++ STL์—์„œ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์ •๋ ฌ ํ•จ์ˆ˜์ด๋‹ค. intr..

Swift/Swift BASIC 2023.03.10

[Swift] Struct, Class ๋ถ€์‹œ๊ธฐ (์ฐจ์ด์ , class ์™€ ARC, stackํ• ๋‹น, heapํ• ๋‹น)

์ด์ „์— Struct์™€ Class์— ๋Œ€ํ•œ ๊ฐœ๋…๊ณผ ๋‘ ๊ฐœ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ–ˆ๋˜ ์ ์ด ์žˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ์˜ 'ใ……' ๋„ ๋ชจ๋ฅผ ๋•Œ ์ •๋ฆฌํ–ˆ๋˜ ๊ธ€์ด๋ผ ๋„์ €ํžˆ ์ง€๊ธˆ์™€์„œ ์ƒ๊ฐํ–ˆ์„๋•Œ ๋„์›€์ด ๋˜์ง€ ์•Š...์•˜๊ธฐ ๋•Œ๋ฌธ์— struct์™€ class์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ตœ๊ทผ์— SwiftUI๋กœ ๋งŽ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Struct๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ๊ทธ ์ด์œ ์— ๋Œ€ํ•ด์„œ ๋ฉ˜ํ† ๋‹˜์ด "struct๋Š” ์ดˆ๊ธฐํ™”๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ’์ด ์ค„์–ด๋“ค๊ณ , stack์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋น ๋ฅด๊ณ  ๊ฐ€๋ณ๋‹ค" ๋ผ๊ณ  ์žฅ์ ์— ๋Œ€ํ•ด์„œ ๋ง์”€ํ•ด์ฃผ์…จ๋‹ค. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์ž์„ธํ•œ ์ดํ•ด๋ฅผ ์œ„ํ•ด ํ•ด๋‹น ํฌ์ŠคํŒ…์„ ๋‹ค์งํ–ˆ๋‹ค. ์šฐ์„  ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜๋ฉด "Class๋Š” ์ฐธ์กฐํƒ€์ž…์ด๊ณ , ARC๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅด ํ•œ๋‹ค. Struct๋Š” ๊ฐ’ํƒ€์ž…์ด๋‹ค."๋ผ๋Š”๊ฒŒ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ..

Swift/Swift BASIC 2022.04.30

[Swift] ์Šค์œ„ํ”„ํŠธ ์ •๋ ฌ sorted() ์™€ sort() ์ฐจ์ด์ 

์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์ž์ž…๋‹ˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฐ์—ด์ด๋‚˜ ๋ฌธ์ž์—ด ๋“ฑ์„ ์ •๋ ฌํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ sort ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š”๋ฐ์š”. sort()์™€ sorted() ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘๊ฐ€์ง€์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด์„œ ์ž๊พธ์ž๊พธ ๊นŒ๋จน์–ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. 1. sort(by: ) ๋จผ์ € sort(by: ) ๋ฉ”์„œ๋“œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, sorted(by: >) ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. var arr = [133, 2, 321, 5423, 4] arr.sort() print(arr) // [2, 4, 133, 321, 5423] arr.sort(by: >) print(arr) // [5423, 321, 133, 4, 2] sort() ๋ฉ”์„œ๋“œ๋Š” ์ œ์ž๋ฆฌ์—์„œ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— arr.sort()..

Swift/Swift BASIC 2022.02.19

[Swift] ์ž…๋ ฅ ๋ฐ›๊ธฐ - readLine() ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• ์‚ดํŽด๋ณด๊ธฐ (feat.๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€ ๋•Œ ํ•„์ˆ˜)

์•ˆ๋…•ํ•˜์„ธ์š” ๊ฐ์ž์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ swift ์–ธ์–ด์—์„œ ์ž…๋ ฅ์„ ๋ฐ›๋Š” ๋ฉ”์„œ๋“œ์ธ readLine()์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฑฐ์—์š”. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„์ค‘์ธ๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋Š” ๋‹ต์•ˆ์„ func๋กœ ์ž‘์„ฑํ•˜๋ฉฐ ๋˜์ง€๋งŒ, ๋ฐฑ์ค€์€ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ๋ชจ๋‘ ์ž…๋ ฅํ•ด์•ผํ•ด์š”! ๊ทธ๋ž˜์„œ ๋ฐฑ์ค€์œผ๋กœ ๊ณต๋ถ€ํ•  ๋•Œ ๊ฐ ์–ธ์–ด๋ณ„๋กœ input์„ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ตํžˆ๊ณ  ์žˆ๋Š”๊ฒƒ์ด ํ•„์ˆ˜์ธ๋ฐ์š”, ์ž…๋ ฅ์„ ๊ทธ๋ƒฅ ์ˆ˜ ํ•˜๋‚˜๋งŒ ๋ฐ›๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, ํ–‰๋ ฌ๋กœ ๋ฐ›๊ธฐ๋„ ํ•˜๊ณ , ๋ฐฐ์—ด๋กœ ๋ฐ›๊ธฐ๋„ํ•˜๊ณ , ์—ฌ๋Ÿฌ์ค„๋กœ ๋ฐ›๊ธฐ๋„ํ•˜๊ณ  ์ •๋ง ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ input์„ ๋ฐ›์ž–์•„์š”! ์ด๊ฒƒ์„ ๋ชจ๋‘ ์ตํ˜€๋†”์•ผ ๋‚˜์ค‘์— ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€๋•Œ ๋ง‰ํžˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฐจ๊ทผ์ฐจ๊ทผ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ• ๊ฒŒ์š”. ์‚ฌ์‹ค ์ œ๊ฐ€ ํ—ท๊ฐˆ๋ฆฌ๊ณ  ์ œ๊ฐ€ ์™ธ์›Œ๋†“๊ธฐ(?) ์œ„ํ•ด์„œ ์ ๋Š”๊ฑฐ๋ž๋‹ˆ๋‹ค ํ—ˆํ—ˆ ๊ทธ๋Ÿผ go readLine() Swift์—์„œ ์ž…๋ ฅ์€ readLine()์„ ํ†ตํ•ด์„œ ํ• ..

Swift/Swift BASIC 2022.01.30

[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
๋ฐ˜์‘ํ˜•