[swift] Swift 구조체를 사용하는 이유는 무엇인가요?

Swift에서 구조체는 클래스와 유사한 기능을 제공하지만, 몇 가지 중요한 차이점이 있습니다. 이러한 차이점으로 인해 Swift에서 구조체를 사용하는 것이 간단하고 안전한 프로그래밍을 도와줍니다.

구조체의 장점

구조체를 사용하는 이유는 다음과 같습니다:

1. 값 타입

구조체는 값 타입(value type)으로 동작합니다. 따라서 인스턴스들 간의 상호작용이 간단하고 예측 가능합니다. 값 타입은 일반적으로 데이터를 복사하여 전달하므로 참조 타입(reference type)보다 안전합니다.

2. 상속 불가

구조체는 상속할 수 없기 때문에 코드의 복잡성을 줄일 수 있습니다. 상속에 따른 복잡성을 피하고자 할 때 구조체를 사용하는 것이 유용합니다.

3. 값 변경 불가

구조체 안에 선언된 변수를 let으로 선언하면 값이 변경되지 않도록 할 수 있습니다. 이는 불변성을 유지하고 예기치 않은 상태 변화로부터 보호해줍니다.

구조체는 이러한 이점들을 통해 코드를 더 간결하고 안전하게 작성할 수 있도록 도와줍니다.

구조체 사용 예

struct Person {
    var name: String
    var age: Int
}

var person1 = Person(name: "Alice", age: 25)
var person2 = person1 // 복사가 일어남
person2.name = "Bob"
print(person1.name) // 출력: Alice
print(person2.name) // 출력: Bob

위 예제에서 Person 구조체는 값 타입으로 동작하므로 person1person2에 할당한 후 person2.name을 변경해도 person1name 값에는 영향을 주지 않습니다.

결론

Swift에서 구조체는 값 타입이며, 상속 불가능하며, 값 변경을 제한함으로써 안전하고 간결한 코드를 작성할 수 있도록 도와줍니다. 이러한 특성으로 인해 적절한 경우에 구조체를 사용하는 것이 유용합니다.

Swift 공식 문서 - 구조체(Structures)