[SW] 의존과 의존성

SCY·2023년 4월 9일
0

의존성이란 모듈 간의 연결이다.
클래스 A가 다른 클래스 B를 사용할 때 A는 B에 의존한다고 한다. 때문에 B가 변화하면 A에 영향을 미친다.
위 예시에서 memberController 클래스는 memberService 클래스를 사용하기 때문에 이에 의존한다고 말할 수 있다. memberService와 memberRepository도 마찬가지이다.

즉, 한 객체의 코드에서 다른 객체를 생성하거나 다른 객체의 메서드를 호출하거나 파라미터로 다른 객체를 전달받아 사용할 때 의존성이 발생한다.

과한 의존은 모듈의 재사용과 유닛 테스트 작성을 어렵게 한다. 이러한 문제를 해결하기 위해 의존성 주입(DI)이라는 패턴을 사용할 수 있는데, 의존성 주입은 외부에서 객체 간 의존 관계를 주입해 주는 방식이다. 필요한 객체를 직접 생성하거나 찾는 방식이 아닌, 외부에서 넣어주는 방식이다.

의존성 주입을 사용하는 이유는 다음과 같다.

  1. 의존 관계는 존재하나 의존성은 줄어들기에 모듈 간 변경에 민감해지지 않는다.
  2. 재사용성이 높아진다.
  3. 유닛 테스트를 쉽게 만들어준다.
  4. 가독성이 증가한다.
profile
성장 중독 | 서버, 데이터, 정보 보안을 공부합니다.

0개의 댓글