[swift] Swift 구조체와 클래스의 차이점은 무엇인가요?
  1. 상속: 클래스는 다른 클래스로부터 상속을 받을 수 있지만, 구조체는 상속을 지원하지 않습니다.

  2. 값 타입 vs 참조 타입: 구조체는 값 타입이며, 클래스는 참조 타입입니다. 값 타입은 데이터를 복사하여 전달하고 참조 타입은 데이터에 대한 참조를 전달합니다.

  3. 메모리 관리: 클래스는 참조 타입이기 때문에 메모리 관리가 필요하며, ARC(자동 참조 계산)에 따라 메모리가 관리됩니다. 반면 구조체는 값 타입이므로 메모리에서 복사된 후 사용이 끝나면 자동으로 해제됩니다.

  4. Immutable vs Mutable: 클래스의 인스턴스는 변경 가능(mutatble)하지만, 구조체의 인스턴스는 변경 불가능(immutable)하다면, 인스턴스가 let으로 선언되었을 경우 값을 변경할 수 없습니다.

따라서, 구조체는 간단한 데이터 모델링이나 값 타입을 다룰 때 유용하고, 클래스는 복잡한 상속 구조나 참조 타입이 필요한 경우에 사용됩니다.

구조체와 클래스 차이점 더 알아보기