[iOS] Dependency Injection, 의존성 주입

Zoe·2023년 12월 12일
0

iOS

목록 보기
31/39

의존성이란?
객체 지향 프로그래밍에서 Dependency, 의존성은 서로 다른 객체 사이에 의존 관계가 있다는 것을 말한다. 즉, 의존하는 객체가 수정되면, 다른 객체도 영향을 받는다는 것이다.

struct Eat {
    func coffee() {
        print("라떼")
    }

    func meal() {
        print("샌드위치")
    }
}

struct Person {
    var todayEat: Eat
    
    func coffee() {
        todayEat.coffee()
    }
    
    func meal() {
        todayEat.meal()
    }
}

Person객체는 Eat객체를 인스턴스로 사용하고 있으므로, Eat객체에 의존성이 생긴다.
만약 이때, Eat 객체에 중요한 수정이나 오류가 발생한다면, Person 객체도 영향을 받을 수 있다.

의존성을 가지는 코드가 많아진다면, 재활용성이 떨어지고 매번 의존성을 가지는 객체들을 함께 수정해 주어야 한다는 문제가 발생한다.

이러한 의존성을 해결하기 위해 나온 개념이 바로 Dependency Injection, 의존성 주입이다.

의존성 주입이란?
Injection, 주입은 외부에서 객체를 생성해서 넣는 것을 의미한다.

생성자 등을 활용해서 외부에서 주입하여, 의존성을 주입할 수 있다.

의존성 주입을 통해
Unit Test가 용이해진다.
코드의 재활용성을 높여준다.
객체 간의 의존성(종속성)을 줄이거나 없앨 수 있다.
객체 간의 결합도이 낮추면서 유연한 코드를 작성할 수 있다.

profile
iOS 개발자😺

0개의 댓글

관련 채용 정보