[swift] 데이터 타입을 이용한 다른 모듈의 연동

Swift는 강력한 타입 시스템을 갖고 있어 다른 모듈과의 데이터 타입 연동을 쉽게 할 수 있습니다. 이를 통해 서로 다른 모듈 간에 데이터를 주고받거나 공유할 수 있습니다. 이 글에서는 Swift를 사용하여 다른 모듈과의 데이터 타입 연동을 어떻게 할 수 있는지 살펴보겠습니다.

1. 모듈간 데이터 타입 공유

여러 모듈 사이에서 데이터 타입을 공유하기 위해서는 public 접근 제어자를 사용하여 타입을 선언해야 합니다. public 키워드를 사용하여 타입을 선언하면 다른 모듈에서도 해당 타입에 접근할 수 있습니다.

// 모듈 A에서 공유할 데이터 타입
public struct Person {
    public var name: String
    public var age: Int
}

위의 예제에서 Person 구조체는 public으로 선언되어 있으므로, 다른 모듈에서도 이 구조체에 접근할 수 있습니다.

2. 다른 모듈의 데이터 타입 사용

다른 모듈에서 선언된 데이터 타입을 사용하려면 해당 모듈을 import하여 해당 타입에 접근할 수 있도록 해야 합니다.

import ModuleA

func printPerson(person: Person) {
    print("이름: \(person.name), 나이: \(person.age)")
}

위의 예제에서 import ModuleA를 통해 ModuleA 모듈을 임포트하고, Person 타입을 사용하여 printPerson 함수를 정의하였습니다. 이제 다른 모듈에서 printPerson 함수를 호출하여 Person 타입의 데이터를 출력할 수 있습니다.

3. 타입 변환

때로는 다른 모듈에서 가져온 데이터를 자신의 모듈에서 사용하기 위해 타입을 변환해야 할 수도 있습니다. Swift에서는 타입 변환을 위해 타입 캐스팅 연산자를 사용할 수 있습니다.

import ModuleA

let person: AnyObject = Person(name: "John Doe", age: 30)

if let person = person as? Person {
    printPerson(person: person)
}

위의 예제에서 person 변수는 AnyObject 타입으로 선언되어 있습니다. 그럼에도 불구하고, as? 연산자를 사용하여 person 변수가 Person 타입인지 체크한 후, 옵셔널 바인딩을 통해 타입 변환을 수행합니다. 이제 person 변수는 Person 타입으로 변환되었으므로, 이를 printPerson 함수로 전달하여 출력할 수 있습니다.

4. 결론

Swift를 사용하여 다른 모듈과의 데이터 타입 연동은 간단하고 효율적입니다. public 접근 제어자를 사용하여 타입을 공유하고, import 키워드를 사용하여 다른 모듈의 타입에 접근할 수 있습니다. 또한, 타입 변환을 위해 타입 캐스팅 연산자를 사용할 수 있습니다. 이를 통해 다른 모듈과의 데이터 타입 연동을 원활하게 수행할 수 있습니다.


참고자료: