김동준. 2024. 8. 9. 22:12

스위프트에서 "모델(Model)" 은 MVC(모델-뷰-컨트롤러) 아키텍처에서 중요한 역할 하는 구성 요소로, 애플리케이션의 데이터와 비즈니스 로직을 관리하는 부분을 의미합니다. 모델은 사용자 인터페이스 (UI)나 애플리케이션의 표현 계층(View)와는 분리되어 있으며, 주로 데이터 저장, 데이터 처리, 비즈니스 규칙 구현에 초첨을 맞춥니다.

모델은 일반적으로 클래스나 구조체로 정의되며, 데이터 구조와 이와 관련된 로직을 포함합니다.

1. 구조체(Struct)로 정의된 모델

값 타입으로, 주로 간단한 데이터를 표현

struct User {
    var id: Int
    var name: String
    var email: String
    
    func displayName() -> String {
        return "\(name) <\(email)>"
    }
}

 

2. 클래스(Class)로 정의된 모델

참조 타입으로, 더 복잡한 데이터와 동작

class Car {
    var make: String
    var model: String
    var year: Int
    
    init(make: String, model: String, year: Int) {
        self.make = make
        self.model = model
        self.year = year
    }
    
    func carDetails() -> String {
        return "\(year) \(make) \(model)"
    }
}

3. Codable 사용하는 모델

스위프트의 'Codable' 프로토콜을 통해 모델을 쉽게 인코딩 및 디코딩할 수 있습니다.

struct Product: Codable {
    var id: Int
    var name: String
    var price: Double
}

4. Core Data 모델

스위프트에서는 Core Data를 사용하여 영속적인 데이터를 관리 가능 합니다.

import CoreData

class Employee: NSManagedObject {
    @NSManaged var id: Int32
    @NSManaged var name: String
    @NSManaged var department: String
}

 

 

스위프트에서 모델은 애플리케이션의 데이터를 관리하고 처리하는 역할을 하며, 뷰나 컨트롤러와의 분리를 통해 코드를 더 명확하고 유지보수하기 쉽게 만듭니다.