์๋
ํ์ธ์, Callie ์
๋๋ค.
๊ฐ๋ฐ์ ๊ณต๋ถํ์ง 3๊ฐ์ ์กฐ๊ธ ์ ๋ ๊ฐ๋ฐ ๋ด๋น๋ก์ ๊ฐ์ธ์ฑ ์ถ์๊ฐ ๊ฐ๋ฅํ ๊น? ๋ผ๋ ๊ฑฑ์ ์ ์์ฃผ ํ์๋๋ฐ์, ์ ์ ๊ฒฝํ์ /๊ฐ๋ฐ์ ๋ถ์กฑํจ์ ๋ฉํ ๋๋ค๊ณผ ๋๊ธฐ๋ถ๋ค์ ๋์์ผ๋ก ์ ํด์ง ๊ธฐ๊ฐ ๋ด์ ์ฑ ์ถ์๋ผ๋ ๋ชฉํ๋ฅผ ๋ฌด์ฌํ ์ด๋ฃฐ ์ ์์์ต๋๋ค.
ํค๋งฌ ๋๋ง๋ค ๊ธฐ๊ฐ ๋งํ๊ฒ ์ ๋๋์ด์ ๋ง์ถฐ ํด๊ฒฐ์ฑ
์ ์ฐพ์ ์ ์๋๋ก ๋์์ฃผ์๋ ๋ฉํ ๋๋ค๊ณผ ๋๊ธฐ๋ถ๋ค๊ป ๋
๋ค ๊ฐ์ฌํจ๋ถํฐ ์ ํ๋ ์ ์ ์ฒซ ๋ฒ์งธ ์ฑ <์ง๊ด๋ก๊ทธ> ํ๊ณ ์์ํ๊ฒ ์ต๋๋ค.
0.
- ๊ฐ๋ฐ๊ธฐ๊ฐ: 2023๋
9์ 25์ผ ~ 2023๋
10์ 25์ผ (์ฝ 3์ฃผ)
- ๊ฐ๋ฐํ๊ฒฝ: Xcode: 15, iOS: 15์ด์, swift: 5.9
1. ์ฑ ์๊ฐ ๐โพ๏ธ๐โฝ๏ธ
์ฑ์คํ ์ด ๋งํฌ: https://apps.apple.com/kr/app/%EC%A7%81%EA%B4%80%EB%A1%9C%EA%B7%B8/id6469852233
์ง๊ด๋ก๊ทธ
[ ์ง๊ด๋ก๊ทธ ์ฃผ์๊ธฐ๋ฅ ] # ๋ฌ๋ ฅ - ์ง๊ดํ ๊ฒฝ๊ธฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฌ๋ ฅ์ ํตํด ํ๋์ ํ์ธ ํ ์ ์์ด์. - ์ง๋ ๊ฒฝ๊ธฐ์ ์ง๊ด ๊ธฐ๋ก๋ ๋จ๊ธธ ์ ์์ด์. # ์์ฑ - ์ฝ๊ณ ๊ฐ๋จํ๊ฒ ๊ธ ์์ฑ, ํธ์ง, ์ญ์ ํ ์ ์์ด
apps.apple.com
1-1. <์ง๊ด๋ก๊ทธ> ๊ฐ๋ฐ ๊ณ๊ธฐ
- ์คํฌ์ธ ๋งค๋์ง๋จผํธ๋ฅผ ์ ๊ณตํ ๋งํผ ์ถ๊ตฌ์ ์ผ๊ตฌ์ ์ด๊ดํด์จ ์น์ค๋น , ์ง์ญ ์คํฌ์ธ ํ๊ณผ ์ํ ์คํฌ์ธ ์ ์ง์ฌ์ธ ๋ฏธ๊ตญ์ธ ์น๊ตฌ๋ค, 2021๋
๋์ฟ ์ฌ๋ฆผํฝ ์ดํ ์ฌ์๋ฐฐ๊ตฌ์ ํฌ์ด ๋ ์ ์นํ ์น๊ตฌ์ ์ํฅ์ผ๋ก ๊ทธ๋ค์ ๋ฐ๋ผ ์ง๊ด์ ๋ค๋๋ฉฐ ๊ทธ๋ค๊ณผ ๊ฐ์ ํ์ ์์ํ๊ณ ์ข์ํ๊ฒ ๋๋ฉด์ ์คํฌ์ธ ์ง๊ด์ ๋งค๋ ฅ์ ์๊ฒ ๋์์ต๋๋ค. ํนํ ์ง๊ด์ ํด์ ์์ํ๋ ํ์ด ์น๋ฆฌ ํ์ ๋, ํ๊ตญ์์ ๊ทธ ํ์ ์น๋ฆฌ๋ฅผ ์ง์ผ๋ณธ ํฌ๋ค์ '์น๋ฆฌ์์ '์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ ๊ท์ฝ๊ณ ์ฌ๋ฐ๋ค๊ณ ๋๊ผ์์ด์.
- ๋ด๊ฐ ๊ทธ ์น๋ฆฌ์์ ์ผ ๋ ๊ดํ ํ์ ๋ณดํฌ์ด ๋ ๊ฒ ๊ฐ๊ณ , ์น๋ฆฌ์์ ์ธ ๊ฒฝ์ฐ๊ฐ ๋์๋ก ์ง๊ด๋ ์ฌ๋ฐ์ง๋ง '๋ด๊ฐ ๋ณธ ๊ฒฝ๊ธฐ๋ ์ด๊ธด๋ค'๋ผ๋ ์๊ฐ์ ํ๋ฉฐ ์๋ถ์ฌ์ ๊ฐ์ง๊ฒ ๋๋ ๊ฒ ์ง๊ด์ ๋ฌ๋ฏธ๊ฐ ๋์ด ๋ ์์ฃผ ์ง๊ด์ ๊ฐ๊ฒ ๋๋ฉด์ ๋์ ์ง๊ด ์น๋ฅ ๊ณผ ๋ฐ์ดํฐ๋ฅผ ํ ๋์ ๋จ๊ธธ ์ ์์ผ๋ฉด ์ข๊ฒ ๋จ ์๊ฐ์ ํ์์ต๋๋ค.
- '๊ฐ์ธ์ ์ง๊ด ์น๋ฅ ์ ์ฌ๋ฐ๊ฒ ๋ํ๋ด๊ณ , ๊ฒฝ๊ธฐ์ ์ถ์ต์ ๊ธฐ๋กํ ์ ์์๊น?' ๋ ๊ณ ๋ฏผ์ ํ๊ฒ ๋๋ฉด์ <์ง๊ด๋ก๊ทธ>๋ผ๋ ์ฑ์ ๊ฐ๋ฐํ๊ฒ ๋์์ด์.
1-2. <์ง๊ด๋ก๊ทธ> ์๊ฐ & ํน์ง
<์ง๊ด๋ก๊ทธ>๋ ๊ตญ๋ด 4๋ ์คํฌ์ธ ๋ฆฌ๊ทธ + e์คํฌ์ธ ๋ฆฌ๊ทธ์ ํํ์ฌ ์ง๊ด ๋ค๋๋ ํฌ๋ค์ ์ํ ์ง๊ด ๊ธฐ๋ก ์ฑ์
๋๋ค.
๊ธฐ๋ก์ ํ๋ฉด ๋ฌ๋ ฅ์ ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๊ฐ ํ์๋จ๊ณผ ๋์์ ํฐ์ผ ํ์์ผ๋ก ๊ธฐ๋ก์ ์ ์ฅ ๋ฐ ๋ณด๊ดํ ์ ์์ผ๋ฉฐ, ์ ์ฅ๋ ๊ธฐ๋ก์ ๋ฐํ์ผ๋ก ์น๋ฅ ์ ์ฐจํธ ๋ฐ ํ
์คํธ๋ก ํ์ธํ ์ ์์ด์. ๊ธฐ๋ก์ ๊ฒ์๊ธฐ๋ฅ์ ํตํด ์ฐพ์๋ณผ ์ ์์ผ๋ฉฐ, ์ ์ฅ๋ ๊ธฐ๋ก์ ์ธ์ ๋ ์์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ผ์ธ ์คํฌ์ธ ์ง๊ด์ ๋ค๋๋ ํฌ๋ค์ด ๊ฐํธํ๊ฒ ๊ฒฝ๊ธฐ์ฅ ๋ ์จ๋ฅผ ํ์ธํ ์ ์๋๋ก ๊ตญ๋ด ์ถ๊ตฌ ๊ฒฝ๊ธฐ์ฅ๊ณผ ์ผ๊ตฌ ๊ฒฝ๊ธฐ์ฅ ๋์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ์จ ์ ๋ณด๋ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
1-3. ์ฌ์ฉ๋ ๊ธฐ์ ์คํ
- Alamofire
- Codable
- CodeBase UI
- SnapKit
- Realm
- FSCalendar
- TextfieldEffects
- IQKeyboardManager
- DGCharts
- Firebase
- Toast
- MVVM + CustomObservable
- PhotosUI
- MessageUI
2. ๊ธฐํ
2-1. ๊ธฐํ ๊ฐ์ด๋
2-2. ์ด๋ฒ ๊ฐ์ธ์ฑ ์ถ์์์ ๋์ ํ๊ณ ์ ํ๋ ๊ฒ๋ค
์์
์์ ๋ฐฐ์ ๋ ๊ฒ๋ค์ ์ต๋ํ ํ์ฉํ๊ณ ์ ํ์ต๋๋ค.
- DiffableDatasource ๋ก ์ปฌ๋ ์
๋ทฐ ํํํ๊ธฐ
- API ๋คํธ์ํฌ ํต์ ํ๊ธฐ (Alamofire / Codable)
- CodeBase UI & SnapKit
- Realm ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฉํ๊ธฐ
- MVVM
- ๋ค์ํ ๋ฌธ๋ฒ ํ์ฉํด๋ณด๊ธฐ
- ํฐํธ ์ ์ฉ
- ๋ค๊ตญ์ด ๋์
- ๋คํฌ๋ชจ๋ ๋์
- UIButton.configuration
- FileManager
์ ๋ฆฌ์คํธ๊ฐ ์ ์ ๋ชฉํ์๋๋ฐ, MVVM์ ์ ์ธํ๊ณค ๋ชจ๋ ์ด๋ฒ 1.0.0 ๋ฒ์ ์ ์ ๋ชฉ์ํค๊ณ ๋์ ํด๋ณด์์ ์ ๊ธฐํ๊ธฐ๋ ํ๊ณ ๋ฟ๋ฏํ์ต๋๋ค. ํนํ ์์ ๋ ๊ณต์์๊ฐ์ ๊ฐ๋์ฉ ์ค๋ฒํ๊ธด ํ์ง๋ง, ์ ๊ฐ ์ฝ๋ ๋ฒ ์ด์ค๋ก UI๋ฅผ ์ก๋ ์๊ฐ์ด ๋น๊ต์ ๋น ๋ฅด๋ค๋ ๊ฑธ ์๊ฒ ๋ ๊ณ๊ธฐ๊ฐ ๋์์ด์. ๋ธ๋ก๊ทธ์๋ ์ฝ๋๋ก UI ์ก๋ ๊ฑธ ์ฌ๋ฐ๊ฒ ๋ฐฐ์ฐ๊ณ ๊ณต๋ถํ ๊ธฐ๋ก์ด ์๋๋ฐ, UI๋ฅผ ๊ณ ๋ฏผํ๊ณ UX๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ ์ด๋ ค์ฐ๋ฉด์๋ ๋ฐ๋ก ๋์ผ๋ก ํ์ธํ ์ ์๋จ ์ ์์ ์์
ํ ๋๋ง๋ค ์๋๊ฐ ์ ๋ถ๊ณ ์ธ์ ๋ ์ฌ๋ฐ๋ ๊ฒ ๊ฐ์์.
๊ทธ๋ฆฌ๊ณ ........ ์ ๊ฐ ๊ฐ๋ฐ์ ์ผ๋ก ๋งํ ๋๋ง๋ค ์ค๋ ฅ์ ํ๊ณ๋ก ์ธ๋ฉดํ๋ ๋ฌธ๋ฒ๋ค์ ๋ค์๊ธ ์๊ฐํด์ฃผ๋ฉฐ ํด๊ฒฐ๋ฐฉ์์ผ๋ก ์ ์ํด์ฃผ์ ๋ฉํ ๋๋ค ๋๋ถ์ enum๊ณผ delegate, notificationCenter ๋ฑ์ ๊ฐ๋
์ ๋ค์ ๋ณต์ตํ๋ฉฐ ์ ์ฑ์ ์ ์ฉ ์ํฌ ์ ์์์ต๋๋ค. ๊ทธ์ค ๋ค๋ฅธ ๋ถ๋ค์ ์ฝ๊ฒ ์ฐ์๋ Enum ํ์ฉ์ด ๋งค๋ฒ ์๋ฟ์ง ์์๋๋ฐ, ๋ฉํ ๋์ด ๋ฐฉํฅ์ฑ์ ์ก์์ฃผ์ ์ฌ์ฌ์ฉ์ enum ์ธ ๋๊ธฐ๋ถ๋ค์ด ๋ค์ํ ๋ฐฉํฅ์ผ๋ก ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์๋์ง ์ ๊ทน์ ์ผ๋ก ์๋ ค์ฃผ์ ๋์ ์ด์ ์ enum์ผ๋ก ์ฝ๋๋ฅผ ๊ด๋ฆฌํ๋์ง ์๊ฒ ๋๋ผ๊ตฌ์. ์ฌ๋ฌ๋ชจ๋ก ์์ ํ๊ธฐ๋ ํธํ๊ณ , ๊ฐ๋
์ฑ๋ ์ข๊ณ . ๋ง๋ฅ enum!
์ฌ์ ํ ํค๋งค๋ ๋ถ๋ถ๋ ๋ง๊ณ ์ด๋ ค์ํ๋ ๋ถ๋ถ๋ ๋ง์ง๋ง, ๊ฐ์ธ์ฑ ๊ฐ๋ฐ์ ์ง์คํ 3์ฃผ๋์ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์๋จ ์ ์์ ์ด๋ป๊ฒ๋ ๊ธฐํํ ๊ฑธ ๋ง๋ค์ด๋ด๋ ๊ฐ๋ฐ ๋ด๋น๊ฐ ๋์์ต๋๋ค. ํ๊ณ ๋ฅผ ์ฐ๋ ์ง๊ธ๋ ์ ๊ธฐํ๋ค์.
2-3. ์ดํฐ๋ ์ด์ ๋ฐ ๊ณต์์ฐ์
https://zickwanlog.notion.site/zickwanlog/109914bfd568447db7b05f983e72ff0a
์ง๊ด๋ก๊ทธ
์ง๊ด๋ก๊ทธ ์ดํฐ๋ ์ด์ ๋ฐ ๊ณต์์ฐ์
zickwanlog.notion.site
์ ๋
ธ์
๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
2-5. Realm DB ๊ตฌ์กฐ
_id | objectId | ** PrimaryKey |
gameTitle | String | ํ์์ ๋ ฅ |
date | String | ํ์์ ๋ ฅ |
location | String | ํ์์ ๋ ฅ |
seat | String | ํ์์ ๋ ฅ |
comment | String | ํ์์ ๋ ฅ |
review | String? | User ์ ํ์ฌํญ |
stampText | String | ํ์์ ๋ ฅ |
4. ๋ฐ์ํ๋ ์ด์์ ๋์ ๋ฐฉ๋ฒ
4-1. apply
https://calliek.tistory.com/16
[iOS/error] object has been deleted or invalidated.
โ๏ธ ํ๊ฒฝ - iOS 16์ด์ - Swift 5.9 - Xcode 15 ๐ป ๋ฌธ์ ์ํฉ - ๊ฐ์ธ์ฑ ํ๋ก์ ํธ ์งํ ์ค diffableDatasource๋ก ์ปฌ๋ ์ ๋ทฐ ํ์ฉํ๋ UI๋ฅผ ์ฌ์ฉ ์ค์ด์๊ณ , Realm์์ create๋ ์ ๋๋๋ฐ delete๋ฅผ ํ๋ ค๊ณ ํ๋ฉด delete ํ
calliek.tistory.com
4-2. ์ฌ์ฉ์์ Realm ์ ๊ทผ ๊ถํ ๋ฌธ์
- [์ค์ ]-[์ผ๋ฐ]-[iPhone ์ ์ฅ๊ณต๊ฐ]-[์ฑ์ด๋ฆ] ์์ผ๋ก ๋ค์ด๊ฐ์ ๋ Realmํ์ผ์ด ๋ณด์ฌ์๋ ์ ๋๋๋ฐ, ์ง๊ด๋ก๊ทธ์ Realm ํ์ผ์ด ๋
ธ์ถ๋๊ณ ์์๊ณ ์ฌ์ฉ์๊ฐ Realm์ ์ ๊ทผํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ์ ์ผ๋ก ์กฐ์ํ ์ ์๋ ์ด์๊ฐ ์์์ต๋๋ค. ์ฝ๋์ ์ผ๋ก ๋ฐ๋ก ์์ฑํ ๊ธฐ์ต์ด ์์ด์ ์ฐ์์ข์ํ๊ณ ์์ ๋ ๋ฉํ ๋๊ป์ Info.plist์ ์ค์ ์ ์์ ํด๋ณผ ๊ฒ์ ์๋ ค์ฃผ์
จ๊ณ ....
- Application supports iTunes file sharing, Supports opening documents in place ์ค์ ์ ์ญ์ ํด์ฃผ์ realm ์ ๊ทผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
- ๊ฐ์ ์ด์๋ฅผ ๊ฒช์ ๋๊ธฐ๋๊ณผ ์ ์ ๊ณตํต์ ์ fileManager๋ก ์ด๋ฏธ์ง ์ ์ฅ ๊ฒฝ๋ก๋ฅผ ๊ด๋ฆฌํ ๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ ์ฝ๋์ ์์
์ฝ๋๋ฅผ ํผ์ํด์ ์ฌ์ฉ ํ ๋ info.plist์์ ์ ๋ ์ค์ ์ ์ถ๊ฐํ์๋ ์ ์ด์๊ณ , ์ ๋ ์ค์ ์ผ๋ก ์ธํด ์ฌ์ฉ์๊ฐ realm์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๊ฐ์ง๊ฒ ๋์๋ ๊ฑฐ์์ด์. ํ์ผ ์ ๊ทผ์ ๋ฒ์๋ฅผ ๋ํ์ฃผ๋ ์ค์ ์ด์๊ธฐ ๋๋ฌธ์ realm์๋ ์ํฅ์ ์ฃผ์๋ ๊ฒ ๊ฐ์์.
5. ๊ฐ์ธ ํ๊ณ
๊ธฐํ, ๋์์ธ, ๊ฐ๋ฐ ์ด ์ธ๊ฐ์ง๋ฅผ ๋ชจ๋ ํผ์ ํด๋ผ ์ ์์ ๊ฒ ๊ฐ์ง ์์๋๋ฐ ํด์ผํ ์ํฉ์ด ์ค๋๊น ํด๋ธ ๊ฒ ์ถ์๋ฅผ ํ ์์ ์ ๋ค์ ์๊ฐํด๋ณด๋ ์ ๋ง ์ ๊ธฐํด์. ํนํ ๊ธฐํ๊ณผ ๋์์ธ๊น์ง ์ ๊ฐ ํ๊ฒ ๋๋ฉด์ ํ์ ํฅ๋ฏธ ์์ดํ๋ UXUI ์ธก๋ฉด์ ๊ฐ๋ฐ์์ ์ฌ์ฉ์์ ์
์ฅ์์ ์ง์งํ๊ฒ ๊ณ ๋ฏผ์ ํด๋ณผ ์ ์์ด์ ์ข์์ต๋๋ค. ๊ธฐํ์ ๋ง์ถ UX๋ฅผ ๊ณ ๋ฏผํด๋ณด๊ณ , UX์ ์ด์ธ๋ฆฌ๋ UI๋ฅผ ๋์์ธ ํด๋ด๊ณ , ์ฝ๋๋ก ์ต์ข
๊ตฌํ์ ํ๋ ์ด ์ผ๋ จ์ ๊ณผ์ ์ ๋ถ์กฑํ์ง๋ง ๊ฑฐ์น๋ฉด์ ์ฌ์ฉ์์ ์
์ฅ์ ์ดํดํ ์ ์๋ ๊ฐ๋ฐ์์ ๊ฐ๊น์ ์ง ์ ์์๋ ๊ธฐํ์ด์ ๋ฐฐ์์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌด์ธ๊ฐ๋ฅผ ๊ธฐ๋กํ๋ ์ฑ์ ๊ฐ๋ฐํ๊ธฐ๋ก ํ๋ ์ด์ ์ค realm ๊ณต๋ถ๋ฅผ ์ ๋๋ก ํด๋ณด๊ณ ์ถ์ด์ ์ ์ ํ๋ ๊ฒ๋ ์๋๋ฐ, ๋ถ์กฑํ๋ ๋งํผ realm์ ๋ค๋ฃจ๋ฉฐ ์๋์น ์๊ฒ ๋ง์ด ํค๋งธ์ง๋ง ํค๋งจ ๋งํผ ์ด๋ฒ ๊ธฐํ์ realm์ ์ดํดํ ์ ์์ง ์์๋ ์ถ์ต๋๋ค. ๋ฌผ๋ก CRUD์์ ์์ง ์ ์จ๋ณธ ๊ธฐ๋ฅ์ด ๋ง์์ ์์ ํ ๋ค ์ดํดํ๋ค๊ณ ํ ์ ์๊ฒ ์ง๋ง, ๊ทธ๋๋ ์ด์ ํ์ํ ๋ถ๋ถ์ ์ฐพ์์ ์ด์ฐ์ ์ฐ ๊ตฌํํด๋ผ ์ ์์ง ์์๊น ํ๋ ์ ์ ์๋ ์์ ๊ฐ๋ ์ข ์๊ฒผ๊ณ ์.
๊ทธ๋ฆฌ๊ณ [๊ธฐ๋ก]์ด๋ผ๋ ์ฃผ์ ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณต๋ถํด์ ๊ทธ ๊ธฐ๋ก์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด ํํํด ๋ณผ ์ ์์๊ณ , ๊ฒ์ ๊ธฐ๋ฅ ๊ฐ์ด ์์
์์ ๋ฐฐ์ด ๋ค์ํ ์ฝ๋๋ฅผ ๊ฐ์ธ์ฑ์ ์ ์ฉํด๋ณผ ์ ์์๋ ๊ฒ ๊ฐ์์ ์ ๊ฐ์ ๊ฐ๋ฐ ๋ด๋น์๊ฒ ์์ฃผ ์ ์ ํ ์ฃผ์ ์ ์ ์ด์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋งํผ ๊ธฐ๋ก์ ์ ๊ทผํด๋๊ฐ๋ ๋ฐฉ๋ฒ์ ๋ํด ์
๋ฐ์ดํธ ํด๋๊ฐ์ผํ ๋ถ๋ถ๋ ๋ง์ง๋ง์. ๊ณ์ '์ ๋ ์ํ ์ ์์๋๋ฐ!' ํ๊ฒ ๋๋ ๋ถ๋ถ์ ์๋ฌด๋๋ searchVC๊ฐ ๋ ๊ฒ ๊ฐ์๋ฐ, ๋ ๋์ UI๊ฐ ๋ถ๋ช
์์ ๊ฒ ๊ฐ์์ ์ด UI๋ ์
๋ฐ์ดํธ๋ก ์ฐจ์ฐจ ๊ฐ์ ํด๋๊ฐ๊ฒ ์ต๋๋ค.
์์ง ๋ถ์กฑํ ์ค๋ ฅ์ผ๋ก ์ธํด ๊ฐ์ธ์ ์ผ๋ก ์์ฌ์ด ๋ถ๋ถ์ด ๋ง์ง๋ง, ๊ทธ์ค ์ ์ค๋ ฅ ์ธ ์ ์ผ๋ก ์์ฌ์ ๋ ์ ์ ๊ตญ๋ด ์คํฌ์ธ ๊ด๋ จ API์ ๋ถ์ฌ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ธฐํ๋จ๊ณ์์ ์ด์ฌํ ์ฐพ์๋ดค์๋๋ฐ ๊ตญ๋ด ์คํฌ์ธ ๋ฆฌ๊ทธ๋ ๋ฆฌ๊ทธ ๊ด๋ จ API๋ฅผ ์คํ์์ค๋ก ์ ๊ณตํด์ฃผ๊ณ ์์ง ์์์, ์คํฌ์ธ ๋ณด๋ค ๊ธฐ๋ก์ ๋ ์ด์ ์ ๋ง์ถ์ ๋ฐ์ ์์๋จ ์ ์์ ์คํฌ์ธ ๊ด๋ จ ์ฑ์ ์์ฑ๋ ๋ฉด์์ ์กฐ๊ธ ์์ฝ์ง ์์๋ ํ๊ณ ํ๊ฒ ๋ฉ๋๋ค.
์ฝ๋์ ์ผ๋ก๋ ์์ง ์ ๋๊ฒ ์๋ํ ๋ถ๋ถ์ ์๋ ๊ฒ ๊ฐ์๋ฐ, ๊ทธ๋๋ ์ด๋ฒ ํ๋ก์ ํธ์์ ์ ์ ์ ์ ์ผ๋ ์ฌ๋ฌ swift ๋ฌธ๋ฒ๋ค์ ํ์ฉํ๋ค๋ ์ ์ด ๋ฟ๋ฏํ ๊ฒ ๊ฐ์์. ํ๋ ์ฝ๋ฉ์ ์ฌ์ ํ ์ข
์ข
ํผํ ์ ์์ง๋ง, ๋ฉ๋ฏธ๊ฐ ๋ ๋งํผ ๊ธธ๊ณ ๋ ์ํ ์ฝ๋๋ ์ด๋ฒ ํ๋ก์ ํธ์์ ์์ง ์์๋ ์ถ์ด์ ๊ผญ ์ฝ๋์ ๋ํด ์๋ํด์ผํ๋ค๋ฉด ์ด ๋ถ๋ถ์ ์๋ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ์ด์ MVVM์ผ๋ก ๊ฐ์ ํด๋๊ฐ ๊ฑฐ์ง๋ง!
๋ถ๋ช
๊ฐ๋ฐ์ ์ง์คํ 3์ฃผ๊ฐ ํ๋ค์๋ ๊ฒ ๊ฐ์๋ฐ, ์ด์ ์์์์๋ ๋ถ๊ตฌํ๊ณ ๋๋๊ณ ๋๋๊น ์ง๋ 3์ฃผ๊ฐ ์ ๋ฒ ์ฌ๋ฐ์๋ ๊ฒ ๊ฐ์์.
์ด์, ๊ฒฐ๊ตญ ์ฌ๋ฏธ๋ง ๋จ์ ์ ์ ์ฒซ ์ฑ ๊ฐ๋ฐ์ด์๋ <์ง๊ด๋ก๊ทธ> ์ ๋ํ ํ๊ณ ์์ต๋๋ค. ์์ผ๋ก ๋ถ์ง๋ฐํ ์
๋ฐ์ดํธ ํ๊ฒ ์ต๋๋ค!
(+)
์ง๊ด๋ก๊ทธ๊ฐ ๋ํ๋ฏผ๊ตญ ์คํฌ์ธ ๋ถ์ผ์์ 1์๋ฅผ ํ๋ ์๊ฐ.
'๐ฑ SeSAC iOS 3๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฑ ์์น ์๋ฑํฌ iOS ์ฑ๊ฐ๋ฐ์ ๋ฐ๋ท๊ณผ์ 3๊ธฐ ํ๊ธฐ (4) | 2024.06.25 |
---|---|
๐ฑ 7์ฃผ์ฐจ: URLSession, Access Control, ARC (4) | 2023.09.04 |
๐ฑ 6์ฃผ์ฐจ: NotificationCenter, CLLocationManager, MKMapView, UIPageViewController (1) | 2023.08.27 |
๐ฑ 5์ฃผ์ฐจ: API ํต์ , Codable, DispatchGroup, ๋ณต์ต (1) | 2023.08.20 |
๐ฑ 4์ฃผ์ฐจ: ๋คํธ์ํฌ ํต์ (0) | 2023.08.13 |