애플이 구조체를 사용하는 이유

Uno·2021년 4월 11일
0

많은 언어들(C, C++, java, Ruby, 등등)에서는 특정 타입을 만들기 위해서 class를 많이 사용합니다. 근데 스위프트에서는 구조체를 사용할 것입니다.

Q. 왜 스위프트만 구조체인가요?
A. 결론먼저 말씀드리면 스위프트는 구조체를 아주 강력하게(많은 기능을 가지고있음)만들었기 때문입니다. 그리고 구조체만의 장점을 활용하고 싶기 때문입니다.

구조체는 벨류타입(value type, 값 기반의 타입) 입니다. 그래서 다음과 같은 장점을 가질 수 있습니다.

1. 객체가 공유가 아닌 복사이므로 객체는 단 하나입니다.
2. 위 속성으로 인해 코드를 분리시킬 수 있습니다. 분리된다는 것은 코드 중 다른 부분이 영향을 받지 않습니다. 이는 안정성으로 이어집니다.

또한 스위프트만 가지는 추가기능들이 있습니다.

1. 맴버와이즈 초기화메소드 커스텀 초기화메소드 구현가능
2. 내부에 메소드 구현 가능
3. 프로토콜을 구현 가능

위 설명은 차근차근해나가겠습니다. 처음 보시는 입장에서는 무슨말인가 싶겠지만, iOS 개발을 하다보면 관련 기능들을 상당히 자주 다룰 일이 있기에 익숙하실 수도 있습니다. 만약 스위프트 공부를 이제시작하고 아직 구현에 대해서 잘 모르신다면, 관련 내용을 보기보다는 먼저 “경험”인 “구현”을 해보고 다시 읽는 것을 추천드립니다!그래야 재밌게 공부할 수 있더라구요^^

profile
iOS & Flutter

0개의 댓글