개발하는 동글 :]

[TIL],[구조체(Struct)에 대해서 설명해주세요. 어떤 경우 사용하나요?],[구조체(Struct)의 mutating 키워드에 대해서 설명해주세요. ] 본문

카테고리 없음

[TIL],[구조체(Struct)에 대해서 설명해주세요. 어떤 경우 사용하나요?],[구조체(Struct)의 mutating 키워드에 대해서 설명해주세요. ]

동글하다 2023. 10. 25. 14:42

1. 구조체(Struct)에 대해서 설명해 주세요. 어떤 경우 사용하나요?

구조체란 프로퍼티를 저장하거나 메서드를 제공하고 이를 캡슐화할 수 있는 스위프트가 제공하는 타입입니다. 구조체의 특징은 값타입이며 상속이 불가능하고 타입캐스팅이 되지 않습니다. 이러한 구조체를 사용하는 경우로는 연관된 간단한 값의 집합을 캡슐화 하는 것만이 목적일 때 캡슐화된 값이 참조되는 것보다 복사되는 것이 합당할 때 구조체에 저장된 프로퍼티가 값 타입이며 참조되는 것보다 복사되는 것이 합당할 때 다른 타입으로부터 상속받거나 자신이 상속될 필요가 없을 때입니다. 지금 진행 중인 FinalTodo 프로젝트의 예시로는 간단한 UserData 및 FolderData 등 간단한 커스텀 타입을 정의할 때 이니셜라이저가 자동으로 생성되어 공수를 줄이는 이점도 챙길 수 있으며 참조 및 상속이 필요 없는 service 및 manager들을 구조체로 정의하여 시스템 리소스를 줄이며 원본의 데이터의 원치 않는 변경도 막을 수 있다는 이점도 챙길 수 있습니다.

2. 구조체(Struct)의 mutating 키워드에 대해서 설명해주세요.

값 타입(구조체/열거형)의 인스턴스 메서드에서 인스턴스 고유의 (저장) 속성을 수정할 수 없다 그럴 때 mutating 키워드를 이용하면 속성을 변경할 수 있다. 그리고 속성을 변경하기 때문에 구조체의 인스턴스에서만 해당 메서드가 호출되도록 허용합니다.