[swift] Swift MVVM 아키텍처의 실제 적용 사례
MVVM(Modeled-View-ViewModel)은 iOS 애플리케이션을 개발할 때 사용되는 아키텍처 패턴 중 하나입니다. MVVM은 코드의 재사용성과 유지 관리성을 향상시키는데 도움이 되며, 개발자들이 애플리케이션의 동작과 UI를 분리해 구성할 수 있도록 지원합니다.
이번 글에서는 Swift 언어를 사용하여 MVVM 아키텍처를 실제로 적용한 사례를 살펴보겠습니다.
Model
첫 번째로, 모델은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 이 예시에서는 사용자 정보를 담은 User 모델을 정의해보겠습니다.
struct User {
let name: String
let age: Int
}
View
뷰는 사용자에게 보여질 UI를 구성하는 역할을 합니다. 이 예시에서는 사용자 이름과 나이를 보여주는 뷰를 구현해보겠습니다.
class UserView: UIView {
@IBOutlet private var nameLabel: UILabel!
@IBOutlet private var ageLabel: UILabel!
func configure(with user: User) {
nameLabel.text = user.name
ageLabel.text = String(user.age)
}
}
ViewModel
뷰모델은 뷰와 모델 간의 중간 매개체로서 사용됩니다. 뷰모델은 모델의 데이터를 가공하여 뷰에게 제공하고, 뷰에서 발생하는 이벤트를 처리합니다.
class UserViewModel {
private let user: User
init(user: User) {
self.user = user
}
var name: String {
return user.name
}
var age: String {
return String(user.age)
}
}
View와 ViewModel 연결
마지막으로, 뷰와 뷰모델을 연결하고 데이터를 전달하는 과정입니다. 이 예시에서는 UIViewController를 사용하여 뷰와 뷰모델을 연결합니다.
class UserViewController: UIViewController {
@IBOutlet private var userView: UserView!
private var userViewModel: UserViewModel!
override func viewDidLoad() {
super.viewDidLoad()
let user = User(name: "John Doe", age: 25)
userViewModel = UserViewModel(user: user)
userView.configure(with: userViewModel)
}
}
위의 예시에서 뷰모델은 뷰에 필요한 정보를 제공하는 역할을 합니다. 뷰는 뷰모델의 데이터에 바인딩하여 동적으로 업데이트될 수 있습니다.
결론
MVVM 아키텍처는 Swift를 사용한 iOS 애플리케이션 개발에 유용한 패턴입니다. 이 예시를 통해 실제로 MVVM 아키텍처를 적용하는 과정을 살펴보았습니다. MVVM은 코드의 재사용성과 유지 관리성을 향상시켜 개발자들이 더 효과적으로 애플리케이션을 개발할 수 있도록 도와줍니다.