SWIFT
-
Property Observers (willSet, didSet)Swift 2025. 1. 27. 12:17
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ ์ฐํด๋ฅผ ๋ง์ดํ์ฌ Swift ๊ธฐ์ด๋ฅผ ํ๋ฒ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค!๊ทธ ์ค์์ Property Observers์ willSet๊ณผ didSet์ ๊ฐ๋จํ๊ณ ์ดํดํ๊ธฐ ์ฝ๊ฒ ํบ์๋ณด๊ฒ ์ต๋๋ค ๐๐ป Swift๋ ๊ฐ์ฒด์งํฅ๊ณผ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ฅ์ ๋ชจ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ฃ .์ฌ๊ธฐ์ Property Observers๋ Swift์ ๊ธฐ๋ฅ ์ค ํ๋๋ก ํ๋กํผํฐ์ ๊ฐ ๋ณํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๊ทธ์ ๋ฐ์ํ๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์์ค๋๋ค. ๊ทธ๋ผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์๋ณด์์ฃ ๐Property Observers?์ฐ์ Property Observers๊ฐ ๋ฌด์์ธ์ง ์์๋ณผ๊น์?Property Observers๋ ํ๋กํผํฐ์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋ ํธ์ถ๋๋ ํน๋ณํ ๋ฉ์๋์์. Swift์์ ๋๊ฐ์ง Pro..
-
Swift๋ก ํจ์จ์ ์ธ ๋๋ฒ๊ทธ ๋ก๊น ์์คํ ๊ตฌ์ถํ๊ธฐSwift 2025. 1. 6. 18:49
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ ์ฑ ๊ฐ๋ฐ ํ๊ฒฝ์์ ํจ์จ์ ์ธ ๋๋ฒ๊ทธ ๋ก๊น ์์คํ ๊ตฌ์ถ์ ์ฃผ์ ๋ก ํฌ์คํ ํ๋ ค ํฉ๋๋ค ๐๐ป ๊ฐ๋ฐ ๊ณผ์ ์์ ๋ก๊น (logging)์ ์ฑ์ ๋์์ ์ดํดํ๊ณ ๋๋ฒ๊น ํ๋๋ฐ ํ์์ ์ธ ๋๊ตฌ๋ผ ๋ณผ ์ ์์ด์.๊ทธ๋ ๊ธฐ์ ์ด๋ฒ ํฌ์คํ ์์ Swift๋ก ๊ตฌํ๋ ํจ์จ์ ์ธ ๋๋ฒ๊ทธ ๋ก๊น ์์คํ ๊ตฌ์ถ์ ํด๋ณผ๊น ํฉ๋๋ค! Swift๋ก ํจ์จ์ ์ธ ๋๋ฒ๊ทธ ๋ก๊น ์์คํ ๊ตฌ์ถํ๊ธฐ์ฐ์ ํด๋น ํฌ์คํ ์์ ๊ฐ์ฅ ํฐ ์ฃผ์ถ์ด ๋๋ ๋ ํด๋์ค ๊ตฌํ์ ์ค๊ณํฉ๋๋ค. 1๏ธโฃ SwiftLog - ์ค์ ๋ก๊ทธ ํ์ผ ๊ด๋ฆฌ์ ์ฐ๊ธฐ๋ฅผ ๋ด๋นํ๋ ํด๋์ค2๏ธโฃ DebugLogger - ๋ก๊ทธ ๋ฉ์์ง ํฌ๋งทํ ๊ณผ ๋ก๊น ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ํด๋์ค ํด๋น ํด๋์ค๋ค๋ก ๋ง๋ค์ด์ง ์์คํ ์ ๋ค์๊ณผ ๊ฐ์ ์ฃผ์ ํน์ง์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค. 1๏ธโฃ ํ์ผ ๊ธฐ๋ฐ ๋ก๊น 2๏ธ..
-
RangeSet (feat. Set, IndexSet)Swift 2024. 12. 26. 14:35
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ Swift 6์์ ์๋ก ๋์ ๋ RangeSet์ด๋ผ๋๊ฒ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๊ทธ๋ผ ๋ฐ๋ก ๊ฐ๋ณผ๊น์?RangeSetRangeSet์ ๋ฒ์๋ก ํํ๋๋ ๋น๊ต ๊ฐ๋ฅํ ๋ชจ๋ ์ ํ์ ๊ฐ์ ์งํฉ์ ๋๋ค. struct RangeSet where Bound : Comparable Swift 6์์ ํ์ฌ๋์ด iOS 18 ์ด์๋ถํฐ ํด๋น ํ์ ์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๊ตฌํํ ์ ์์ด์. ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ช ํด๋ณด์๋ฉด, RangeSet์ ๋ถ์ฐ์์ ์ธ ๋ฒ์์ ๊ฑธ์ณ ์๋ ๋น๊ต๊ฐ ๊ฐ๋ฅํ ๊ฐ ์งํฉ์ ํจ์จ์ ์ผ๋ก ํํํ ์ ์์ต๋๋ค.RangeSet์ ์ผ๋ฐ์ ์ผ๋ก ์ปฌ๋ ์ ์ ์ธ๋ฑ์ค ์ ํ ๋ฒ์๋ฅผ ์ ์ฅํด ์ปฌ๋ ์ ์ ์ฌ๋ฌ ํ์ ๋ฒ์๋ฅผ ๋ํ๋ด๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์์๋ฅผ ๋ณผ๊ป์. var numbers = [10, 12, -..
-
NSObject์ ๋ํ์ฌSwift 2024. 12. 19. 08:44
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์ ์ฃผ์ ๋ NSObject์ ๋ํด ํ๋ฒ ์ ๋ฆฌํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป ์ฌ์ค, NSObject๋ Swift ์นดํ ๊ณ ๋ฆฌ๋ณด๋ค๋ Objective-C์ ๋ ๊ฐ๊น๊ธดํ์ฃ .๋, iOS ๊ฐ๋ฐ์ ๊ทผ๊ฐ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ผ ํ๋ฒ ์์๋ณผ๊น์? NSObject?NSObject๋ Objective-C ๋ฐํ์ ์์คํ ์ ๊ทผ๊ฐ์ ์ด๋ฃจ๋ ์ต์์ ํด๋์ค์ฃ .Foundation ํ๋ ์์ํฌ์ ๋ฃจํธ ํด๋์ค๋ก, ๊ฑฐ์ ๋ชจ๋ Cocoa์ Cocoa Touch ํด๋์ค์ ๊ธฐ๋ณธ ํด๋์ค ์ญํ ์ ํด์ค๋๋ค.๊ฒฐ๊ตญ Objective-C์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ํต์ฌ ์์๋ผ๊ณ ๋ณผ ์ ์์ด์.์ด NSObject๋ฅผ ์์๋ฐ๋ ํ์ ํด๋์ค๋ค์ ๋ฐํ์ ์์คํ ์ ๋ํ ๊ธฐ๋ณธ ์ธํฐํ์ด์ค์ Objective-C ๊ฐ์ฒด์ฒ๋ผ ๋์..
-
Explore the Swift on Server ecosystem (feat. WWDC 2024)Swift 2024. 12. 2. 18:49
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ WWDC 2024์์ ์๊ฐ๋ Explore the Swift on Server ecosystem์ ๋ํด ํ์ตํด๋ณด๋ ค ํฉ๋๋ค ๐๐ป Swift ์ธ์ด๋ ์ฐ๋ฆฌ๊ฐ ์ ํ ์ํ๊ณ์ ์ฑ์ ๊ฐ๋ฐํ๋๋ฐ ์ฃผ๋ก ์ฐ์ด์ง๋ง ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ์ธ์ด๋ก๋ ์ ํฉํฉ๋๋ค.๊ทธ๋ ๊ธฐ์ ์์ํ ์ด ๊ฐ๋ ๊ณผ ์ฐ์์ ์ด๋ป๊ฒ ์ ํ์ ์๊ฐํ๊ณ ์ฌ์ฉํ๋ผ๊ณ ํ๋์ง ์์๋ด ๋๋ค ๐ Explore the Swift on Server ecosystemMeet Swift on Server์ฐ์ , Swift๋ฅผ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ๊ฒ ๋ง๋๋ ์์๋ค์ ๋ํด ์์๋ด์ผ ํฉ๋๋ค. Swift๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋น์ง ์ปฌ๋ ์ ๋์ ์๋ ์ฐธ์กฐ ๊ณ์ฐ์ ํตํด ๋ฎ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก C์ ์ ์ฌํ ์ฑ๋ฅ์ ์ป์ ์ ์์ด์.์ด๋ ์์ธก ๊ฐ๋ฅํ ๋ฆฌ..
-
ETag ์บ์ฑ์ผ๋ก ์ฑ ์ฑ๋ฅ ์ต์ ํํ๊ธฐSwift 2024. 11. 26. 18:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ ETag๋ฅผ ์ด์ฉํด ๋คํธ์ํฌ ์บ์ฑ์ ํ์ฌ ์ฑ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณผ๊ป์ ๐๐ป ETag ์บ์ฑ์ผ๋ก ์ฑ ์ฑ๋ฅ ์ต์ ํํ๊ธฐ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์์ ๋คํธ์ํฌ ์ต์ ํ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๋ ํต์ฌ ์์์ ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์ HTTP ํ๋กํ ์ฝ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ค ํ๋์ธ ETag(Entity Tag)์ ๋ํด ์์ธํ ์์๋ณด๊ณ , iOS ์ฑ์์ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ETag?ETag๋ ์น ๋ฆฌ์์ค์ ํน์ ๋ฒ์ ์ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ์๋ณ์์์.์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฆฌ์์ค๋ฅผ ์๋ตํ ๋ ETag ํค๋๋ฅผ ํจ๊ป ์ ์กํ๋ฉฐ, ํด๋ผ์ด์ธํธ๋ ์ดํ ์์ฒญ ์ ์ด ๊ฐ์ ์ฌ์ฉํด ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋์๋์ง๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ์๋์ ๊ฐ์ด ์๋ฅผ ๋ค์ด์, ์๋ฒ์ ์๋ต ํค๋๋..
-
Consume noncopyable types in Swift (feat. WWDC 2024)Swift 2024. 11. 18. 18:58
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์ WWDC 2024์ Consume noncopyable types in Swift์ด๋ผ๋ ์ธ์ ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ์ธ์ ์ฃผ์ ๋ง ๋ณด๋ฉด Swift์์ ๋ณต์ฌํ ์ ์๋ ์ ํ ์๋นํ๊ธฐ๋ผ๊ณ ํด์ํด๋ณผ ์ ์์ด์ ๐ ๊ทธ๋ผ, Swift์์ ๋ณต์ฌ๊ฐ ๋ญ๊ณ ์ธ์ ๋ณต์ฌ ๋ถ๊ฐ๋ฅํ ์ ํ์ ์๋นํด์ผํ๋์ง ๊ทธ๋ฆฌ๊ณ ๊ฐ ์์ ๊ถ์ ํตํด ์๋๋ฅผ ๋ช ํํ ์ด๋ป๊ฒ ํํํ ์ ์๋์ง ๋ฑ์ ์ง์ค์ ์ผ๋ก ๋ค๋ค๋ณด์์ฃ ๐๐ป Consume noncopyable types in Swift์ต๊ทผ Swift์์ ๋ณต์ฌํ ์ ์๋ ์ ํ์ ๋์ ํ์ต๋๋ค. ์์ธํ ์์๋ณด๊ธฐ ์ ๋ณต์ฌ๋ ๋ฌด์์ธ์ง๋ถํฐ ์์๋ณด์์ฃ ! Copying ํด๋น ํ๋ ์ด์ด๋ผ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ๊ฐ์ง ์ธ์คํด์ค๊ฐ ์๊ณ ๊ทธ ์ธ์คํด์ค๋ฅผ player2์ ํ ๋นํ๋ฉด ๋ณต์ฌ๊ฐ ์ผ์ด..
-
Go further with Swift Testing (feat. WWDC 2024)Swift 2024. 9. 30. 17:14
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ฒ Swift Testing์ ๋ํด ์ด๋ค๊ฑด์ง ํบ์๋ดค๋ค๋ฉด ์ด๋ฒ์ ์ข ๋ ์์ธํ ์์๋ณด๋ คํฉ๋๋ค.์ฌํํธ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ข์์ ๐WWDC 2024์ Go further with Swift Testing ์ธ์ ์ผ๋ก ํ๋ฒ ์ดํด๋ณด๊ฒ ์ต๋๋ค ๐๐ป ๋จผ์ Swift Testing์ด ์ด๋ค๊ฑด์ง ๊ธฐ์ด๋ถํฐ ์๊ณ ์ถ๋ค๋ฉด ์๋ ํฌ์คํ ์ ๋ณด๊ณ ์ค์ธ์ ๐ Meet Swift Testing (feat. WWDC 2024)์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ WWDC 2024์์ ์๊ฐ๋ Meet Swift Testing ์ธ์ ์ ๋ณด๋ฉด์ Swift Testing์ ๋ํด ์์๋ณด๋ คํฉ๋๋ค ๐๐ป Meet Swift Testing์ฐ๋ฆฌ๋ ๊ทธ์ ๊น์ง ํ ์คํธํ๋ฉด XCTest๋ฅผ ์ฌgreen1229...