๋ด์ฉ Property Wrapper ๋ฅผ ์ฌ์ฉํ์ฌ UserDefaults ์ฝ๊ณ ์ฐ๊ณ ์ญ์ ํ๋ ๋งค์ปค๋์ฆ์ ์บก์ํ ํด๋ณด์. Swift-Evolution swift-evolution ์์ property wrappers ๋ฅผ ์๊ฐํ๋ฉด์ ์์๋ก UserDefaults ์ ๋งค์ปค๋์ฆ์ ์บก์ํํ์ฌ ์ฌ์ฉํ๋ ์์ ์ฝ๋๋ฅผ ์๊ฐํ๋ค. ์ดํด๋ณด์! swift-evolution/0258-property-wrappers.md at main · apple/swift-evolution ํ๋กํผํฐ ๋ํผ๋ user defaults ์ ๊ฐ์ string-keyed ๋ฐ์ดํฐ์ ๋ํ typed property ๋ค์ ์ ๊ณตํ๋๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. wrapper type ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ๋งค์ปค๋์ฆ์ ์๋์ฒ๋ผ ์บก์ํํ ์ ์์ต๋๋ค. @proper..
https://school.programmers.co.kr/learn/courses/30/lessons/72414 import Foundation func solution(_ play_time:String, _ adv_time:String, _ logs:[String]) -> String { // ์์ฒญ์๋ค์ด ๊ฐ์ฅ ๋ง์ด ๋ณด๋ ๊ตฌ๊ฐ์ ๊ณต์ต๊ด๊ณ ๋ฃ๊ธฐ. // play_time : ์ฃ ๋ฅด๋์ ๋์์ ์ฌ์์๊ฐ // adv_time : ๊ด๊ณ ์๊ฐ๊ธธ์ด let playTime: Int = changeToSecond(play_time) let advTime: Int = changeToSecond(adv_time) // ํ๋ผ๋ฏธํฐ logs ์์๋ H1:M1:S1-H2:M2:S2. let logs: [[Int]] = logs.m..
ํ๋ก์ด๋ ์์ (Floyd-Warshall)์ ๋ชจ๋ ์ง์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ง์ ๊น์ง์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๋ชจ๋ ๊ตฌํด์ผ ํ๋ ๊ฒฝ์ฐ ์ ์ฌ์ฉํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋งค๋ฒ ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋ ์ค์์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๋ ๋ ธ๋๋ฅผ ์ฐพ์ ํ์๊ฐ ์๋ค๋ ์ ์ด ๋ค์ต์คํธ๋ผ์ ๋ค๋ฅธ ์ ์ด๋ค. ๋ ธ๋์ ๊ฐ์๊ฐ n ๊ฐ์ผ๋ n ๋ฒ์ ๋จ๊ณ๋ฅผ ์ํํ๋ฉฐ ๋จ๊ณ๋ง๋ค O(N²) ์ ์ฐ์ฐ์ ํตํด ํ์ฌ ๋ ธ๋๋ฅผ ๊ฑฐ์ณ๊ฐ๋ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ๊ณ ๋ คํ๋ค. ๊ทธ๋์ ์ด ์๊ฐ ๋ณต์ก๋๋ O(N³)์ด๋ค. ์ฆ, ๋ชจ๋ ์ง์ ์ ์์์ผ๋ก ์ผ๊ณ ๋ชจ๋ ์ง์ ์ ๋ํด์ ๋์ผ๋ก ์ผ์์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋๋ฐ ๋ชจ๋ ๋ ธ๋๋ฅผ ๊ฒฝ์ ์ง๋ก ์ผ๋ ๊ณผ์ ์ธ n ๋ฒ์ ๋จ๊ณ๋ฅผ ์ํ ํ๋ค. min(์์ → ๋, ์์ → ๊ฒฝ์ + ๊ฒฝ์ → ๋) ๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ค. ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ถ๋ฐ ๋ ธ๋๊ฐ 1๊ฐ์ด๋ฏ๋ก ๋ค๋ฅธ ๋ชจ๋ ๋ ธ..
Complications and widgets: Reloaded - WWDC22 - Videos - Apple Developer ๋ณธ ๊ธ์ WWDC ๋ฅผ ๋ณด๊ณ , ๋ฒ์ญ ๋ฐ ์์ฝ ๊ทธ๋ฆฌ๊ณ ์คํํด๋ณด๋ ์คํฐ๋ ํ๋ก์ ํธ์ ์ผํ์ ๋๋ค. ๋ด์ฉ watchOS Lock Screen ๊ณผ complications ๋ก ์ก์ธ์๋ฆฌ ์์ ฏ์ ์ธ ์ ์๋ WidgetKit ์ API ์ SwiftUI ์ถ๊ฐ์ฌํญ ๐ฅ Overview ์ปดํ๋ฆฌ์ผ์ด์ ์ ํ์๋ผ์ธ ์์ ฏ๊ณผ ์ปดํ๋ฆฌ์ผ์ด์ ์ ์ ํ ์์ ๋ํ API Project setup - ์ง์ ์์ ฏ์ ๋ง๋๋ ๋ฐฉ๋ฒ๊ณผ ๊ธฐ์กด ์์ ฏ์ watchOS ์ ํ์ฅํ์ฌ ์ฎ๊ธฐ๋ ์์ Making glanceable views - ๋ ์์ view ์ ๋๋ถ๋ถ์ ๋ง๋๋ ๋ฐฉ๋ฒ ์์ ฏ์ด ๋ณด์ผ ์ฌ๋ฌ privacy ํ๊ฒฝ์ ๋ํ ์ด์ผ๊ธฐ..
โ iOS + ์๋๋ก์ด๋ ํ์ด๋ธ๋ฆฌ๋ ์ฑ ๊ฐ๋ฐ์ iOS ์ ์๋๋ก์ด๋๋ฅผ ๋์์ ๊ฐ๋ฐํ์ฌ ๊ฐ๊ฐ์ ์ฑ์คํ ์ด์ ๋ฐฐํฌํ ์ ์๋ ํ์ด๋ธ๋ฆฌ๋ ์ฑ ๊ฐ๋ฐ ๋ฐฉ์ 1๏ธโฃ ์น๋ทฐ ํจํค์ง ๋ฐฉ์ ๋ชจ๋ฐ์ผ ์น์ ๊ฐ๋ฐํ๊ณ iOS ์ ์๋๋ก์ด๋ ์น๋ทฐ UI ์ ์ฐ๊ฒฐํ๋ ๋ฐฉ์์ด๋ค. ์ฅ์ : ๋ค์ดํฐ๋ธ ์ฑ์ ๊ฐ๋ฐํ๋ ๋ฆฌ์์ค๊ฐ ์ ๊ณ , ๋ค๋ฅธ OS ์์ ๊ฐ์ ์น ๋ธ๋ผ์ฐ์ ์์ง(WebKit)์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋์ผํ ๊ฒฝํ์ ๊ตฌํํ ์ ์๋ค. ๋ํ, ์ผ๋ฐ ๋ชจ๋ฐ์ผ ์น ๋ธ๋ผ์ฐ์ ์์๋ ๋์ผํ๊ฒ ๋ณด์ธ๋ค. ๋จ์ : UI ์ ๋ณด๋ฅผ ์น ์๋ฒ์์ ๋์์ธ ์์ค๋ฅผ ์์ฒญํ์ฌ ๋ณด์ฌ์ฃผ๊ธฐ ๋๋ฌธ์ ๋ค์ดํฐ๋ธ๋ณด๋ค ๋๋ฆฌ๋ค. UI ์ ์ ๋๋ฉ์ด์ ๋ชจ์ ๋ ๋ค์ดํฐ๋ธ๋ณด๋ค ์์ฐ์ค๋ฝ์ง ์์ ์ ์๋ค. ๋ธ๋ฃจํฌ์ค, ์์ดํ์ด, ์นด๋ฉ๋ผ, NFC, GPS, ๋ก์ปฌ ์คํ ๋ฆฌ์ง ๋ฑ ๋๋ฐ์ด์ค ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ๋งค์ฐ ํ๋ค..
โ ์์กด์ฑ ์ฃผ์ (Dependency Injection) ์์กด์ฑ ์ฃผ์ ์ด๋ ํ๋์ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ์์กด์ฑ์ ์ ๊ณตํ๋ ๊ธฐ์ ์ด๋ค. ์์กด์ฑ ๊ทธ๋ ๋ค๋ฉด ์์กด์ฑ์ด๋ ๋ฌด์์ผ๊น? ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด ์ฌ์ด์ ์์กด ๊ด๊ณ๊ฐ ์๋ค๋ ๊ฒ์ด๋ค. ์ด๋ ์์กดํ๋ ๊ฐ์ฒด๊ฐ ์์ ๋๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด๋ ์ํฅ์ ์ค ์ ์๋ค. ์ฃผ์ ๊ทธ๋ ๋ค๋ฉด ์ฃผ์ ์ ๋ฌด์์ผ๊น? ์ฃผ์ ์ ์ธ๋ถ์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ๋ฃ๋ ๊ฒ์ ๋งํ๋ค. ์ธ๋ถ์์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ํ๊ธฐ ์ํด ์์ฑ์ ๋ฑ์ ์ฌ์ฉํ๋ค. ์ด๋ฌํ ์์กด์ฑ์ ๋ง๋ค์ด์ฃผ๊ธฐ ์ํด์ ์์กด์ฑ ์ฃผ์ ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋์ ์์กด์ฑ ์ฃผ์ ์ด ๋ญ๋ฐ? ์๋ง ๊ฐ๋ ์ ๋ํด์ ๋ค์๋ ๊ฐ์ด ์์ ์ ์๋ค. ์์กด์ฑ์ผ๋ก ๋ค๋ฅธ ๊ฐ์ฒด์ ์ํฅ์ ์ฃผ๋ ๊ฒ์ ์ด๋ค ์์ ์ฌํญ์ด ์์ ๋ ๋งค๋ฒ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์์ ํด์ฃผ์ด์ผ ํ๋ ๊ฒ์ด ์๋๊น? ์ง์ํ๋๋ก ์์กด์ฑ์ ๊ฐ์ง ์ฝ๋๊ฐ ๋ง๋ค๋ฉด ..
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์์ ์๋ํ๋ ์ค์ํ ๊ฐ๋ ์ค ํ๋์ด๋ค. ์ด๋ฅผ ๊ตฌํํ๊ธฐ ์ํ ํต์ฌ ๊ธฐ๋ฅ์ธ ์ ๊ทผ์ ์ด์ ๋ํด ์์๋ณด์. ๋ค์ด๊ฐ๊ธฐ ์ ์๋ํํ๋๊น ์๊ฐ์ด ๋ฌ๋๋ฐ ์บก์ํ๋ ๋ฌด์์ด ๋ค๋ฅผ๊น? ๋ชจ๋๊ณผ ์์คํ์ผ์ ๋ฌด์์ผ๊น? โ ์๋ํ? ์บก์ํ? ์๋ํ(hiding) : ๋ด๋ถ ๋ฐ์ดํฐ์ ์ฐ์ฐ์ ์ธ๋ถ์์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ์๋(hiding) ํน์ ๊ฒฉ๋ฆฌ(isolation)์ํค๋ ๊ฒ์ด๋ค. ๊ฐ์ฒด ์ธ๋ถ์์ ๊ฐ์ฒด๋ด์ ๋ฐ์ดํฐ ์ ๊ทผ์ ์ ํํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์์ , ์กฐ์ํ๋ ๋์์ ๋ด๋ถ์ ๋๊ณ ์ ๊ทผ(getter),์ค์ (setter)ํ๋ ๋ฉ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ป๋๋ค. ์บก์ํ(encapsulation) ์บก์ ์์ฝ์ ๋น์ ํ ์ ์๋ค. ์ฐ๊ด์๋ ์ฝํจ๋ฅผ ๊ฐ์ง ์ฝ๋ผ๋ฆฌ ๋ชจ์ฌ์๊ณ ๊ฐ์ธ์ ์ธ๋ถ์์ ๋ฌด์์ด ์๋์ง ์ ์ ์๋ค. ์ฆ, ์ฐ๊ด ์๋ ๋ณ์์ ํจ..
๋ณธ ํฌ์คํ ์ ‘ํ๋ก๊ทธ๋๋ฐ ์ค๋ธ์ ํฐ๋ธ-C 2.0’ ์ ์ฝ์ผ๋ฉฐ ์ค์ตํ ์ฝ๋์ ๋ด์ฉ, ์ถ๊ฐ์ ์ผ๋ก ๊ถ๊ธํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๋ด์ฉ ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์์๋ณด์. #define ๋ช ๋ น๋ฌธ #import ๋ช ๋ น๋ฌธ ์กฐ๊ฑด ์ปดํ์ผ(#ifdef, #if, #elif, #else, #endif, #ifndef, #undef) ์ ์ฒ๋ฆฌ๊ธฐ๋ ์ปดํ์ผ ๊ณผ์ ์์ ํ๋ก๊ทธ๋จ ์ฝ๋์ ์ฐ์ฌํ ํน๋ณํ ๋ช ๋ น๋ฌธ์ ์ธ์ํฉ๋๋ค. ์ด ์ ์ฒ๋ฆฌ ๋ช ๋ น๋ฌธ์ ๋ง๋ค๊ธฐ ์ํด์๋ ์ต(#)์ ์ค์ ๋งจ ์์ ๋ถ์ฌ์ผ ํ๋ค. โ #define ๋ช ๋ น๋ฌธ #define ๋ฌธ์ ์ฃผ ์ฉ๋๋ ์์์ ์ฌ๋ฒ๋ช ์ ๋ถ์ฌํ๋ ๊ฒ์ด๋ค. ๋ค์์ ์ ์ฒ๋ฆฌ ๋ช ๋ น๋ฌธ์ TRUE ๋ผ๋ ์ด๋ฆ์ด ๊ฐ 1๊ณผ ๋์ผํ๋๋ก ์ ์ํ๊ณ , FALSE ๋ผ๋ ์ด๋ฆ์ด ๊ฐ 0๊ณผ ๋์ผํ๋๋ก ์ ์ํ๋ค. #define TRUE 1 #define ..
- ์๋ฒํต์
- CloneCoding
- projectsetting
- WWDC22
- MVVM
- WWDC
- YPImagePicker
- urlsession
- MOYA
- Algorithm
- async/await
- IOS
- Notification
- containerBackground
- configurable widget
- UserDefaults
- APNS
- rxswift
- watchOS
- Protocol
- SwiftUI
- Widget
- 2022 KAKAO TECH INTERNSHIP
- github
- Objective-C
- OpenSourceLibrary
- RxCocoa
- Firebase
- WidgetKit
- Swift
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- Total
- Today
- Yesterday