ํฐ์คํ ๋ฆฌ ๋ทฐ

์๋ ํ์ธ์?
๋๊ตฌ๋ฆฌ์ ๋๋คใ ใ
์์ฆ ๋ฌด์ฌ์ฝ ์ฐ๋ค๊ฐ ์ ๋ฆฌ๊ฐ ํ์ํด ๋ณด์ฌ์
์ค๋ ์ ๊ทผ ์ ์ด์ ๋ํด์ ์ ๋ฆฌํด๋ณด๋ ค ํฉ๋๋ค.
์ ๊ทผ์ ์ด
๊ณต์๋ฌธ์์์๋ ์ ๊ทผ ์ ์ด๋ฅผ ๋ค๋ฅธ ์์ค ํ์ผ๊ณผ ๋ชจ๋์์ ์ฝ๋์ ๋ถ๋ถ์ ์ ๊ทผ์ ๋ํด ์ ํํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
๊ทธ๋ผ ์ด๋ฐ ๊ธฐ๋ฅ์ ์ ํ์ํ๊ฑธ๊น์?
๋ฐ๋ก ์๋ํ์ ์บก์ํ๋ฅผ ์ํด์์ ๋๋ค.
์ ๊ทผ ์ ์ด๋ฅผ ํตํด ์ฝ๋์ ์์ธ ๊ตฌํ์ ์จ๊ธธ์ ์๊ณ ,
ํ์ํ ๊ธฐ๋ฅ๋ง ๋ ธ์ถ์ํฌ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด์ฃ !
๊ทธ๋ฐ๋ฐ ๊ณต์๋ฌธ์ ์ค๋ช ์์
์์ค ํ์ผ๊ณผ ๋ชจ๋์ด๋ผ๋ ์ฉ์ด๊ฐ ์๋๋ฐ์!
์ด๋ถ๋ถ๋ ๊ฐ๋จํ ์์๋ณด๊ณ ๊ฐ๊ฒ ์ต๋๋ค!!
๋ชจ๋๊ณผ ์์คํ์ผ
์ด๊ฒ์ ๋ํ ๋ด์ฉ์ ๊ณต์๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค!!
๋ชจ๋์
- ๋จ์ผ ๋จ์๋ก ๋น๋๋๊ณ ์ ๊ณต๋๋ ํ๋ ์์ํฌ ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ์ ์ฝ๋ ๋ฐฐํฌ์ ๋จ์ผ ๋จ์์ ๋๋ค.
- import ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋ชจ๋์์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- ์ฑ ๋ฒ๋ค ๋๋ ํ๋ ์์ํฌ์ ๊ฐ์ด Xcode์์ ๊ฐ ๋น๋ ํ๊ฒ์ swift์์ ๋ณ๋์ ๋ชจ๋๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
- ์ฑ์ ์ฝ๋์ ์ฌ๋ฌ ์ธก๋ฉด์ ๋ ๋ฆฝํ ํ๋ ์์ํฌ๋ก ๊ทธ๋ฃนํํ๋ฉด ํด๋น ํ๋ ์์ํฌ ๋ด์์ ์ ์ํ ๋ชจ๋ ๊ฒ์ ์ฑ ๋ด์์ ๊ฐ์ ธ์์ ์ฌ์ฉ๋๊ฑฐ๋ ๋ค๋ฅธ ํ๋ ์์ํฌ ๋ด์์ ์ฌ์ฉ๋ ๋ ๋ณ๋์ ๋ชจ๋์ ์ํ๊ฒ ๋ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฐ๋ UIkit, Foundation ์ด๋ฐ ์ ๋ค๋ ์ผ์ข ์ ๋ชจ๋์ด์๊ตฐ์!!
์์คํ์ผ์
- ๋ชจ๋ ๋ด์์ ๋จ์ผ swift ์์ค ์ฝ๋ ํ์ผ์ ๋๋ค.(์ค์ ์ฑ ๋๋ ํ๋ ์์ํฌ ๋ด์ ๋จ์ผ ํ์ผ)
์ ๊ทผ ์์ค
์ ๊ทผ ์์ค์๋ open, public, internal, fileprivate, private๊ฐ ์์ต๋๋ค!!
ํ๋์ฉ ์์๋ณผ๊ฒ์!!
Open
open ํค์๋์ ์ ๊ทผ ์์ค์ ์ ์ํ ๋ชจ๋ ๋ชจ๋๊ณผ ๋ชจ๋ ์์คํ์ผ์์ ์ ๊ทผํ ์ ์๋ ์์ค์ ๋๋ค!!
open์ ํด๋์ค์ ํด๋์ค ๋ฉค๋ฒ์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค!!
์ค์ ๋ก ์ฌ์ฉ๋ ๋ชจ์ต๋ ๋ด๋ณผ๊ฒ์!!

