안녕하세요 rOar입니다. 😀
오늘은 구조체 / 클래스 의 속성중 저장 타입 속성에 대해 알아보려고 합니다.
처음 공부할때 정말 머리가 아픈 단원중 하나였어요..
저장속성, 계산속성, 지연저장속성, 저장 타입속성, 계산 타입속성, 속성 감시자 어우...
이게 머고...?
처음엔 그렇구나.. 어떤 상황에 쓰는거지?? 하면서 잘 와닿지 않았는데요!
앱을 만들다 보니까 하나씩 정리가 되더라구요 ㅎㅎ
그럼 저장 타입 속성에 대해 알아보겠습니다!
우선 저장 타입 속성이 무엇인지 알기 전에
구조체나 클래스에서 일반적인 저장속성을 사용을 할때와의 차이점을 알아야겠죠?!

저장 속성(Stored Properties)이란?
값이 저장되는 일반적인 속성(변수)를 저장 속성이라고 합니다.
클래스 / 구조체의 틀에서 찍어낸 각 인스턴스가 가지는 고유의 데이터 저장 공간이죠.
그렇다면 타입 저장 속성이 왜 필요한가??에 대해 알아보겠습니다.
타입 저장 속성(Stored Type Properties)이란?
주로 모든 인스턴스가 동일하게 가져야하는 보편적인 속성이거나,
공유해야하는 성격에 가까운 저장속성을 저장 타입 속성으로 선언합니다.

static 키워드를 사용하여 위와같이 선언하여 주시면 되는데요.
자체적으로 지연 속성의 성격을 가지므로, 호출시 메모리에 할당됩니다.(Thread-safe)
let / var 로 둘다 선언이 가능하지만, 주의하셔야 할 점은
클래스의 경우 상속시 재정의가 불가하다는 점 입니다.(메서드만 상속이 가능함)
또한, 항상 기본값을 필요로 합니다.
(자체적으로 지연 저장 속성의 성격을 가지고, 생성자가 따로 없기 때문에⭐️)
이렇게 글로만 봐서는 이해가 잘 안되실 수 있는데요!
앱을 만드시다 보면 애플이 구현해 놓은 클래스 / 구조체를 사용하시다 보면,
타입()식의 인스턴스를 생성하지 않고, 타입.~~ 식의 접근을 하게 되는 경우가 많으실 거에요.
보통 타입 메서드로 선언 되어있거나, 타입 저장 속성, 타입 계산 속성 등이 많습니다!(열거형 일수도 있어요🤣)
class let, static let 등..
class와 static의 차이를 간단하게 말씀드리자면, 상속시 재정의가 가능한지 불가능한지의 차이점 입니다.
일반적으로는 메서드의 역할을 하게되는 프로퍼티에만 class로 타입 속성을 구현할 수 있습니다.!
다음에 포스팅 하게 될 계산 속성과 타입 계산 속성 등을 알게 되시면 이해가 조금 더 쉬우실 것 같아요
이상으로 오늘은 타입 저장 속성에 관하여 알아보았습니다.
벌써 새싹도 3주차가 끝나가는데, 점점 성장을 해가고 있는 느낌적인 느낌이네요.
물론 아직 코생아라서 삽질을 많이 하긴 하는거 같아요 ㅎㅎ.
자꾸 파고들다가 동굴이라도 뚫을기세...
날씨도 오락가락 덥고 비오는데, 모두 화이팅 하시고 즐코딩 하세요!!🔥
'iOS > Swift' 카테고리의 다른 글
| 클로저(Closure) 이름없는 무서운녀석. (0) | 2022.08.09 |
|---|---|
| 클래스(Class)와 구조체(Struct) (0) | 2022.08.02 |
| 열거형(Enumeration)에 대해 알아보자! (0) | 2022.08.02 |
| Swift Collection에 대해 알아보자!! (0) | 2022.07.12 |
| 1. 변수(Variables)와 상수(Constants) 그리고 Swift 데이터 타입(Data Types) (0) | 2022.07.05 |