
102
2
부
시스템 설계
첫째, 민감한 고객 데이터를 서드파티 벤더에게 위탁한다면 보안에 적어도 여러분 수준의
노력을 투자하는 벤더를 선택하고 싶을 것이며 벤더의 선택 및 협업 과정에서 최대한 조심
스럽게 벤더를 평가하게 될 것이다. 이는 쉬운 일이 아니며 이 책의 범위를 벗어나는 계약이
나 규제, 법적 책임 등 직접 변호사와 해결해야 하는 복잡한 문제들이다.
둘째, 벤더의 서비스와 통합하려면 벤더가 제공하는 라이브러리를 애플리케이션에 연결해
야 한다. 만일 이 벤더의 라이브러리나 라이브러리 디펜던시에 취약점이 존재하면 결국 이
취약점은
시스템
의 취약점이다. 라이브러리를 샌드박싱
sandboxing
6
하고 업데이트된 버전이 있
다면 신속하게 배포할 수 있도록 미리 준비 (
7
장 참고 )하면 이 문제를 어느 정도는 완화할
수는 있다. 만일 벤더가
REST
+
JSON
,
XML
,
SOAP
,
gRPC
등의 공개 프로토콜을 사용하
는
API
를 제공하여 벤더의 라이브러리를 서비스에 연결할 필요가 없다면 대부분의 문제는
발생하지 않는다 (
7
장 참고 ).
어쩌면 벤더와의 통합을 위해 웹 애플리케이션 클라이언트에 자바스크립트 라이브러리를
포함해야 하는 경우가 생길 수도 있다. 그렇게 하면 결제 데이터가 사용자의 브라우저에서
서비스 제공자의 웹 서비스로 직접 전달되서 시스템에 임시로라도 ...