234
2
부
공격
크립트 자체가 웹 서버의 관리자 계정이나 높은 권한을 갖는 사용자로서 실행되어야 하므로 조
직에 피해를 끼칠 수 있다.
15.1.3
소스 코드 통합
독점적인 웹 애플리케이션과
OSS
를 통합하는 또 다른 방법으로 코드 수준에서 소스를 직접 통
합할 수 있다. 복사와 붙여 넣기를 세련된 방식으로 하는 셈이지만 통합할 라이브러리가 커지
면 자체적인 의존성과 자산까지 함께 통합해야 하므로 일이 더 커질 수 있다.
큰
OSS
라이브러리를 이 방식으로 통합하는 데는 손이 많이 가지만 작은
OSS
라이브러리는
아주 간단하게 할 수 있다.
50
~
100
줄의 짧은 스크립트라면 이 통합 방식이 이상적일 것이다.
작은 유틸리티나 헬퍼 함수의 경우 직접적인 소스 코드 통합이 최선의 선택이 될 때가 많다.
더 큰 패키지는 통합하기 어려울 뿐 아니라 위험도 따른다. 포크와 브랜치 모형에는 위험이 따
르는데 업스트림에 안전하지 않은 변경이 이뤄진 것이
OSS
코드에 통합되고 그것이 다시 여러
분의 웹 애플리케이션에 통합될 수 있기 때문이다. 다른 한편으로 직접 통합 방식에도 위험이
있다. 취약점이 업스트림에 패치되더라도 통지를 받지 못하며 해당 패치를 적용하려면 시간이
많이 걸리기 때문이다.
방식에 따른 장단점이 있으며 모든 애플리케이션에 적용할 수 있는 정답은 없다. 통합하려는
코드를 크기, 의존성 체인, 메인 브랜치의 업스트림 활동 여러 측면에서 면밀히 검토해야 한다.
15.2
패키지 관리자
오늘날 독점적 웹 애플리케이션과
OSS
의 통합이 많아진 데에는 ...