PT ํจ๊ณผ๊ฐ ๋ฏธ๋ฏธํ๊ฑฐ๋, ๊พธ์คํ PT๋ฅผ ์ง์ํ๊ธฐ ์ด๋ ค์ ๋์? ํธ๋ ์ด๋์ ํธ๋ ์ด๋ ์ฌ์ด์ ์ฒด๊ณ์ ์ธ ์ํต๊ณผ ํจ์ ์ ์ธ PT ์ด์์ ์ง์ ๊ฒฝํํ์ธ์ :)
๐ช๐ป ํธ๋ ์ด๋๋ ์ฒด๊ณ์ ์ธ ํ์ ๊ด๋ฆฌ๋ฅผ, ํธ๋ ์ด๋๋ ํจ์จ์ ์ธ ๊ธฐ๋ก์!
๐ TnT์ ํจ๊ป ํธ๋ ์ด๋์ ํธ๋ ์ด๋์ ์ผ๋ฏธ๋ฅผ ํฐํธ๋ ค๋ณด์ธ์!
Minimum Deployments: iOS 17.0
Xocde Version: 16.0.1
Tuist Version: 4.37.0
์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
kakao-ios-sdk
KingFisher
FirebaseMessaging
ComposableArchitecture
FSCalendar
- Development: SwiftUI + Tuist + Modular Architecture
- Modular Architecture : Clean Architecture ๊ธฐ์ค ๋ ์ด์ด๋ณ ๋ชจ๋ํ
- Architecture : Clean Architecture + TCA
Application Layer
- AppDelegate, SceneDelegate ์์น
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ ์ ์ผ๋ก์จ ์คํ๊ณผ ๊ด๋ จ๋ ์์ ์ ์ฒ๋ฆฌํจ
Data Layer
- ์ธ๋ถ ๋ฐ์ดํฐ ์์ค์์ ์ํธ์์ฉ์ ๋ด๋นํ๋ ๋ ์ด์ด
- Network / Local(KeyChain) ๋ก ๋๋์ด ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํจ
- DTO๋ก ๋ฐ์์ค๋ฉฐ Mapper๋ฅผ ํตํด ์ฑ ๋ด๋ถ์ ๋ง๋ ๋ฐ์ดํฐ๋ก ๋ณํํ์ฌ ์ฌ์ฉ
- Moya์ ๋ก์ง์ URLSession์ ์ ๋ชฉํ์ฌ Interceptor์ Logger๋ฅผ ๊ตฌํํจ
Domain Layer
- ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ ๋ ์ด์ด๋ก, ์ฑ์ ๋๋ฉ์ธ ๊ท์น์ ์ ์ํจ
- Entity: ๋น์ฆ๋์ค ๋๋ฉ์ธ์ ํต์ฌ ๋ชจ๋ธ์ด๋ฉฐ, UI๋ ์ธ๋ถ ๋ฐ์ดํฐ ์์ค์ ๋ ๋ฆฝ์
- UseCase: ํน์ ๋น์ฆ๋์ค ๊ท์น์ ์ํํ๋ ์ธํฐํ์ด์ค๋ก, Repository๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ๊ฐ๊ณตํ์ฌ Presentation Layer์์ ์ฌ์ฉํ ์ ์๋๋ก ๊ตฌํํจ
- Repository Protocol: ๋ฐ์ดํฐ ์ ๊ทผ ๋ฐฉ์(Network, Local Storage ๋ฑ)์ ์ถ์ํํ์ฌ, Data Layer์ ๊ตฌํ๊ณผ ๋ถ๋ฆฌ๋ ํํ๋ก ์ ์ง์ํด
Presentation Layer
- UI์ ๊ด๋ จ๋ ๋ชจ๋ ์์๋ฅผ ๋ด๋นํ๋ ๋ ์ด์ด๋ก, SwiftUI + TCA ์ผ๋ก ๊ตฌ์ฑ๋จ
- View (SwiftUI): Store์์ ์ ๊ณตํ๋ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก UI๋ฅผ ๋ ๋๋งํ๋ฉฐ, ์ ์ ์ธํฐ๋์ ์ Action์ผ๋ก ๋ณํํ์ฌ Store์ ์ ๋ฌํจ
- Feature (Reducer + State + Action): ๊ฐ ํ๋ฉด์ ํ๋์ Feature๋ก ๊ตฌ์ฑํ๊ณ , Reducer์์ State์ Action์ ๊ด๋ฆฌํ๋ฉฐ ๋น์ฆ๋์ค ๋ก์ง์ UseCase์ ์์ํจ
- Navigation: TCA์ Reducer ๊ธฐ๋ฐ ๋ค๋น๊ฒ์ด์ ์ ํ์ฉํ์ฌ ํ๋ฉด ์ ํ์ ๊ด๋ฆฌํ๋ฉฐ, ๋ค๋น๊ฒ์ด์ ์ํ(Path, Stack)๋ฅผ State๋ก ์ ์งํจ
DIContainer
- DIContainer๋ ์ฑ ์ ๋ฐ์์ ๊ฐ์ฒด์ ์์ฑ๊ณผ ์์กด์ฑ ์ฃผ์ ์ ๊ด๋ฆฌํจ
- ๊ฐ ๋ ์ด์ด์ ๊ฐ์ฒด๋ค์ด ์ง์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๋์ , DIContainer๋ฅผ ํตํด ํ์ํ ์์กด์ฑ์ ์ฃผ์ ๋ฐ๋๋ก ์ค๊ณํ์ฌ ํด๋ฆฐ ์ํคํ ์ฒ์ ์์น(์์กด์ฑ ์ญ์ ์์น, DIP) ์ ๋ฐ๋ฅผ ์ ์๋๋กํจ
- Repository, UseCase, Reducer(Store) ๋ฑ๊ณผ ๊ฐ์ ํต์ฌ ๊ฐ์ฒด๋ค์ DIContainer์์ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ฉฐ, Environment ๋๋ Resolver๋ฅผ ํตํด ํ์ํ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ๋ฐ์ ์ฌ์ฉ
Design System
- ๋์์ธ๊ณผ ๊ด๋ จ๋ ํ์ผ, ์์ค๋ค์ด ๋ชจ์ฌ์๋ ๋ชจ๋
- ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ฐ๊ด ์์ด ๋์์ธ๋ง ์ ์๋์ด ์๋ ๋ชจ๋
- ๋ก๊ทธ์ธ
- ์์ ๋ก๊ทธ์ธ ์ง์ (์นดํก / ์ ํ)
- ํธ๋ ์ด๋
- ํ
- ์์ ์ถ๊ฐ ๋ฐ ์ผ์ ํ์ธ
- ์์ ๊ด๋ฆฌ
- ํผ๋๋ฐฑ
- ํธ๋ ์ด๋๊ฐ ๋ณด๋ธ ํผ๋๋ฐฑ์ ํ์ธํ๊ณ ํผ๋๋ฐฑ ์ ์ก
- ํ์ ๋ชฉ๋ก
- ํ์์ ์ฐ๊ฒฐ ๋ฐ ํด์
- ํ์ ์ด๋
- ๋ด์ ๋ณด
- ๋ก๊ทธ์์ ๋ฐ ํํด
- ๋ด์ ๋ณด ํ์ธ
- ํ
- ํธ๋ ์ด๋
- ํ
- ์์ ๊ด๋ฆฌ ๋ฐ ์ด๋ ๊ธฐ๋ก
- ์๋จ ๊ธฐ๋ก
- ๋ด์ ๋ณด
- ๋ก๊ทธ์์ ๋ฐ ํํด
- ๋ด์ ๋ณด ํ์ธ
- ํ
ํธ๋ ์ด๋ ํ | ํธ๋ ์ด๋ ํ |
๋ด์ ๋ณด |
ํธ๋ ์ด๋ ์๋จ๊ธฐ๋ก |
---|---|---|---|
![]() |
|||