Jiwift

[iOS/Swift] 프로젝트 폴더 구조 구성 본문

iOS Dev/iOS

[iOS/Swift] 프로젝트 폴더 구조 구성

지위프트 2024. 4. 21. 00:06
반응형

프로젝트 구성

 시작한 프로젝트에 참여하게 되면 그 틀을 이어서 가면 좋겠지만, 새로 프로젝트를 구성하다 보면 폴더 구조를 어떻게 잡아나갈지 고민을 많이 하게 되는 것 같습니다. 

 

 저는 그래서 초반에는 프로젝트를 진행하면서도 구조를 많이 변경했었습니다. 근데 개인 프로젝트를 계속 하다보니 어느 정도 제 손에 맞는 구조를 찾게 되었고 지금은 아래와 같이 사용하고 있습니다. 

 

 처음에는 화면별로 구성요소들을 모아서 작업을했었는데, 공통적으로 사용하는 애들이 생기면서 그것을 또 따로 묶게 되고 하다가 각 Class 별로 크게 나누고 그 안에서 세부적으로 더 나누는 것을 선택하였습니다. 

 

 더 좋은 구조가 있을거라고 생각하지만 프로젝트를 진행하면서도 계속 변경되기도 할 것이고, 많이 나누는 것이, 적게 나누는 것이 어떤 것이 좋은지는 프로젝트마다 다르다고 생각이 듭니다. 

 

 하지만 제가 예전에 공부를 처음할 때 이런 구조부터 너무 고민을 했던 것이 생각나서 참고하시면 좋겠다 생각이 들어 공유합니다.

MyProject/
├── Application/
│   ├── AppDelegate.swift
│   └── SceeneDelegate.swift
├── Realm/
│   ├── ARealmv.swift
│   └── BRealm.swift
├── View/
│   ├── Base/
│   │   └── BaseVc.swift
│   └── Tab/
│       ├── HomeVc.swift
│       └── MoreVc.swift
├── ViewModel/
│   ├── AViewModel.swift
│   └── BViewModel.swift
├── Custom/
│   ├── UIView/
│   │   └── LoadingView.swift
│   ├── UIButton/
│   │   ├── PrimaryButton.swift
│   │   └── SecondaryButton.swift
│   └── UITableViewCell/
│       ├── ATableViewCell.swift
│       └── BTableViewCell.swift
├── Enum/
│   ├── TabType.swift
│   └── ErrorType.swift
├── Protocol/
│   └── AViewProtocol.swift
├── Extension/
│   ├── String+Ext.swift
│   └── CALayer+Ext.swift
├── UserDefaults/
│   └── AppSettingUserDefault.swift
├── Resource/
│   ├── Assets
│   ├── Fonts/
│   │   ├── AFont
│   │   └── BFont
│   └── LaunchScreen.storyboard
├── Other/
├── info.plist
└── GoogleService-Info.plist
반응형