
229
4
장
의존성
CHAPTER
의존성
4
신은 우리에게 벌을 내리고자 할 때 우리 기도에 응답한다.
오스카 와일드
Oscar
Wilde
코드 재사용은 수십 년 동안 뜬구름 같은 개념이었다. 한 번 작성한 코드를 라이브러리로 패키
징해서 다양한 애플리케이션에서 재사용한다는 것은 몇몇 표준 라이브러리나 사내용 도구에서
나 가능한 꿈같은 일이었다.
하지만 인터넷의 성장과 오픈 소스 소프트웨어의 등장으로 마침내 그 꿈은 실현됐다.
1995
년
에 등장한 최초의 공개 저장소인
CPAN
Comprehensive
Perl
Archive
Network
은 유용한 라이브러리와 도
구, 헬퍼 등을 쉽게 재사용할 수 있도록 패키지로 묶어서 온라인으로 제공한다. 지금은 거의 모
든 언어가 광범위한 오픈 소스 라이브러리를 제공하며, 새로운 의존성
dependency
을 쉽고 빠르게
추가할 수 있도록 패키지 저장소 형태로 운영하고 있다.
1
그러나 쉽고 빠르고 편리하다는 장점과 함께 새로운 문제가 발생한다. 여전히 기존 코드를 재
사용하는 것이 처음부터 새로 작성하는 것보다 대체로 쉽지만, 다른 누군가가 작성한 코드에
의존하면 위험과 함정이 뒤따를 수 있다. 이번 장을 통해 여기에 대해 자세히 알아보자.
1
이와 달리
C
와
C
++는 패키지 관리가 다소 파편화돼 있다.