1. 객체 A는 B,C의 기능을 사용한다고 볼수있지만, 객체 B,C의 기능에 의존한다. 2. A가 B,C의 기능이 필요한경우 외부에 있는 갑한테 B,C의 기능을 주입받는다. 이렇게 외부에서 의존성을 주입시켜주고 관리하는것이 JAVA에서는 "Spring" 이다. 위의 1,2번 케이스를 개발자가 직접 해당 객체의 라이프사이클들을 다 관리하면(강한결합) 힘들다. 따라서 외부에서 객체B,C와 같이 만들어서 주입만시켜주는 경우(약한결합) 개발자가 편해진다. 객체지향 프로그래밍에서는 위처럼 "약한결합"을 사용하기 위해 Spring을 이용한다. 아래는 예시코드이다. 위처럼 객체를 직접 만들면 강한결합, 가져오면 약한결합이다. Why 약한결합사용? class에서 생성자를 private으로 바꾸면 강한결합에서는 인식할수..