[swift] 익스텐션 활용하기

익스텐션은 스위프트(Swift)에서 기존 클래스, 구조체, 열거형 또는 프로토콜에 새로운 기능을 추가하는 기능입니다. 이를 통해 기존 코드를 수정하지 않고도 새로운 기능을 추가하거나 재사용할 수 있습니다. 이번 블로그에서는 익스텐션을 어떻게 활용하는지 알아보겠습니다.

익스텐션을 사용하는 이유

익스텐션을 사용하면 기존의 코드를 변경하지 않고도 새로운 기능을 추가할 수 있습니다. 또한, 외부 라이브러리에 속한 클래스나 구조체에 새로운 기능을 추가하는 것이 가능합니다.

익스텐션의 활용

기존 타입에 새로운 기능 추가하기

아래의 예시는 Int 타입에 새로운 기능을 추가하는 익스텐션의 활용을 보여줍니다.

extension Int {
    func squared() -> Int {
        return self * self
    }
}

위의 코드를 보면, Int 타입에 squared() 메서드를 추가하여 해당 숫자를 제곱하는 기능을 제공하고 있습니다.

프로토콜 적용하기

익스텐션을 사용하여 프로토콜을 채택한 기존 타입에 프로토콜의 요구사항을 구현할 수 있습니다.

protocol CustomStringConvertible {
    var description: String { get }
}

extension Int: CustomStringConvertible {
    var description: String {
        return "Number: \(self)"
    }
}

위의 예시는 Int 타입에 CustomStringConvertible 프로토콜을 적용하여 해당 타입의 description을 구현하고 있습니다.

결론

익스텐션은 Swift에서 기존 타입에 새로운 기능을 추가하는 강력한 기능으로, 코드의 가독성과 유지보수성을 향상시키는 데에 도움을 줍니다. 이를 통해 기존 코드를 변경하지 않고도 원하는 기능을 추가할 수 있으며, 프로토콜을 활용하여 타입에 요구되는 기능을 쉽게 적용할 수 있습니다.