의존성?

Ik·2023년 1월 18일
0

CS

목록 보기
22/27

Spring에 대해 공부하던 중 Bean과 관련해 내용을 찾아보던 중 의존성이라는 단어와 의존성 주입이라는 것을 봤고 찾아봤다





의존성이란?

  • 다른 것의 의지해 존재하는 성질을 의미
  • class가 연결되어 있는 정도라 생각한다
    • 깊이 연결될수록 사용할 객체(class) 수 증가
      • 이는 여러 class들을 알아야되고 여러 class들로부터 영향을 받을 수 있다는 것을 의미






의존성 주입(Dependency Injection)

  • 객체의 생성과 사용을 분리하는 작업
    • Class들이 의존 관계가 깊은 경우를 방지하는 목적으로 외부에서 의존성을 대신해주는 것이며 이를 인터페이스가 해준다
    • 인터페이스를 이용한 추상화 작업

  • A, B class가 존재하고 A에서 B를 사용할 때 A 내에서 B 객체를 선언해 사용하는 것은 직접적인 관계를 의미
    • B class 변화가 A class에 직접적으로 영향을 줄 수 있다

  • C라는 인터페이스를 추가해 의존성을 주입한다면 A는 C를 확장한 B를 포함한 다양한 class들을 사용할 수 있다
의존성 주입 X : A class
					B class
의존성 주입 O : A class
					B class implements C
                    D class implements C
                    E class implements C

효과

  1. class 변화에 취약하다는 단점 개선
  2. 재사용성 증가
  3. 가독성 증가
  4. 테스트하기 좋은 코드






ref

0개의 댓글