1. 개요
의존(depend) 또는 의존성이란 어떠한 대상에 기대고 지지하게 되는 증상을 말한다. 인문학이나 의학, 사회학 등 여러 분야에서 범용적으로 쓰이는 단어이다.2. 상세
의존(依存)이란 글자가 쓰이는 단어는 많이 있다. 대표적으로 인간 관계에서 멘헤라와 같이 정신적, 감정적으로 불안을 느껴 타인에게 기대게 되는 의존성 성격장애부터 어떠한 대상을 사용하는데 주요 경로만을 찾게 되어 자신이 종속되게 되는 경로의존성, 명사 중에서 홀로 쓰이지 않는 명사를 의존명사라고 하는 등이 그 예이다.가스라이팅을 당하거나 카페인이나 마약 등의 중독성 환각성 물질을 복용한 경우 인간은 자연적으로 신체적, 정신적으로 해당 대상에 강하게 적응되어 가는데 이 때 지나친 의존, 의존성이 높다고 한다. 이 반대의 경우 의존성이 낮다고 한다.
3. 소프트웨어 개발에서
소프트웨어를 개발할때는 아예 기계어로 코드를 짜는게 아닌 이상 무조건 어셈블러나 컴파일러 혹은 인터프리터에게 의존하여 실행 되게끔 이루어진다. C나 C++ 같은 경우 여기에 헤더파일등이 추가 되며, 복잡하거나 방대한 코드를 짤때에는 컴파일러/인터프리터에 기본 탑재 된 표준 라이브러리뿐만 아니라 여러 외부 라이브러리까지 끌어와서 의존하게 되며, 이 구조를 의존성 트리라고 한다.친숙하게는 엘더스크롤 5 : 스카이림이나 사이버펑크 2077 같이 매우 많은 유저 모드를 사용할때 타 선행 모드에 의존하는 경우가 존재한다.
크게 두 종류로 직접 의존성 목록에 써져 있는 직접 의존성, 사슬처럼 선행 패키지의 선행 패키지도 의존하는 간접 의존성이 있다.
의존성 트리가 과도하게 복잡하면 의존성 지옥(dependency hell)이 발생하며, 긴 사슬 의존이나 직접 의존성 목록이 방대한 경우 공급망 공격에 매우 취약한 타겟이 된다.