🔥 소개

178자
3분

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

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

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

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

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

YouTube 영상

채널 보기
벡터의 정의와 덧셈 연산 | 선형대수학
AI는 데이터를 어떻게 분류할까? 벡터의 거리와 KNN 알고리즘 | 선형대수학
마지막편, 트라이 노드를 50% 이상 줄이는 방법? 압축 트라이 성능 분석 | Trie 자료구조 이야기
투영과 예측, 그리고 선형 결합 | 선형대수학
우리가 매일 쓰는 맞춤법 검사기와 라우터 속에 숨겨진 알고리즘은? | Trie 자료구조 이야기
숫자 하나가 AI 모델의 운명을 바꾼다? | 선형대수학
내적의 기하학적 의미와 코사인 유사도 원리 | 선형대수학
AI는 왜 수백 차원의 벡터를 사용할까? 고차원 공간과 행렬 | 선형대수학