[iOS][Swift] Extension - 확장

Jay·2023년 8월 17일
0

iOS

목록 보기
19/47

확장(Extension)이란?

당신이 이미 구매한 스마트폰을 사용하고 있습니다. 그런데 어느 날, 스마트폰 제조사에서 새로운 기능이 담긴 '스티커'를 제공한다고 합니다. 이 스티커를 스마트폰 뒷면에 붙이면, 스마트폰이 원래 가지고 있던 기능 이외에도 새로운 기능을 사용할 수 있게 되는 것입니다.

Swift의 확장은 이런 스티커와 비슷합니다. 기존의 객체나 타입에 새로운 기능을 "붙여넣기" 하는 것이죠. 원본 객체나 타입을 수정하지 않고도, 새로운 기능을 추가할 수 있습니다.

Extension의 장점

  • 원본 코드 변경 없이 기능 추가:
    원래 제공된 코드를 수정하지 않고도 기능을 추가할 수 있습니다.
  • 코드 재사용:
    특정 기능을 여러 타입에서 사용할 수 있게 확장으로 구현하면, 코드의 중복을 줄일 수 있습니다.

예제
이미 만들어진 '사각형' 클래스를 가지고 있습니다. 이 클래스는 너비와 높이를 가지고 있죠. 이제 이 사각형의 면적을 계산하는 기능을 추가하고 싶습니다.

하지만 원본 '사각형' 클래스를 변경하고 싶지 않다면, 확장을 사용하여 새로운 기능을 추가할 수 있습니다.

class Rectangle {
    var width: Int
    var height: Int
    
    init(width: Int, height: Int) {
        self.width = width
        self.height = height
    }
}

// Rectangle에 면적을 계산하는 기능을 추가하는 확장
extension Rectangle {
    func area() -> Int {
        return width * height
    }
}

let myRectangle = Rectangle(width: 10, height: 5)
print(myRectangle.area())  // 50이 출력됩니다.

이렇게, 확장을 사용하면 기존의 '사각형' 클래스를 수정하지 않고도 면적을 계산하는 새로운 기능을 추가할 수 있습니다.

profile
Junior Developer

0개의 댓글