์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ณ ์๋ NSObject๋ฅผ ๊น๋ณด๋ฉด open ํค์๋๊ฐ ์ ์ฉ๋์ด
์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅํ ๊ฒ์ ์ ์ ์์ต๋๋ค!!
public
public๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๊ทผ ์์ค์ ์ ์ํ ๋ชจ๋ ๋ชจ๋๊ณผ ๋ชจ๋ ์์คํ์ผ์์ ์ ๊ทผํ ์ ์๋ ์์ค์ ๋๋ค.
public์ ์ฃผ๋ก ํ๋ ์์ํฌ์์ ์ธ๋ถ์ ์ฐ๊ฒฐ๋ ์ธํฐํ์ด์ค๋ฅด ๊ตฌํํ๋๋ฐ ๋ง์ด ์ฐ์ ๋๋ค!!
Internal
Internal ํค์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฉ๋์ด ์๋ ๋ํดํธ ์์ค์ ๋๋ค!
์ฐ๋ฆฌ๊ฐ ์๋ฌด๋ฐ ์ ๊ทผ ์ ํ์ ๊ฑธ์ง ์๋๋ค๋ฉด ๋ฐ๋ก Internal์ด ์๋ฌต์ ์ผ๋ก ์ฌ์ฉ๋ ๊ฒ์ด์ฃ !
์ ๊ทผ ์์ค์ ์ ์ํ ๋ชจ๋์ ๋ชจ๋ ์์ค ํ์ผ ๋ด์์ ์ฌ์ฉํ ์ ์์ง๋ง
ํด๋น ๋ฌด๋ ์ธ๋ถ์ ์์คํ์ผ์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค!!
fileprivate
fileprivateํค์๋๋ ์์ฒด ์ ์ํ ์์คํ์ผ๋ก ์ํฐํฐ์ ์ฌ์ฉ์ ์ ํํฉ๋๋ค!
ํค์๋ ์ด๋ฆ์ฒ๋ผ ๊ตฌํ๋ ์์คํ์ผ ๋ด๋ถ์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค!!
fileprivate ํค์๋๋ ์์คํ์ผ ์ธ๋ถ์์ ๊ฐ์ด ๋ณ๊ฒฝ๋๊ฑฐ๋ ํจ์๋ฅผ ํธ์ถ์ ๋ฐฉ์งํ ๋
์ฌ์ฉํฉ๋๋ค!
private
private ํค์๋๋ ๊ฐ์ฅ ์ ๊ทผ ์์ค์ด ๋ฎ์ ํค์๋๋ก ๊ตฌํํ ๋ฒ์ ๋ด์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ธ๋ถ ๋ด์ฉ์ ๋จ์ผ ์ ์ธ ๋ด์์๋ง ์ฌ์ฉ๋๊ณ ๊ตฌํ ์ธ๋ถ์ ๋ณด๋ฅผ ๊ฐ๋ฆด ๋ ์ฌ์ฉ๋ฉ๋๋ค.!
private(set)
private(set) ํค์๋๋ ์ด๋ฆ์ฒ๋ผ setter๋ง private๋ก ์ ๊ทผ ์ ํ์ ์ค์ ํฉ๋๋ค!
์ฆ ์ธ๋ถ์์ ์ฝ๊ธฐ๋ง ๊ฐ๋ฅํ๊ณ , ์ฐ๊ธฐ๋ ๋ถ๊ฐ๋ฅํ ์ฝ๊ธฐ ์ ์ฉ ๊ตฌํ์ ๋๋ค!!
๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด ๋ณด์์ต๋๋ค!!
์ฌ๊ธฐ์ open๊ณผ public์ ์ฐจ์ด์ ๋ํด ๊ถ๊ธํ ์ ์ด ์๊ฒผ๋๋ฐ์
์ด๊ฒ์ ๋ํด์๋ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค
open VS public
๋๋ค ์ ๊ทผ ์์ค์ด ๊ฐ์ฅ ๋์ ํค์๋ ์ธ๋ฐ์!
๊ทธ ์ฐจ์ด๋ฅผ ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค
- open ํค์๋๋ ํด๋์ค์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
- open ํค์๋๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ชจ๋ ํด๋์ค(๋ค๋ฅธ ์ ๊ทผ์์ค ์ฌ์ฉ)๋ ์ ์๋ ๋ชจ๋ ์์์๋ง ์์ ๊ฐ๋ฅํ๋ค
- open ํค์๋๋ override์ ์๋ธ ํด๋์ฑ์ด ๊ฐ๋ฅํ๋ค!
- public ํค์๋๋ override์ ์๋ธ ํด๋์ฑ์ด ๋ถ๊ฐ๋ฅํ๋ค!
- open ํค์๋๋ฅผ ์ฌ์ฉํ๋๊ฒ์ ๋ค๋ฅธ ๊ณณ์์ ํด๋น ํด๋์ค๋ฅผ ์์๋ฐ๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค!
์ค๋ ์ ๊ทผ์ ํ์ ๋ํด ์์๋ณด์์ต๋๋ค!
ํน์ ํ๋ฆฐ๋ถ๋ถ์ด ์๋ค๋ฉด ๊ผญ ์๋ ค์ฃผ์ธ์!!
๊ธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
'iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [iOS/Swift] ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ - GCD vs Operation (0) | 2022.12.30 |
|---|---|
| [iOS/Swift] ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ - ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ์ ํ์ํ ๊น? (0) | 2022.12.29 |
| [iOS/Swift] ARC(Automatic Reference Counting)์ ์์๋ณด์ (0) | 2022.07.24 |
| [iOS/Swift] Generic(์ ๋ค๋ฆญ) ๋ ์ง์ง ์ ์๊ณ ์ถ๋ค! (0) | 2022.07.03 |
| [iOS/Swift] map ํ์ ๋ค flatMap๊ณผ compactMap (0) | 2022.06.26 |
- Total
- Today
- Yesterday
- swift urlsession
- Swift Network
- observable
- Clean
- ์ค์ํํธ
- swift ๊ณต๋ถ
- ์คํ ๋ ์ด์์
- ํ๋กํ ์ฝ
- ๊ณต๋ถ
- ์ค์ํํธ ํ๋กํ ์ฝ
- ios
- Unit Test
- xcode
- ํ๋กํผํฐ
- Property
- autolayout
- Protocol
- ํ ์คํธ
- RX
- swift
- RxSwift
- network
- URLSession
- ์ค์ํํธ map
- test
- swift ํ๋กํ ์ฝ
- func
- ์ค์ํํธ ๊ณต๋ถ
- XCTest
- set
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 | 31 |