Tech/iOS

[Swift] Class와 Struct 중에 뭘 쓸까?

프밸 2016. 10. 28. 11:20
Objective-C 시절부터 immutable 사용이 강조되어 왔습니다. 변하지 않는 값의 사용이 증가할수록 에러 확률이 줄고 컴파일러 또한 보다 적극적으로 최적화할 수 있기 때문입니다. class는 reference type이고 struct는 value type입니다. 가능하다면 mutability control 측면에서 struct를 사용하는 것이 권장됩니다.

애플 문서에서는 다음과 같을 때 struct를 쓰라고 권장하고 있습니다. 

  • 관련있는 간단한 데이터를 encapsulation
  • 값이 reference 되지 않고 copy되는 것이 더 타당한 경우
  • struct에 저장된 property들 역시 value type인 것이 자연스러움
  • 기존의 type에서 상속될 필요가 없는 경우