Model-View-Controller (MVC)는 객체 지향 프로그래밍에서 널리 사용되는 설계 패턴 중 하나입니다. iOS 앱 개발에 있어서도 이 패턴은 중요한 역할을 합니다. 이 포스트에서는 MVC 패턴의 기본 구성 요소와 각 요소가 어떻게 연결되는지 간단한 예제를 통해 설명해보겠습니다.
Model은 앱의 데이터와 그 데이터에 관련된 비즈니스 로직을 캡슐화합니다.
struct Person {
var name: String
var age: Int
}
View는 사용자에게 보여지는 UI 요소를 담당합니다. 사용자의 입력을 받아들이고, 모델의 데이터를 시각적으로 표현합니다.
class PersonView: UIView {
let nameLabel = UILabel()
let ageLabel = UILabel()
func update(with person: Person) {
nameLabel.text = person.name
ageLabel.text = "\(person.age)"
}
}
Controller는 사용자의 입력을 모델로 중개하고, 모델의 변경 사항을 뷰로 업데이트합니다.
class PersonViewController: UIViewController {
var person: Person? {
didSet {
guard let person = person else { return }
personView.update(with: person)
}
}
var personView: PersonView!
override func viewDidLoad() {
super.viewDidLoad()
personView = PersonView(frame: self.view.bounds)
self.view.addSubview(personView)
person = Person(name: "John", age: 25)
}
}
이러한 MVC 패턴을 사용하면 앱의 구성 요소 간의 역할이 명확해지며, 코드의 재사용성과 확장성도 향상됩니다. 앱의 로직과 UI를 분리함으로써 더 유연하고 관리하기 쉬운 코드를 작성할 수 있습니다.