์ „์ฒด ๊ธ€ 118

[Swift] ๊ณ ์ฐจํ•จ์ˆ˜(map, filter, reduce)

๊ณ ์ฐจํ•จ์ˆ˜(Higher-order Function) "๊ณ ์ฐจํ•จ์ˆ˜๋ž€ ๋ฌด์—‡์ผ๊นŒ?๐Ÿคจ"๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌ์ธ์ž(๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ ๋ฐ›๊ฑฐ๋‚˜ํ•จ์ˆ˜์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.์Œ..?๐Ÿงํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ์ „๋‹ฌ๋ฐ›๊ณ .. ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค..?ํด๋กœ์ €..?๋งž์•„์š”..! ์ด๋…€์„๋„ ์ผ๊ธ‰๊ฐ์ฒด(first-class object)์™€ ์—ฐ๊ด€์ด ์žˆ์Šต๋‹ˆ๋‹ค!๐Ÿซข์•ž์„œ ํ•œ ๋ฒˆ ๋” ์ •๋ฆฌํ–ˆ์—ˆ๋˜ ํด๋กœ์ €! 7์ฃผ์ฐจ_5์ผ์ฐจ_์•ฑ ๊ฐœ๋ฐœ ์ˆ™๋ จ_Closure(ํด๋กœ์ €)_๊ฐœ์ธ๊ณต๋ถ€_TIL์˜ค๋Š˜์€ ํด๋กœ์ €์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ดค๋‹ค. ์ด์ „์— ๊ณต๋ถ€ํ–ˆ์—ˆ๋Š”๋ฐ, ํ™•์‹คํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ„๊ฒŒ ์•„๋‹ˆ๋ผ์„œ ๋ง‰์ƒ ํด๋กœ์ €์— ๋Œ€ํ•ด์„œ ๋ง๋กœ ์„ค๋ช…ํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ ๊นŒ๋จน์€ ๊ฒƒ ๊ฐ™์•˜๋‹ค. (๊ณผ๊ฑฐ ํด๋กœ์ € ์ •๋ฆฌํ–ˆ๋˜ ๋‚ด ์žyegenie-coding.tistory.com Named Closure, Unnamed Closure๋Š” ์ผ๊ธ‰..

7์ฃผ์ฐจ_5์ผ์ฐจ_์•ฑ ๊ฐœ๋ฐœ ์ˆ™๋ จ_Closure(ํด๋กœ์ €)_๊ฐœ์ธ๊ณต๋ถ€_TIL

TIL>์˜ค๋Š˜์€ ํด๋กœ์ €์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•ด๋ดค๋‹ค.์ด์ „์— ๊ณต๋ถ€ํ–ˆ์—ˆ๋Š”๋ฐ, ํ™•์‹คํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ„๊ฒŒ ์•„๋‹ˆ๋ผ์„œ ๋ง‰์ƒ ํด๋กœ์ €์— ๋Œ€ํ•ด์„œ ๋ง๋กœ ์„ค๋ช…ํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ๊นŒ๋จน์€ ๊ฒƒ ๊ฐ™์•˜๋‹ค.(๊ณผ๊ฑฐ ํด๋กœ์ € ์ •๋ฆฌํ–ˆ๋˜ ๋‚ด ์ž์‹ .. ๋ฐ”๋ณด์ธ๊ฐ€(?) ๋ง๋”ํžˆ ์žŠ์–ด๋ฒ„๋ฆผ) 3์ฃผ์ฐจ_Swift ๋ฌธ๋ฒ•์ข…ํ•ฉ๋ฐ˜ ์‹ฌํ™”_(2์ผ์ฐจ)_ํด๋กœ์ € & ๊ณ ์ฐจํ•จ์ˆ˜์˜ค๋Š˜์€ ์‹ฌํ™” ๊ฐ•์˜๋ฅผ ๋‹ค ๋“ค์—ˆ๋Š”๋ฐ, ์—ญ์‹œ๋‚˜ ๋ฉ˜๋ถ•..๐Ÿคฏ ํ›… ์–ด๋ ค์›Œ์ง„ ๋А๋‚Œ..? ๊ทธ๋ž˜๋„ ์–ด์ œ ์ดํ•ด ์•ˆ ๋œ ํด๋กœ์ €๊ฐ€ ์˜ค๋Š˜์€ ๊ท€์— ์ข€ ๋“ค์–ด์™€์„œ ๋‹คํ–‰์ด์—ˆ๋‹ค. ์—ญ์‹œ ๋ฌด์ง€์„ฑ์œผ๋กœ ๊ณ„์† ๋ณด๋ฉด ์ข€ ๋‚˜์•„์ง€๋Š” ๊ฒƒ ๊ฐ™์€.yegenie-coding.tistory.com..ใ…Žใ…Žใ…Žใ…Žใ…Ž!!!!์˜ค๋Š˜์€ ํด๋กœ์ €์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๊ณ !!๐Ÿ˜€์ฃผ๋ง์—๋Š”โœ”๏ธ๊ณ ์ฐจํ•จ์ˆ˜(map, filter, reduce) _2024.04.21(์ž‘์„ฑ์™„๋ฃŒ)โœ”๏ธEscaping Closure _..

7์ฃผ์ฐจ_4์ผ์ฐจ_์•ฑ ๊ฐœ๋ฐœ ์ˆ™๋ จ_๊ฐœ์ธ๊ณต๋ถ€_TIL

์˜ค๋Š˜์€ ๊ณผ์ œ ์ œ์ถœํ•  ๋•Œ ํ•จ๊ป˜ ์ž‘์„ฑํ•ด์•ผํ•˜๋Š” ๊ธฐ์ˆ  ์งˆ๋ฌธ๋“ค ์ •๋ฆฌํ•ด์„œ ์ œ์ถœํ–ˆ๋‹ค. (๊ฐœ์ธ๊ณผ์ œ ๋!! - ์œ„์‹œ ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ์— ๋Œ€ํ•ด์„œ๋Š” ์ถ”ํ›„์— ์ •๋ฆฌ ์˜ˆ์ •) ์ดํ›„ ์•„๋ž˜ 7๊ฐ€์ง€์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. 1. Class ์™€ Struct 2. override์™€ overload / overriding๊ณผ overloading 3. mutating ํ‚ค์›Œ๋“œ 4. final 5. Escaping Closure 6. protocol 7. Eqautable ์–ด๋””์„ ๊ฐ€ ๋“ค์—ˆ๊ฑฐ๋‚˜ ์•Œ๊ณ ๋Š” ์žˆ์ง€๋งŒ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ ๋‚ด์šฉ๋“ค ํ˜น์€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ฒ˜์Œ ๋ณด๋Š” ๊ฒƒ๋“ค์ด๋‹ค. ์ด ๋ฐ–์—๋„ ๋‹ค์–‘ํ•˜์ง€๋งŒ ์˜ค๋Š˜์€ ์œ„์— 7๊ฐ€์ง€์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Class / Struct Class์™€ Struct์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž! Class์™€ Struct๋Š” ๊ฐ์ œ ..

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์ˆซ์ž ๋ฐฐ์—ด

func solution(_ s:String) -> String { var count = 0 var result = "" for letter in s { if letter == " " { count = -1 result += String(letter) } else if count % 2 == 0 { result.append(letter.uppercased()) } else { result.append(letter.lowercased()) } count += 1 } return result } solution("hello world") print(solution("hello world")) // HeLlO WoRlD ์˜ค.. 3~5์ ๋งŒ ์ฃผ๋”๋‹ˆ, ์ด์ œ 15์”ฉ ์ค€๋‹ค..!! ๊ณผ์ œ๋ž‘ ๋‹ค๋ฅธ ๊ณต๋ถ€ํ•˜๋А๋ผ ๋ฏธ๋ค˜๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜..

7์ฃผ์ฐจ_2์ผ์ฐจ_์•ฑ ๊ฐœ๋ฐœ ์ˆ™๋ จ_ScrollView & Pull to Refresh_TIL

์–ด์ œ๋Š” ์œ„์‹œ ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ ๊ฐœ์ธ๊ณผ์ œ ํ•„์ˆ˜ ๊ตฌํ˜„๊นŒ์ง€ ๋งŒ๋“ค์–ด๋ณด๊ณ , ์˜ค๋Š˜์€ ์ถ”๊ฐ€ ๊ตฌํ˜„ ์‹œ๋„ํ•ด๋ดค๋‹ค. ์ถ”๊ฐ€๊ตฌํ˜„์œผ๋กœ ์œ„์‹œ ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ, ๋‹น๊ฒจ์„œ ์ƒˆ๋กœ๊ณ ์นจ ๊ตฌํ˜„์ด ์žˆ์—ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ์œ„์‹œ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, alert๊ฐ€ ๋œฐ ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์œ„์‹œ๋ฆฌ์ŠคํŠธ์—์„œ ํ•ด๋‹น ์ƒํ’ˆ์„ ์‚ญ์ œ๋ฅผ ํ•œ ํ›„, ์•ฑ์„ ์ข…๋ฃŒํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ํ‚ค๋ฉด ๊ทธ๋Œ€๋กœ ๋‹ค์‹œ ๋˜๋Œ์•„๊ฐ€์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. (๋‚ด๊ฐ€ ๋ฐ”๋ณด์˜€์Œ.. ๐Ÿ˜…์ฝ”์–ด๋ฐ์ดํ„ฐ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅํ•ด๋†“๊ณ , ์ฝ”์–ด๋ฐ์ดํ„ฐ์—์„œ ์‚ญ์ œ๋Š” ์•ˆํ•ด์„œ ์ƒ๊ธด ๋ฌธ์ œ) ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ์—์„œ ์‚ญ์ œํ•˜๋Š” delete function์„ ๋งŒ๋“  ํ›„, ์…€์ด ์‚ญ์ œ๋œ ์ดํ›„์— ์‹คํ–‰๋˜๋„๋ก ๋ณ€๊ฒฝํ•ด์ฃผ์—ˆ๋‹ค. ์˜ค๋Š˜ Lv4 '์œ„์‹œ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ'๋Š” ์™„๋ฃŒ! ์ด์–ด์„œ Lv5 '๋‹น๊ฒจ์„œ ์ƒˆ๋กœ๊ณ ์นจ'์„ ๊ตฌํ˜„ํ•˜๋‹ค๊ฐ€ scrollView์—์„œ ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์žก๋Š”๋ฐ ์–ด๋ ค์›€์ด ์žˆ..

7์ฃผ์ฐจ_iOS ์•ฑ ๊ฐœ๋ฐœ ์ˆ™๋ จ_3~4์ผ์ฐจ_Standard๋ฐ˜ AutoLayout_TIL

์–ด์ œ๋Š” ๊ตญํšŒ์˜์› ์„ ๊ฑฐ์ผ์ด๋ผ ๋‚ด๋ฐฐ์บ  ์‰ฌ๋Š” ๋‚ ์ด์—ˆ๋‹ค.๐Ÿ˜ƒ (3~4์ผ์ฐจ ๋ผ๊ณ  ์ œ๋ชฉ ์ ์€ ์ด์œ ) ์ด๋ฒˆ ์ฃผ์ฐจ ๊ฐœ์ธ๊ณผ์ œ '์œ„์‹œ ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ'๋Š” ์ง€๋‚œ ๊ฒŒ์‹œ๊ธ€์— ์˜ฌ๋ฆฐ ๋‚ด์šฉ์—์„œ ์•„์ง ์ถ”๊ฐ€์ ์ธ ๊ณต๋ถ€๋Š” ๋ชปํ–ˆ๋‹ค. (๋‚ด์ผ ์ด์–ด์„œ ํ•  ์˜ˆ์ •!!) ์ˆ˜์š”์ผ์— ์›๋ž˜ ์žˆ๋˜ ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ์ˆ˜์—…์ด ๋ชฉ์š”์ผ๋กœ ์˜ฎ๊ฒจ์ ธ์„œ ์˜ค๋Š˜์€ ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ์‚ฌ์ „๊ณผ์ œ๋ฅผ ํ–ˆ๋‹ค. ์‚ฌ์ „๊ณผ์ œ๋Š” 1์ฃผ์ฐจ๋•Œ ์ง„ํ–‰ํ–ˆ๋˜ ์˜คํ† ๋ ˆ์ด์•„์›ƒ ์žก๊ธฐ์˜€๋‹ค. ์‚ฌ์ „๊ณผ์ œ๋Š” ์ˆ˜์—… ์ „์— ๋‹ค ์™„๋ฃŒํ•ด์„œ, ์ˆ˜์—…์„ ๋“ค์œผ๋ฉด์„œ ํ•œ ๋ฒˆ ๋” ๋ณต์Šตํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆ˜์—…์ด ๋๋‚˜๊ณ ๋‚˜์„œ ํ•ด๋‹น ์…€์„ ํ…Œ์ด๋ธ”๋ทฐ์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ๋นŒ๋“œ ํ›„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๋ ˆ์ด์•„์›ƒ์ด ๋ง๊ฐ€์ง€๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ์ˆ˜์ •ํ–ˆ๋‹ค! ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ์•ฑ์— ์žˆ๋Š” ํƒญ๋ฐ”๋ฅผ ์ถ”๊ฐ€ํ•ด๋ดค๋‹ค. ์šฐ์„ , ์•„๋ž˜์— ์‚ฌ์ „๊ณผ์ œ ๋‚ด์šฉ์„ ์ ์€ ํ›„ ์ง์ ‘ ์‹ค์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•  ์˜ˆ์ •์ด๋‹ค! Standard๋ฐ˜ 3..