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

swift230

[Swift] ํด๋กœ์ € ํด๋กœ์ €(Closures)์–ด๋–ค ์ƒ์ˆ˜๋‚˜ ๋ณ€์ˆ˜์˜ ์ฐธ์กฐ๋ฅผ ์บก์ฒ˜(๊ฐ’์˜ ์ฐธ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.)ํ•ด ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ๋ธ”๋ŸญSwift๋Š” ๊ด€๋ จ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•Œ์•„์„œ ์ฒ˜๋ฆฌ ํด๋กœ์ €์˜ ํ˜•ํƒœ์ „์—ญ ํ•จ์ˆ˜ : ์ด๋ฆ„์ด ์žˆ๊ณ  ์–ด๋–ค ๊ฐ’๋„ ์บก์ฒ˜ํ•˜์ง€ ์•Š๋Š” ํด๋กœ์ €์ค‘์ฒฉ ํ•จ์ˆ˜ : ์ด๋ฆ„์ด ์žˆ๊ณ  ๊ด€๋ จํ•œ ํ•จ์ˆ˜(ํ•˜์œ„→์ƒ์œ„)๋กœ ๋ถ€ํ„ฐ ๊ฐ’์„ ์บก์ฒ˜ ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋กœ์ €ํด๋กœ์ € ํ‘œํ˜„ : ๊ฒฝ๋Ÿ‰ํ™” ๋œ ๋ฌธ๋ฒ•์œผ๋กœ ์“ฐ์—ฌ์ง€๊ณ  ๊ด€๋ จ๋œ ๋ฌธ๋งฅ(context)์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ’์„ ์บก์ณํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์ด ์—†๋Š” ํด๋กœ์ € ํด๋กœ์ € ํ‘œํ˜„ (Closure Expressions)์ธ๋ผ์ธ ํด๋กœ์ €๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ๋ฒ•์— ์ดˆ์ ์ด ๋งž์ถฐ์ ธ์žˆ์Œ์ฝ”๋“œ์˜ ๋ช…ํ™•์„ฑ๊ณผ ์˜๋„๋ฅผ ์žƒ์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋ฌธ๋ฒ•์„ ์ถ•์•ฝํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ๋ฒ•์˜ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ œ๊ณต ์ •๋ ฌ ๋ฉ”์†Œ๋“œ(The Sorted Method)Swift ํ‘œ์ค€ ๋ผ์ด๋ธŒ.. 2024. 3. 18.
[Swift] ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ํ•จ์ˆ˜ 1. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์˜ ๊ฐœ๋…ํ”„๋กœ๊ทธ๋žจ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๋ณต๊ตฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ํ•ญ์ƒ ์›ํ•˜๋Š”๋Œ€๋กœ ์ •ํ™•ํžˆ ๋™์ž‘ํ•œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ์„ ํ•ญ์ƒ ๊ณ ๋ คํ•ด์•ผ ํ•จguardguard ์กฐ๊ฑด else {์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰๋  ๊ตฌ๋ฌธ}// someValue ๊ฐ€ 0์ด ์•„๋‹ ๊ฒฝ์šฐ์—๋งŒ ์ถœ๋ ฅguard someValue != 0 else { return }print(someValue)์กฐ๊ฑด๋“ค์„ ๊ฑธ๋Ÿฌ๋‚ผ ๋•Œ ์‚ฌ์šฉ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉ์กฐ๊ฑด์‹์— ์ด ํ•จ์ˆ˜๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์กฐ๊ฑด์„ ๊ทธ๋Œ€๋กœ ์ ๋Š”๋‹ค๋Š” ์ ์—์„œ guard ๊ตฌ๋ฌธ์ด ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ๊ฐ€๋…์„ฑ์ด ์ข‹์•„์งfunc printMessage(_ message: String?) { if message == nil { return } print(.. 2024. 3. 17.
[Swift] ์กฐ๊ฑด/๋ฐ˜๋ณต๋ฌธ 1. ์กฐ๊ฑด๋ฌธ์กฐ๊ฑด๋ฌธ์˜ ๊ฐœ๋…์–ด๋– ํ•œ ๊ฐ’์ด ํŠน์ • ์กฐ๊ฑด์— ํ•ด๋‹นํ•  ๋•Œ๋งŒ ์„ ํƒ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰if-elseif ์กฐ๊ฑด { //์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜๋ฉด ์‹คํ–‰} else { //์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰}var a : String = "์ฒ ์ˆ˜"var b : String = "์งฑ๊ตฌ"var c : String = "๋งน๊ตฌ"if a == "์ฒ ์ˆ˜" { print("์ •๋‹ต!")}else { print("a๋Š” \\(a)์ž…๋‹ˆ๋‹ค.")}if b == "์œ ๋ฆฌ" { print("์ •๋‹ต!")}else { print("b๋Š” \\(b)์ž…๋‹ˆ๋‹ค.")}// ์ •๋‹ต!// b๋Š” ์งฑ๊ตฌ์ž…๋‹ˆ๋‹ค.var age : Int = 19var student : String = ""if age >= 8 && age else if ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์ค‘ ์ œ์–ด ๊ฐ€.. 2024. 3. 17.
[Swift] ์ฝœ๋ ‰์…˜ ํƒ€์ž… 1. Array๋ฐฐ์—ด์˜ ์ •์˜swift์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘ ํ•˜๋‚˜๋™์ผํ•œ ์œ ํ˜•์˜ ๊ฐ’์˜ ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ์ฝœ๋ ‰์…˜ ํƒ€์ž…๊ฐ ์š”์†Œ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ์ ‘๊ทผ ๊ฐ€๋Šฅ๋ฐฐ์—ด์˜ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™”๋Œ€๊ด„ํ˜ธ([]) ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นˆ ๋ฐฐ์—ด์„ ์„ ์–ธvar numbers: [Int] = []var numbers = [Int]()๋Œ€๊ด„ํ˜ธ([]) ์•ˆ์— ๊ฐ’์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋‚˜์—ดvar numbers = [1, 2, 3, 4, 5]๋ฐฐ์—ด์„ ์ดˆ๊ธฐํ™” ํ•  ๋•Œ, ํƒ€์ž… ์–ด๋…ธํ…Œ์ด์…˜(type annotation)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ํƒ€์ž… ์ง€์ • ๊ฐ€๋Šฅvar numbers: [Int] = [1, 2, 3, 4, 5]Swift๋Š” ํƒ€์ž… ์ถ”๋ก (type inference)์„ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํƒ€์ž…์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Œ์ดˆ๊ธฐ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐฐ์—ด์˜ ํƒ€์ž…์„ ์ถ”๋ก var number.. 2024. 3. 16.
[Swift] ๋ณ€์ˆ˜์™€ ํ”„๋กœํผํ‹ฐ2 * 2023๋…„ Apple Developer Academy @ POSTECH ์—์„œ swift ์Šคํ„ฐ๋””๋ฅผ ํ•˜๋ฉฐ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค 4. ํ•„์š”์„ฑ๋ฐ์ดํ„ฐ ๋ณด์กด/๊ด€๋ฆฌ๋ฐ์ดํ„ฐ ์ €์žฅ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ์ด๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ๊ธฐ์–ตํ•˜๊ณ  ํ•„์š”ํ•  ๋•Œ ๋‹ค์‹œ ์‚ฌ์šฉ๋ฐ์ดํ„ฐ ์กฐ์ž‘๋ณ€์ˆ˜๋Š” ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘.ex-๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ค๊ฑฐ๋‚˜ ๊ฐ์†Œ์‹œํ‚ค๊ฑฐ๋‚˜, ๋‘ ๊ฐ’์„ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌex-ํ•œ ํ•จ์ˆ˜์—์„œ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ทฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•˜๊ณ  ํ•„์š”์‹œ์— ์ฐธ์กฐํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ๊ฒƒ์ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์ฃผ์†Œ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์†Œ๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ๊ด€๋ฆฌํ•˜๊ณ  ์šฐ๋ฆฌ๋Š” ๋ณ€์ˆ˜ ์ด๋ฆ„๋งŒ ๊ฐ€์ง€๊ณ  ๊ด€๋ฆฌํ•˜๋ฉด ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์ด ๋ถ™์—ฌ์ง„ ๊ณต๊ฐ„์„ ์šด์˜์ฒด์ œ๊ฐ€ ์•Œ์•„์„œ ์ฐพ์•„๊ฐ€์„œ.. 2024. 3. 15.
[Swift] ๋ณ€์ˆ˜์™€ ํ”„๋กœํผํ‹ฐ1 * 2023๋…„ Apple Developer Academy @ POSTECH ์—์„œ swift ์Šคํ„ฐ๋””๋ฅผ ํ•˜๋ฉฐ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค 1. ๋ณ€์ˆ˜/ํ”„๋กœํผํ‹ฐ์˜ ๊ฐœ๋…๋ณ€์ˆ˜์˜ ๊ฐœ๋…ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋ฆ„, ํ˜•, ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ, ๊ฐ’, ์˜์—ญ ๋“ฑ์œผ๋กœ ํŠน์„ฑ์„ ๊ตฌ๋ถ„์ง€์–ด ๋ณผ ์ˆ˜ ์žˆ์Œvar number1 : Int = 20์ด๋ฆ„ = ๋ณ€์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ⇒ number1๊ณ ์œ  ์ด๋ฆ„์„ ‘์‹๋ณ„์ž’(Identifier)’๋ผ๊ณ  ํ•จํ˜• = ํƒ€์ž… = ๋ฐ์ดํ„ฐ์˜ ์ž๋ฃŒํ˜• ⇒ Int๊ฐ’ = ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐ€๋Š” ๋ฐ์ดํ„ฐ ⇒ 20์˜์—ญ = ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋ณ€์ˆ˜๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ์ €์žฅvar ๋ณ€์ˆ˜๋ช… : ๋ฐ์ดํ„ฐ ํƒ€์ž… = ๊ฐ’๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์ƒ๋žต ๊ฐ€๋Šฅ์ƒ์ˆ˜๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ผ์ •ํ•œ ๊ฐ’์„ ์ €์žฅlet ์ƒ์ˆ˜๋ช… : ๋ฐ์ดํ„ฐ ํƒ€์ž… = ๊ฐ’๋ฐ์ดํ„ฐ ํƒ€์ž… ์ƒ๋žต ๊ฐ€.. 2024. 3. 15.
๋ฐ˜์‘ํ˜•