패스잇
모바일 개발 · 기초

Swift에서 `Struct`와 `Class`의 주요 차이점은 무엇인가요? 값 타입(Value Type)과 참조 타입(Reference Type)의 관점에서 설명해주세요.

힌트 · `Struct`는 값 타입으로 복사 시 새로운 인스턴스가 생성되고, `Class`는 참조 타입으로 참조를 공유합니다. 상속은 `Class`만 가능합니다.

값 타입참조 타입스택 메모리힙 메모리상속

모범답안

네, Swift에서 Struct와 Class의 가장 큰 차이점은 값 타입이냐 참조 타입이냐에 있습니다.

Struct는 값 타입이기 때문에 변수에 할당하거나 함수에 전달할 때마다 실제 값이 복사됩니다. 즉, 복사본을 변경해도 원본에는 영향을 주지 않습니다. 값 타입 데이터는 주로 스택 메모리에 저장됩니다.

반면 Class는 참조 타입입니다. 변수에 할당하거나 함수에 전달할 때 실제 값이 복사되는 것이 아니라 값의 주소, 즉 참조가 복사됩니다. 따라서 여러 변수가 하나의 인스턴스를 참조할 수 있고, 참조를 통해 인스턴스를 변경하면 모든 참조에서 변경된 내용이 반영됩니다. 참조 타입 데이터는 힙 메모리에 저장됩니다.

또 다른 중요한 차이점은 Class는 상속을 지원하지만, Struct는 상속을 지원하지 않는다는 점입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 iOS / Swift 면접 질문

← iOS / Swift 면접 질문 전체 보기