패스잇
모바일 개발 · 기초

Swift의 `Extension`이 무엇이며, 기존 클래스, 구조체, 열거형 또는 프로토콜에 어떤 기능을 추가할 수 있는지 설명해주세요.

힌트 · `Extension`은 기존 타입에 새로운 기능을 추가할 수 있게 해주지만, 저장 프로퍼티는 추가할 수 없습니다. 메서드, 계산 프로퍼티, 이니셜라이저 등을 추가할 수 있습니다.

기존 타입 확장기능 추가연산 프로퍼티메서드 추가이니셜라이저

모범답안

Swift의 Extension은 기존에 존재하는 클래스, 구조체, 열거형, 또는 프로토콜에 새로운 기능을 추가할 수 있는 기능입니다. 쉽게 말해, 이미 정의된 타입에 코드를 수정하지 않고도 기능을 확장할 수 있게 해줍니다.

Extension을 통해 추가할 수 있는 기능으로는 메서드, 계산 프로퍼티, 새로운 이니셜라이저, 서브스크립트, 그리고 특정 프로토콜을 준수하도록 하는 기능 등이 있습니다.

다만, Extension으로는 저장 프로퍼티를 추가할 수는 없습니다. 기존 타입의 메모리 구조를 변경하는 것은 불가능하기 때문입니다. 예를 들어, String 타입에 문자열의 길이를 반환하는 계산 프로퍼티를 추가하거나, 특정 포맷으로 날짜를 출력하는 메서드를 추가하는 데 사용할 수 있습니다.

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

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

함께 보는 iOS / Swift 면접 질문

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