728x90
반응형
안녕하세요 이웃님들~ 제가 어제는 자기소개서랑 이것저것 할 게 많아서 게시글을 쓰지를 못했습니당 ㅎㅎ

그래서 오늘은 많이 써보려고 해요!! 최근에 비가 오고 나서 바람이 조금 쌀쌀해진 것 같죠? 다들 이런 환절기에는
감기 꼭 조심하시고!! 저도 공부하러 다니느라 오는 길에는 땀을 뻘뻘~ 공부하는 카페에서는 에어컨이 빵빵...
이러다가 냉방병 걸리겠구나.. 했어요 ㅠㅠ
오늘은 Struct와 Class에 대해 비교를 해볼건데요! 잘 따라오실 수 있겠죠!?
- Struct(구조)와 Class(클래스) -
스위프트에서 Struct와 Class는 공통점이 많은데요! 구조와 클래스 둘 다 이러한 기능을 할 수 있습니다.
- 값을 저장하기 위한 프로퍼티 정의
- 기능을 제공하기 위한 메소드 정의
- subscript 문법을 이용해 특정 값을 접근할 수 있는 subscript 정의
- 초기 상태를 설정할 수 있는 initializer 정의
- 기본 구현에서 기능 확장
- 특정한 종류의 표준 기능을 제공하기 위한 프로토콜 순응(conform)
Class (클래스) - 참조 타입.
- 상속 (Inheritance) : 클래스의 여러 속성을 다른 클래스에 물려줌 (메모리만 복사)
- 타입 캐스팅 (Type casting) : 런타임에 클래스 인스턴스의 타입을 확인
- 소멸자 (Deinitializers) : 할당된 자원을 해제(free up) 시킴
- 참조 카운트 (Reference counting) : 클래스 인스턴스에 하나 이상의 참조가 가능
Struct (구조체) - 값 타입
- 구조체 변수를 새로운 변수에 할당할 때마다 새로운 구조체가 할당됩니다.
- 즉 같은 구조체를 여러 개의 변수에 할당한 뒤 값을 변경시키더라도 다른 변수에 영향을 주지 않습니다. (값 자체를 복사)
가장 기억하셔야 할 것은 클래스는 참조 타입! 구조체는 값 타입이라는 거~~ 잊지마세용!
즉, 값 타입이라는 뜻은, 이것이 함수에서 상수나 변수에 전달될 때 그 값이 복사되서 전달된다는 의미입니다!
참조 타입은 변수나 상수에 값을 할당을 하거나 함수에 인자로 전달할 때 그 값이 복사되지 않고 참조됩니다.
참조된다는 의미는 그 값을 갖고 있는 메모리를 바라보고 있다는 뜻입니다!!
* 일반적으로 다음 4가지 중 1가지라도 만족한다면 Struct를 쓰면 됩니다.
- 구조체의 주 목적이 관계된 간단한 값을 캡슐화(encapsulate) 하기 위한 것인 경우.
- 구조체의 인스턴스가 참조되기 보다 복사되기를 기대하는 경우.
- 구조체에 의해 저장된 어떠한 프로퍼티가 참조되기 보다 복사되기를 기대하는 경우.
- 구조체가 프로퍼티나 메소드 등을 상속할 필요가 없는 경우.
위 4가지 경우를 제외한 다른 경우에는 Struct가 아닌 Class를 사용하시면 됩니다!
오늘은 간단하게 Struct와 Class에 대해 알아보았는데요. 제가 생각하기엔 가장 중요한 구문이 아닌가 생각이 듭니다!
개발자가 코딩할 때 Struct와 Class의 차이를 알고 적절하게 사용한다면 이보다 좋은 성능개선이 없을거라 믿습니다!!

오늘 포스팅은 간단하게 여기서 마치고~ 다음에 또 돌아오겠습니다!
오늘도 개발하는 윤기사는 열심히 코딩공부를 하겠습니다!!
728x90
반응형
'Swift 기초 문법 👊' 카테고리의 다른 글
[Swift_문법] Methods에 대해 한번 알아보는 윤기사_8 (1) | 2022.05.31 |
---|---|
[Swift_문법] Closure에 대해 진지하게 알아보는 윤기사_7 (2) | 2022.05.30 |
[Swift_문법] Control Flow(제어 흐름)에 대해 깊게 알아보는 윤기사_5 (94) | 2022.05.25 |
[Swift_문법] enum에 대해 차근차근 알아보는 윤기사_4 (62) | 2022.05.24 |
[Swift_문법] 문자열과 문자에 대해 야무지게 알아보는 윤기사_3 (2) | 2022.05.24 |