* 간단 개념만 정리

 

의존성 (Dependency) 란? ) 

사용하는 방법을 보면 라이브러리 == dependency ? 라는 의문이 생긴다. 라이브러리를 사용하는데 왜 dependency를 추가하는 것이라고 할까.

 

클래스 A가 다른 클래스  또는 인터페이스 B를 사용할 때 A가 B에 의존하는 관계가 된다.

B가 없으면 작동할 수 없는 A를 dependant라고 하며, 의존의 대상이 되는 B를 dependency라고 한다. 

또한 의존대상 B가 변하면 그것이 A에 영향을 미친다. 

 

코드를 짤 때 작성한 클래스가 라이브러러의 기능을 사용하게 되면 라이브러리에 의존하게 되므로 라이브러리는 dependency가 되며, 작성한 클래스는 dependant가 된다. 

그래서 dependency와 라이브러리가 같은 것 이라고 할수 없지만

라이브러리를 사용하는것이 dependency 즉, 의존성을 늘리게 되는 행동이기 때문에 라이브러리를 사용하는 것을 dependency를 추가한다고 표현하는 것이다. 

 

 

의존성이란

어떤 클래스A가 다른 클래스 또는 인터페이스B를 이용할때 A가 B에 의존한다고 한다.A는 B없이 작동할 수 없고 B를 재사용하지 않으면 A또한 재사용할 수 없다.이러한 상황에서 클래스A를 dependant

velog.io

 

 

 


build.gradle 파일에서 사용 중인 플러그인, dependencies 등을 확인할 수 있다.

 

 

위의 dependencies 리스트와 실제로 사용중인 라이브러리의 리스트가 일치하지 않는다.

 

왜냐하면 우리가 Spring Web이 필요해서 이것만 끌어온다고 선택했지만 Spring Web이 또 의존하고 있는 라이브러리들을 존재한다. 결국 Spring Web을 사용하려면 이런저런 라이브러리들을 더 끌고 와야해서 실제적으로는 아래처럼 수많은 라이브러리들을 끌고 오게 되고 마지막엔 spring-core까지 끌고 오게 된다. 

 

 

라이브러리의 관계성을 보고자 하면, 

하늘 색으로 표시되는, 창을 둘러싼 메뉴들 중 오른쪽 메뉴 들 중에서 Gradle을 찾아 눌러 라이브러리를 확인할 수 있는데 

 

 

펼쳐보면 수많은 라이브러리들에 의존하고 있는 걸 볼 수 있다. 이게 전부 끌려온 것이다. 

+ 참고로 (*)가 붙은건 이미 다른 라이브러리에서 이와 같은 걸 의존하고 있어 중복되어 있으므로 생략했다는 뜻이다.

 

 

 

 

이번 강의 라이브러리 관련 Tip
+ 현업에서는 System.out.print를 사용안하고 로그로 확인하며 에러를 관리한다.
로깅에 관련한 라이브러리가 궁금하다면, logback과 slf4j에 대해 검색해보자.
+ 자바 진영에서는 테스트 프레임워크로 junit을 사용

 

+ Recent posts