🔥 소개

178자
3분

Swift에서는 Extension이라는 강력한 기능을 제공합니다. Extension을 사용하면 기존 클래스, 구조체, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있죠. 심지어 여러분이 직접 소스 코드에 접근할 수 없는 타입들도 확장할 수 있답니다. 이를 retroactive modeling이라고 부릅니다. 이는 마치 Objective-C의 category와 유사하지만, Swift의 extension은 이름이 없다는 점이 다릅니다.

Swift의 extension을 통해 할 수 있는 일은 정말 다양해요:

  • 계산된 인스턴스 속성과 타입 속성을 추가할 수 있습니다.
  • 인스턴스 메서드와 타입 메서드를 정의할 수 있죠.
  • 새로운 이니셜라이저를 제공할 수도 있고요.
  • 서브스크립트를 정의하는 것도 가능합니다.
  • 새로운 중첩 타입을 정의하고 사용할 수 있습니다.
  • 기존 타입이 특정 프로토콜을 준수하도록 할 수도 있죠.

놀랍게도 Swift에서는 프로토콜조차도 extension을 통해 요구사항의 기본 구현을 제공하거나, 프로토콜을 채택한 타입들이 활용할 수 있는 추가적인 기능을 제공할 수 있습니다. 자세한 내용은 Protocol Extensions 섹션을 참고해 주세요.

Extension은 Swift 언어의 확장성을 극대화하는 매우 강력한 도구입니다. 우리는 extension을 통해 기존 코드를 수정하지 않고도 원하는 기능을 유연하게 추가할 수 있게 됩니다. 이는 코드의 재사용성을 높이고, 모듈화된 구조를 만드는데 크게 기여하죠. Extension이 제공하는 다양한 기능들을 잘 활용한다면 더욱 간결하고 표현력 있는 코드를 작성할 수 있을 거예요. 지금부터 extension의 세계로 빠져보시죠!