ํฐ์คํ ๋ฆฌ ๋ทฐ
์ฑ๊ธํคํจํด์ด๋.
ํด๋์ค์ ์ธ์คํด์ค(๊ฐ์ฒด)๋ฅผ ํ๋๋ง ๋ง๋ค์ด์ ์ฐ๋ ํจํด
Singleton pattern์ ๋ํด
์์ฑ๋ฐฉ๋ฒ, ์ ์, ์ฐ์ ์์ผ๋ก ์ ๋ฆฌํด๋๊ฐ๊ฒ ์ต๋๋ค.
1. ์ฑ๊ธํค ํจํด ์์ฑ ๋ฐฉ๋ฒ.
์ฐ์ class๋ฅผ ์์ฑํ๊ณ ๋ด๋ถ์๋, class์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ class ์์ฒด ์์๋ฅผ static ์ผ๋ก ์ ์ธ ํด์ค๋๋ค.
static์ ๋ถ์ด๋ฉด 'shared' ๋ ์์์ด ์๋๋ฉฐ ์ธ์คํด์คํ ํ์ฌ ์ฌ๋ฌ๊ฐ ์์ฑ ๋์ง ์๋๋ก ํด์ค๋๋ค.
( static ์ ์ ๋ชจ๋ฅด์ ๋ค๋ฉด https://ggasoon2.tistory.com/2#typeProperty ์ด ๊ธ์ 'ํ์ ํ๋กํผํฐ'๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.^^ )
๊ทธ๋ฆฌ๊ณ private init()
์์ฑ์๋ฅผ private์ผ๋ก ์ ํํ์ฌ ์ธ๋ถ์์ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ๋ชปํ๋๋ก ํ์ฌ,
'Singleton.shared' ๋ผ๋ ๊ฐ์ฒด๊ฐ ์ ์ผ ํ๋๋ก ํฉ๋๋ค.
'Singleton'์ ํด๋์ค์ธ๋ฐ ๊ฐ์ฒด๋ฅผ ์์ฑ ํ์ง ๋ชปํ๋ class ์์ฒด ์์์ธ shared๋ก ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ด ์ ์ผํฉ๋๋ค.
๊ณ ๋ก ์ธ์คํด์ค ํ๋กํผํฐ x์ ์ ๊ทผํ๊ธฐ ์ํด์๋ Singleton.shared.x ๋ก ์ ๊ทผํ๋ ๋ฐฉ๋ฒ ๋ฟ!!
์ด๋ ๊ฒ a๋ก ๋ฐ๋ก ์์ฑ์ด ์๋๋ฉฐ,
x๋ผ๋ ๊ฐ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ Hello.shared.x ๋ฟ์ธ ๋ชจ์ต! ( ์ด๊ฒ ์ฑ๊ธํค )
2. ์ฑ๊ธํค ํจํด์ด ๋ญ๋ฐ?
์ฑ๊ธํค ํจํด์ OOP์ ๋์์ธ ํจํด์ค ํ๋์ ๋๋ค!
ํ๋์ ๊ฐ์ฒด๋ง์ ์์ฑํ๋ฉฐ,
๊ทธ ํ๋์ ๊ฐ์ฒด๋ก ์ด๋์์๋ ์ง(์ฌ๋ฌ viewController์์) ์ฌ์ฉํ ์ ์๋๋ก ํ๋ !!
๋, ๊ทธ ๊ฐ์ฒด๋ ์์ฑ๊ณผ ํ๋ก์ธ์ค๊ฐ ์บก์ํ ๋์ด์์ด
์ดํ์ ํ๋ก์ธ์ค ์งํ์ ์์ด์ ์ํฅ์ ์ ๊ฒ ๋ฐ๋๋ค๋ ํน์ฑ์ด ์์ต๋๋ค.
3. ๊ทธ๋์ ์ฑ๊ธํค ์ ์ฐ๋๋ฐ
ํ๋์ ์ธ์คํด์ค๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ฑ๋กํด์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ํด๋น ์ธ์คํด์ค๋ฅผ ๊ณต์ ํ์ฌ ์ฌ์ฉํ๊ฒ๋ ํ ์ ์์ผ๋ฏ๋ก, ์์ฒญ์ด ๋ง์ ๊ณณ์์ ์ฌ์ฉํ๋ฉด ํจ์จ์ ๋์ผ ์ ์์ต๋๋ค.
๋ ์ง์คํธ๋ฆฌ ๊ฐ์ ์ค์ ํ์ผ์ ๊ฒฝ์ฐ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ๊ฐ ์์ฑ๋๋ฉด ์ค์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ํ์ด ์๊ธธ ์ ์์ต๋๋ค
4. ์ฑ๊ธํค ์ฐ์ด๋ ๊ณณ
// Shared URL Session
let sharedURLSession = URLSession.shared
// Default File Manager
let defaultFileManager = FileManager.default
// Standard User Defaults
let standardUserDefaults = UserDefaults.standard
// Default Payment Queue
let defaultPaymentQueue = SKPaymentQueue.default()
๋ง์ด ๋ด์จ http ํต์ ํ ๋ ์ฌ์ฉ๋๋ ์ฝ๋ URLSession.shared
let task = URLSession.shared.dataTask(with:request) { (data, response, error) in
// something code
}
task.resume()
Local ์์น์ file์ ๋ค๋ฃจ๋ FileManger.default
๋ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ๊ฐ๊ณผ ๋จ์ผ๊ฐ์ ์ ์ฅํ์ฌ ์ฌ๋ฌVC์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ UserDefaults.standard
UserDefaults์ ๋ํ ์์๋ฅผ ๋ณด๊ณ ์ถ์ผ์๋ค๋ฉด https://zeddios.tistory.com/107
iOS ๊ถ์์ ์ ๋์ค์ค๋์ UserDefaults ์์์ ๋๋ค. ^^
์์ข ๋๊ฐ ์๋ค์.
+ ์ ์ผ ๊ถ๊ธํ๋ ์ .
Q. ์ ์ญ ๋ณ์๋ ๋๊ฐ์๋ฐ ์ ๊ตณ์ด ์ฑ๊ธํค์ผ๋ก ์ธ๊น..?
A. ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ก์๋จน๋ ํด๋์ค๊ฐ ์๋ค ํ์ ๋ ์ ์ญ ๋ณ์๋ก ์ ์ธํ๋ฉด
์ฌ์ฉํ์ง ์์๋์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ก์๋จน๋๋ค.
BUT. ์ฑ๊ธํค? ์์ฑ ์์ ๋ถํฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉ. ๋ ์ฌ์ฉํ์ง ์์๋ ํด์ ํจ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ ์ ์๋ค~
๋ถ์กฑํจ์ด ๋ง์ ๊ธ
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
( ์ฐธ์กฐ : https://cocoacasts.com/what-is-a-singleton-and-how-to-create-one-in-swift )
- Total
- Today
- Yesterday
- swift urlsession module
- rag llm pdf
- swift urlcomponent encode
- ๊ตฌ๊ธ ํ์ด๋จธ ์ดํ
- swift urlsession network module
- swift filemanager get excel
- swift filemanager excel
- google timer application
- filemanager excel read
- swift queryitem encode
- focus timer ์ดํ
- chatgpt rag llm
- swift network module
- swift ์์ ์ฝ๊ธฐ
- swift excel read
- swift network ๊ณตํตํ
- llm pdf rag
- swift urlsession ๊ณตํตํ
- swift ์์ ๊ฐ์ ธ์ค๊ธฐ
- rag ๊ธฐ๋ฐ llm
- swift get excel
- rag ๊ธฐ๋ฐ llm ์ฑ๋ด
- deep timer
- google timer ์ดํ
- swift network refactoring
- swift ๋คํธ์ํฌ ๋ชจ๋ํ
- swift urlsession refactoring
- swift ์๊ฐ
- llm csv
- ํ์ด๋จธ ์ดํ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |