프로퍼티 기본값 , 이니셜라이저 주입 비교

AsherKim·2023년 11월 24일

[Swift] 문법 정리

목록 보기
3/3

프로퍼티 기본값, 이니셜라이저 주입 비교

프로퍼티 기본값을 활용하는 것과 이니셜라이저를 활용하여 초기값을 주입하는 것은 Swift에서 초기화 관련된 두 가지 다른 방법이다. 각각의 방법에는 장단점이 있으며, 상황에 따라 선택할 수 있다.

1. 프로퍼티 기본값 활용

프로퍼티에 기본값을 설정하는 방식은 다음과 같다:

class Cat {
    var age: Int = 4
}

장점:

  • 코드가 간결하고 읽기 쉽다.
  • 모든 인스턴스가 같은 초기값을 가지며, 이 값은 수정 가능하다.

단점:

  • 모든 인스턴스가 동일한 초기값을 갖게 되기 때문에 특정 인스턴스에 대해 다른 초기값이 필요한 경우에는 부적절하다.
  • 기본값을 변경하려면 해당 프로퍼티를 수정해야 하며, 이는 후에 생성하는 모든 인스턴스에 영향을 미친다.

2. 이니셜라이저를 활용하여 초기값 주입

이니셜라이저를 사용하여 초기값을 주입하는 방식은 다음과 같다:

class Cat {
    var age: Int

    init(initialValue: Int) {
        self.age = initialValue
    }
}

장점:

  • 각 인스턴스마다 다른 초기값을 설정할 수 있다.
  • 이니셜라이저를 통해 초기화 로직을 추가할 수 있다

단점:

  • 코드가 다소 번거로울 수 있다.
  • 이니셜라이저를 정의하고 호출하는 과정이 필요하므로 일부 상황에서는 불필요한 코드가 될 수 있다.

어떤 방식을 선택할 것인가?

  1. 일관성과 기본값 변경 가능성:
    • 만약 대부분의 인스턴스가 동일한 초기값을 가져야 하고, 이 값이 변경될 가능성이 낮다면 프로퍼티 기본값을 사용하는 것이 적절할 수 있다.
    • 변경 가능성이 있거나 각 인스턴스가 다른 초기값을 가져야 할 경우에는 이니셜라이저를 사용하는 것이 좋다.
  2. 코드의 가독성과 유지보수성:
    • 코드의 가독성이나 유지보수성을 중요시하는 경우, 초기화 로직이 복잡하지 않다면 프로퍼티 기본값이나 간단한 이니셜라이저를 사용하는 것이 바람직하다.
    • 그러나 초기화 로직이 복잡하고 다양한 옵션을 고려해야 하는 경우, 이니셜라이저를 사용하여 초기화 로직을 명시적으로 관리하는 것이 유용할 수 있다.

최종적으로 선택은 상황에 따라 다르며, 코드의 요구 사항과 가독성을 고려하여 결정하는 것이 중요하다.

profile
떠오르는 개발자

0개의 댓글