๐ŸŽ iOS/Swift

์—ฐ๋ฝ์ฒ˜ ๋งŒ๋“ค๊ธฐ ๊ณผ์ œ ํ•ด์„ค ์˜์ƒ์„ ๋ณด๋‹ค๊ฐ€ ์˜๋ฌธ์ด ๋“  ์ ์ด ์žˆ๋‹ค. ๋ฐ”๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋˜‘๊ฐ™์ด ์„ ์–ธํ•˜๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ = ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์™€ : ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.  = (๋“ฑํ˜ธ)๋“ฑํ˜ธ(=)๋Š” ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด์„œ ์ดˆ๊ธฐ ๊ฐ’์„ ์ง€์ •ํ•œ๋‹ค. =์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น ์†์„ฑ์€ ํด๋ž˜์Šค๊ฐ€ ์ธ์Šคํ„ด์Šคํ™”๋  ๋•Œ ๋ฐ”๋กœ ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.  : (์ฝœ๋ก )์ฝœ๋ก (:)์€ ํƒ€์ž…์„ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ํ•ด๋‹น ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์„ ๋ช…์‹œํ•˜๋Š” ๊ฒƒ์ด๋‹ค. :์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ดˆ๊ธฐ ๊ฐ’์„ ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ  ํƒ€์ž…๋งŒ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๊ฐ’์€ ์ƒ์„ฑ์ž์—์„œ ํ• ๋‹น๋  ์ˆ˜ ์žˆ๋‹ค.  ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž. ๐ŸŒŸ 1. ์†์„ฑ ์ดˆ๊ธฐํ™” ์‹œ ๋ฐ”๋กœ ์ธ์Šคํ„ด์Šคํ™”์ด ๋ฐฉ๋ฒ•์€ ํŠน์ • ..
๐ŸŒŸ Create / UpdateUserDefaults.standard.set()    ๐ŸŒŸ Read//String ํƒ€์ž…UserDefaults.standard.string(forKey: "")//Bool ํƒ€์ž…UserDefaults.standard.bool(forKey: "")//Int ํƒ€์ž…UserDefaults.standard.integer(forKey: "")    ๐ŸŒŸ DeleteUserDefaults.standard.removeObject(forKey: "")  Int, String ๊ณผ ๊ฐ™์€ ์›์‹œํƒ€์ž… ์•„๋‹Œ Struct๋‚˜ Class ํƒ€์ž…์„ ์ €์žฅํ•˜๋ ค๋ฉด json ์ธ์ฝ”๋”ฉ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.      ๐Ÿ“ UserDefaults๋ฅผ ํ™œ์šฉํ•œ ๊ฐ„๋‹จ ํฌ์ŠคํŠธ์ž‡ ์•ฑ ๋งŒ๋“ค๊ธฐ ๐Ÿ’ก ํด๋กœ์ €๋ฅผ ์‚ฌ์šฉํ•œ ์ดˆ๊ธฐํ™”ํด๋กœ์ € ๋‚ด์—์„œ ๊ฐ์ฒด๋ฅผ..
โœ… CRUDCreat : ๋ฐ์ดํ„ฐ ์ƒ์„ฑ                          // ์ƒˆ๋กœ์šด ์ „ํ™”๋ฒˆํ˜ธ ๋“ฑ๋กRead : ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ                           // ์ €์žฅ๋œ ์ „ํ™”๋ฒˆํ˜ธ ๋ฐ์ดํ„ฐ ์กฐํšŒUpdate : ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ(์“ฐ๊ธฐ)     // ์ €์žฅ๋œ ์ „ํ™”๋ฒˆํ˜ธ ์ˆ˜์ •Delete : ๋ฐ์ดํ„ฐ ์‚ญ์ œ                         // ์ „ํ™”๋ฒˆํ˜ธ ์‚ญ์ œ    Swift๋กœ ๊ธฐ๊ธฐ ๋‚ด ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ CoreData์™€ UserDefault๊ฐ€ ๋Œ€ํ‘œ์ ์ด๋‹ค.๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ๋•Œ๋Š” CoreData, ๋น„๊ต์  ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ๋Š” UserDefault๊ฐ€ ์ ์ ˆํ•˜๋‹ค. โœ… CoreData์•ฑ์—์„œ ๊ธฐ๊ธฐ์˜ ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋•๋Š” ํ”„๋ ˆ์ž„์›Œํฌ   โœ… CoreData ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ St..
๐ŸŒŸ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋””์Šคํฌ๋ฉ”๋ชจ๋ฆฌ๋””์Šคํฌ์ผ๋ฐ˜์ ์œผ๋กœ RAM์„ ๋งํ•จ(๋ช‡ GB)RAM์€ ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ โŒ→ ์•ฑ ์‹คํ–‰ ์ค‘ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ์•ฑ์„ ์ข…๋ฃŒ ์‹œ ์‚ญ์ œ→ ์•ฑ ์‹คํ–‰์„ ์‹œํ‚ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ„๋‹ค.→ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ์•ฑ์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋‚ด๋ ค์˜ฌ ๋•Œ ๊ฐ™์ด ๋‚ด๋ ค์˜ด→ RAM ์˜ ์šฉ๋Ÿ‰์ด ํด ์ˆ˜๋ก, ๋™์‹œ์— ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์•ฑ์˜ ์ด๋Ÿ‰ ๋งŽ์Œ๋””์Šคํฌ๋ณด๋‹ค ์†๋„๊ฐ€ ๋น ๋ฆ„ (CPU๊ฐ€ ๋””์Šคํฌ๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ์— ๋” ๋นจ๋ฆฌ ์ ‘๊ทผ)๋””์Šคํฌ์— ๋น„ํ•ด ์šฉ๋Ÿ‰์ด ์ž‘์Œ (๋ณดํ†ต 8GB, 16GB, 32GB)EEPROM ๊ณผ ๊ฐ™์€ ๋น„ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ๋„ ์žˆ์Œ ์•„์ดํฐ์€ ์ด๊ณณ์— ์žฅ์น˜์˜ ์ผ๋ จ๋ฒˆํ˜ธ ๋ฐ ํ•˜๋“œ์›จ์–ด ์ •๋ณด๋ฅผ ์ €์žฅ์˜๊ตฌ์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณณ. ๋น„ํœ˜๋ฐœ์„ฑ ์žฅ์น˜→ ์•ฑ ์‹คํ–‰ ์ค‘ ์•ฑ์„ ์ข…๋ฃŒํ•ด๋„ ๋””์Šคํฌ์— ์žˆ์ŒํŒŒ์ผ, ๋ฌธ์„œ, ํ”„๋กœ๊ทธ๋žจ ๋“ฑ ์ƒ๋Œ€์ ์œผ๋กœ ์šฉ๋Ÿ‰์ด..
์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค ๋ณด๋ฉด ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ๋“ค์ด์ง€๋งŒ๋น„์Šทํ•œ ๊ธฐ๋Šฅ ๋•Œ๋ฌธ์ธ์ง€ ๋งค๋ฒˆ ํ—ท๊ฐˆ๋ฆฌ๊ณค ํ•œ๋‹ค. ์ด์ฐธ์— ์ œ๋Œ€๋กœ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.   ๊ณตํ†ต์ components(separatedBy:) ๋ฉ”์„œ๋“œ์™€ split ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž์—ด์„ ํŠน์ • ๊ตฌ๋ถ„์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.     components(separatedBy:) Swift์˜ String ํƒ€์ž…์— ์ •์˜๋œ ๋ฉ”์„œ๋“œ ๊ตฌ๋ถ„์ž ํƒ€์ž…: ๋‹จ์ผ ๋ฌธ์ž, ๋ฌธ์ž์—ด(String) ๋˜๋Š” ๋ฌธ์ž์—ด ๋ฐฐ์—ด([String])let text = "one,two;three four"let componentsResult = text.components(separatedBy: [",", ";", " "])print(componentsResult) // ["one", "two", "..
๊ณ ์ฐจํ•จ์ˆ˜(Higher-order-Function)๋ž€?ํ•จ์ˆ˜๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ํ•จ์ˆ˜์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํ•จ์ˆ˜๋กœ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜์ฆ‰, ์ธํ’‹์ด ํ•จ์ˆ˜์ด๊ฑฐ๋‚˜, ์•„์›ƒํ’‹์ด ํ•จ์ˆ˜์ธ ํ•จ์ˆ˜  ๐Ÿ”Ž  1 . map ํ•จ์ˆ˜๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜ ํ•˜๋‚˜ ๊บผ๋‚ด์„œ ์ƒˆ๋กญ๊ฒŒ ๋ณ€ํ˜•(ํด๋กœ์ €์—์„œ)ํ•ด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ let numbers = [1, 2, 3]//Int -> Stringvar array = numbers.map { paramNum in //paramNum์˜ ํƒ€์ž…์€ Int return "\(paramNum)"}//์ถ•์•ฝ ํ‘œํ˜„var array = numbers.map { "\($0)" }print(array) //์ถœ๋ ฅ: ["1", "2", "3"]      ๐Ÿ”Ž  2. filter ํ•จ์ˆ˜ ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์— ๋Œ€ํ•ด ํ•ด๋‹น ์กฐ..
๐Ÿ”Ž  1 . ํด๋กœ์ €(Closure)ํด๋กœ์ €์™€ ํ•จ์ˆ˜์˜ ๊ธฐ๋Šฅ์€ ๋™์ผ ํ•˜๋‹ค. ํด๋กœ์ €๋Š” ์ด๋ฆ„์ด ์—†๋Š” ํ•จ์ˆ˜๋กœ ํ•จ์ˆ˜๋ณด๋‹ค ์ข€ ๋” ํฐ ๊ฐœ๋…์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.  ์Šค์œ„ํ”„ํŠธ๋Š” ์ผ๊ธ‰ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. (ํ”„๋กœํ† ์ฝœ๋„ ์ผ๊ธ‰๊ฐ์ฒด)ํ•จ์ˆ˜์™€ ํ”„๋กœํ† ์ฝœ๋„ ํƒ€์ž…์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. → ํ•จ์ˆ˜๋„ ๋ณ€์ˆ˜์— ํ• ๋‹น ๊ฐ€๋Šฅ→ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํ•จ์ˆ˜๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌ ๊ฐ€๋Šฅ→ ํ•จ์ˆ˜์—์„œ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ ๊ฐ€๋Šฅ ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ์ฝ”๋“œ์—์„œ ํ˜ธ์ถœํ•  ๋•Œ ํ•จ์ˆ˜๋ช…์œผ๋กœ ํ˜ธ์ถœํ•œ๋‹ค. ํด๋กœ์ €๋Š” ์ด๋ฆ„์ด ์—†๋Š” ํ•จ์ˆ˜๋กœ ์ด๋ฆ„์ด ์—†์ด๋„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. -> ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ์— ํด๋กœ์ € ํ˜•ํƒœ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ-> ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํด๋กœ์ €๋ฅผ ์ •์˜ํ•˜๋ฉด์„œ ๋ฐ”๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜๋ช…์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค!!!    ๐Ÿ”Ž  2. ํด๋กœ์ € ๊ตฌ์กฐ ๋ฐ ์ถ•์•ฝ ๐ŸŒŸ ํ•จ์ˆ˜ ํ˜•ํƒœ์—์„œ ํด๋กœ์ € ๋งŒ๋“ค๊ธฐ ๐ŸŒŸ  ..
๐Ÿ”Ž  1 . ํ”„๋กœํ† ์ฝœ(Protocol)ํ”„๋กœํ† ์ฝœ์€ ์˜์–ด๋กœ ๊ทœ์•ฝ/ํ˜‘์•ฝ์•ฝ, ์ฆ‰ ์•ฝ์†์„ ์˜๋ฏธํ•œ๋‹ค.  ํƒ€์ž…์—์„œ ๊ณตํ†ต์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋ฉค๋ฒ„ ๋ชฉ๋ก์ด๋‹ค. ํ”„๋กœํ† ์ฝœ์€ ํƒ€์ž…์—์„œ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ๋ฉค๋ฒ„๊ฐ€ ์„ ์–ธ๋˜์–ด ์žˆ๊ณ  ์‹ค์ œ ๊ตฌํ˜„์€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค. ํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด๋Š” ์„ค๊ณ„๋„์— ๋น„์œ ํ•œ๋‹ค๋ฉด, ํ”„๋กœํ† ์ฝœ์€ ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜์„œ์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ํƒ€์ž…์„ ๊ตฌํ˜„ํ•  ๋•Œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์š”๊ตฌ์‚ฌํ•ญ๋“ค์„ ๋ชจ์•„๋‘” ์š”๊ตฌ์‚ฌํ•ญ(์•ฝ์†/์—ญํ• ) ์ •์˜์„œ๋ผ๊ณ  ๋ณด๋ฉด๋œ๋‹ค.  ํŠน์ • ์—ญํ• ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์„œ๋“œ, ํ”„๋กœํผํ‹ฐ, ๊ธฐํƒ€ ์š”๊ตฌ์‚ฌํ•ญ ๋“ฑ์„ ์ •์˜ํ•ด๋†“์€ ์•ฝ์†์ด๋‹ค. ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•์ด ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•˜๊ณ  ๋ชจ๋“  ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋ฉด ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค .  ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜•์ด ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•ด์„œ ํŠน์ • ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ..
AHN.Jihyeon
'๐ŸŽ iOS/Swift' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)