HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/
Spring
Spring
/
🎧
Spring Framework 핵심개념(Core)
/
🧹
의존성과 결합도
🧹

의존성과 결합도

의존성

  • 어떤 객체가 협력하기 위해 다른 객체를 필요로 할 때 두 객체 사이의 의존성이 존재하게 된다.
  • 의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가진다. (출처: 오브젝트, 조영호)
    • 컴파일타임 의존성: 코드를 작성하는 시점에서 발생하는 의존성. 클래스 사이의 의존성.
    • 런타임 의존성: 애플리케이션이 실행되는 시점의 의존성. 객체 사이의 의존성.
notion image
public class Order{ private FixedAmountVoucher voucher; public Order(long discount){ voucher = new FixedAmountVoucher(discount); }

결합도

  • 결합도란 “하나의 객체가 변경이 일어날 때에 관계를 맺고 있는 다른 객체에게 변화를 요구하는 정도"라고 볼 수 있습니다.
  • 어떤 두 요소 사이에 존재하는 의존성이 바람직할 때 두 요소가 느슨한 결합도 또는 약한 결합도를 가진다고 말합니다. 반대로 두 요소의 의존성이 바람직하지 못할 때 단단한 결합도, 또는 강한 결합도를 가진다고 말함
  • 위의 관계도에서 Order 가 FixedAmountVoucher 를 바로 가지는 게 아니라 Voucher interface를 가짐으로써 결합도를 느슨하게 해줌
public class Order{ private Voucher voucher; public Order(Voucher voucher){ this.voucher = voucher; }
notion image