swift(26)
-
โ๏ธ IOS Project 1. ๋ช ์ธ ์์ฑ๊ธฐ ์ฑ ๐ฉ๐ป
๐ ์ค๋๋ถํฐ ํจ์คํธ ์บ ํผ์ค ๊ฐ์ start! https://fastcampus.co.kr/dev_online_iosappfinal - swift ๋ฌธ๋ฒ ๊ฐ์๋ ํ์ํ ๋๋ง๋ค ์ฐพ์๋ณด๊ธฐ - ๋์ถฉ ์ค๋ช ๋ ๊ฐ๋ ๋ค ์ฐพ์์ ์กฐ์ฌํ๊ธฐ - ์ฌ๋ฌ ์ดํ ๊ฐ๋ฐ ํ๋ก์ ํธ ์ง!์ ! ์ฝ๋ฉํ๊ธฐ + ๐ ์ด์ฌํ ๊ณต๋ถํ์ ๐ช๐ช๐ช๐ช๐ช https://github.com/SohyeonKim-dev/2022_fast_campus_IOS/tree/main/Part2%20Basic/chap1%20๋ช ์ธ%20์์ฑ๊ธฐ%20์ฑ โ๏ธ ๋ช ์ธ ์์ฑ๊ธฐ ์ดํ https://github.com/SohyeonKim-dev/2022_fast_campus_IOS/tree/main/Part2%20Basic/chap1%20๋ช ์ธ%20์์ฑ๊ธฐ%20์ฑ GitHub - SohyeonK..
2022.07.03 -
๐ฉ๐ป UUID(Universally Unique IDentifier)๋?
UUID๋ Universally Unique IDentifier์ ์ฝ์ด, ๋ฒ์ฉ ๊ณ ์ ์๋ณ์ - UUID ํ์ค์ ๋ฐ๋ผ ์ด๋ฆ์ ๋ถ์ฌํ๋ฉด ๊ณ ์ ์ฑ์ ์๋ฒฝํ๊ฒ ๋ณด์ฅํ ์๋ ์์ง๋ง, ์ค์ ์ฌ์ฉ ์์์ ์ค๋ณต๋ ๊ฐ๋ฅ์ฑ์ด ๊ฑฐ์ ์๋ค๊ณ ์ธ์ ๋๊ธฐ ๋๋ฌธ์ ๋ง์ด ์ฌ์ฉ - UUID๋ RFC 4122 ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ : RFC๋ Request for Comments์ ์ฝ์ด -> ๋นํ์ ๊ธฐ๋ค๋ฆฌ๋ ๋ฌธ์ - ์ปดํจํฐ ๋คํธ์ํฌ ๊ณตํ ๋ฑ์์ ์ธํฐ๋ท ๊ธฐ์ ์ ์ ์ฉ ๊ฐ๋ฅํ ์๋ก์ด ์ฐ๊ตฌ, ํ์ , ๊ธฐ๋ฒ ๋ฑ์ ์์ฐ๋ฅด๋ ๋ฉ๋ชจ - RFC ํธ์ง์๋ ๋งค RFC ๋ฌธ์์ ์ผ๋ จ ๋ฒํธ๋ฅผ ๋ถ์ฌ -> ์ผ๋จ ์ผ๋ จ ๋ฒํธ๋ฅผ ๋ถ์ฌ ๋ฐ๊ณ ์ถํ๋๋ฉด, RFC๋ ์ ๋ ํ์ง๋๊ฑฐ๋ ์์ ๋์ง ์์ - ๋ง์ฝ ์ด๋ค RFC ๋ฌธ์๊ฐ ์์ ์ด ํ์ํ๋ค๋ฉด, ์ ์๋ ์์ ๋ ๋ฌธ์๋ฅผ ๋ค๋ฅธ RFC ๋ฌธ์..
2022.06.30 -
๐ฝ ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ (weak, strong, unowned)
weak var๋ ๋ฌด์จ ๋ป์ผ๊น? Strong ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๊ณ reference count๋ฅผ ์ฆ๊ฐ var ref: Person? = Person(name: "Colli") // ๊ฐํ ์ฐธ์กฐ ref = nil // ๋ฉ๋ชจ๋ฆฌ ํด์ ๊ณผ์ - ๊ฐํ ์ฐธ์กฐ๋ฅผ ํ๊ฒ ๋๋ฉด reference count๊ฐ ์ฆ๊ฐํจ -> ํด๋น ๊ฐ์ฒด์ nil์ ๋ฃ์ด์ผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด์ ! ๊ฐํ ์ํ ์ฐธ์กฐ(Strong Reference Cycles) : ๋ ๊ฐ์ ๊ฐ์ฒด๊ฐ ์ํธ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ, ๊ฐํ ์ํ ์ฐธ์กฐ ๋ฐ์ ๊ฐ๋ฅ -> reference count๊ฐ 0์ด ๋์ง ๋ชปํด, ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐ์ -> ๋ญ๊ฐ ๊ฐํ ์๊ฐ์ cppํ๋ฉด์ ๋ฐฐ์ ๋ ๊ฑฐ๋ ์ ์ฌํ๋ค. ๋ฉ๋ชจ๋ฆฌ ๋์! //์๊ธฐ ์์ ์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๋ ํด๋์ค class Strong { var strong: Stron..
2022.06.24 -
๐ARC (Automatic Reference Counting) : ์๋ ์ฐธ์กฐ ๊ณ์ฐ
ARC (Automatic Reference Counting) : Objective-C / Swift์ ๋ํ ์๋ ์ฐธ์กฐ ๊ณ์ฐ์ ์ ๊ณตํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฅ - ์ปดํ์ผ ์ ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ์๋์ผ๋ก retain, release๋ฅผ ์ ์ ํ ์์น์ ์ฝ์ - Objective-C ์์๋ ์๋์ผ๋ก reference count ์ฆ๊ฐ์ ํตํด ๊ฐ์ฒด ์ ์ง ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ -> ์๋์ผ๋ก ์์ฑ๋๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์๋์ผ๋ก ์์ฑํด์ค๋ค. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ Data, Heap, Stack, Code ์ด๋ ๊ฒ 4๊ฐ์ง ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ ์ค ํ ์์ญ๊ณผ ๊ด๋ จ์์ - Heap ์ class, closure ๋ฑ์ ์ฐธ์กฐํ(reference) ์๋ฃ ๋ค์ด ๋จธ๋ฌด๋ ๊ณต๊ฐ + ๊ฐ๋ฐ์๊ฐ ๋์ ์ผ๋ก ํ ๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ -> ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ํ์ Heap ์์ญ์ ์ฐธ์กฐํ ..
2022.06.24 -
@IBAction & @IBOutlet ๐ค
StoryBoard ์์ ์ฐ๊ฒฐ ๊ณ ๋ฆฌ ๋ด๋น ๋ณ์๋ ํจ์๋ฅผ ์ ์ํ ๋ ์์ @IBAction / @IBOutlet ํค์๋ : StoryBoard์์ ๋ฒํผ์ด๋ ๋ ์ด๋ธ๊ฐ์ ์ปดํฌ๋ํธ์ ์ฐ๊ฒฐ IBAction - Event๊ฐ ์ผ์ด๋ ๊ฒฝ์ฐ ํธ์ถ๋๋ Action์ ์ ์ - ์ ๋ ฅ์ด ๋ค์ด์์ ๋ ์ด๋ค ํ๋์ ํ ์ง ๋ํ๋ธ๋ค - ์คํ ๋ฆฌ ๋ณด๋ ์์ ์ ์ธํ ๋ทฐ ๊ฐ์ฒด๊ฐ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํธ์ถ๋๋ ํจ์ - ํด๋น View๊ฐ ํน์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์์ผฐ์ ๊ฒฝ์ฐ ์ทจํ๋ ํ๋ ! IBOutlet - ๊ฐ์ ์ ๊ทผํ๊ธฐ ์ํ ๋ณ์, ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ - ์คํ ๋ฆฌ ๋ณด๋ ์์ ์ ์ธํ View ๊ฐ์ฒด๋ฅผ Interface Builder(IB) ๊ฐ ์์๋ณผ ์ ์๊ฒ ๋ง๋๋ ๊ฒ : ์ฝ๋ ์์์ ์คํ ๋ฆฌ๋ณด๋์ ๋ง๋ ๋ทฐ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ ์ ..
2022.06.24 -
[Swift UI] View / Some์ด๋? / ContentView / Previews
[ ๊นจ์ ๊ถ๊ธ์ฆ๋ค ๐ง ] 1) ์ปจํ ์ธ ๋ทฐ: ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ตฌ์กฐ์ฒด 2) ํ๋ฆฌ๋ทฐ : ํ๋ฆฌ๋ทฐ๋ฅผ ๊ทธ๋ฆฌ๋ ๊ตฌ์กฐ์ฒด - text ๋ฐ์ .์ ํตํ์ฌ ์์ฑ๋ค์ ๋์ดํ๋ ๊ฒ : modifier ๋ผ๊ณ ๋ถ๋ฅธ๋ค! ex) .font, .fontWeight, .padding ๋ฑ๋ฑ [ some ์ ๋ฌด์์ธ๊ฐ ? ] [ ์ถ์ฒ: https://babbab2.tistory.com/158 ] some์ด๋ผ๋ ํค์๋๋ Swift 5.1์์ ๋ฑ์ฅํ ์๋ก์ด ๊ธฐ๋ฅ์ผ๋ก, ํด๋น ํค์๋๊ฐ ๋ฐํ ํ์ ์์ ๋ถ์ ๊ฒฝ์ฐ, ํด๋น ๋ฐํ ํ์ ์ด ๋ถํฌ๋ช ํ ํ์ (Opaque Type)! : ๋ถํฌ๋ช ํ ํ์ ์ด๋ -> "์ญ ์ ๋ค๋ฆญ ํ์ (reverse generic types) ์์์ ์ ๋ค๋ฆญ์ด ํจ์ "์ธ๋ถ"์์ ํด๋น ํ์ ์ ๋ํด ์ ์ ์๋ ๋ฐ๋ฉด, ๋ถํฌ๋ช ํ ํ์ ์ ๊ฒฝ์ฐ, ์ธ๋ถ..
2022.06.16