[swift] Swift 코드 설계 패턴
Swift는 강력하면서도 유연한 언어로, 다양한 코드 설계 패턴을 구현할 수 있습니다. 이 글에서는 Swift에서 널리 사용되는 몇 가지 코드 설계 패턴을 살펴보겠습니다.
1. MVC(Model-View-Controller)
MVC는 Swift 애플리케이션을 설계하는 데 가장 널리 사용되는 패턴 중 하나입니다. 모델은 데이터와 비즈니스 로직을 담당하고, 뷰는 사용자 인터페이스를 표시하며, 컨트롤러는 모델과 뷰 간의 상호 작용을 조정합니다. 이 패턴을 사용하면 코드를 쉽게 관리하고 유지보수할 수 있습니다.
// 모델
struct User {
var name: String
var age: Int
}
// 뷰
class UserProfileView {
func displayUserInfo(name: String, age: Int) {
// 유저 정보를 화면에 표시
}
}
// 컨트롤러
class UserProfileController {
let user: User
let view: UserProfileView
init(user: User, view: UserProfileView) {
self.user = user
self.view = view
}
func loadUserInfo() {
view.displayUserInfo(name: user.name, age: user.age)
}
}
2. Singleton
싱글톤은 애플리케이션 내에서 오직 하나의 인스턴스만을 갖는 객체를 생성하는 패턴입니다. 이를 통해 전역적인 상태와 설정을 접근하고, 관리할 수 있습니다.
class SettingsManager {
static let shared = SettingsManager()
private init() { }
func updateSettings() {
// 설정 업데이트 로직
}
}
3. Delegate
델리게이트는 객체 간의 상호 작용을 위해 사용되는 패턴으로, 객체가 특정 이벤트 발생 시 다른 객체에 대한 콜백을 호출할 수 있습니다.
protocol DataUpdaterDelegate: AnyObject {
func didUpdateData()
}
class DataManager {
weak var delegate: DataUpdaterDelegate?
func fetchData() {
// 데이터를 가져오고 업데이트
delegate?.didUpdateData()
}
}
class ViewController: DataUpdaterDelegate {
let dataManager = DataManager()
init() {
dataManager.delegate = self
}
func didUpdateData() {
// 데이터 업데이트 후 UI 업데이트 로직
}
}
Swift에서는 이러한 코드 설계 패턴을 적용하여 읽기 쉽고 유지보수가 용이한 애플리케이션을 구축할 수 있습니다. 고유한 요구 사항과 프로젝트에 가장 적합한 패턴을 선택하여 사용하는 것이 중요합니다.