**상용 기성품**(Commercial off-the-shelf, commercially available off-the-shelf, COTS)이란 미국에서 정부와의 계약하에 상업 시장에서 구매 및 사용 가능한 상품을 의미하는 연방 구매 시행령 (FAR) 용어이다. 예를 들어, 소비재와 건축 자재는 해당되지만 벌크 화물은 이에 해당되지 않는다.

COTS 구매는 자체 또는 일회성으로 정부가 지원하는 개발에 대한 대안이다. COTS는 대개 해당 용도에 맞도록 환경을 설정해야 한다. COTS는 조달, 개발 그리고 유지 보수 비용에 상당한 절감 효과가 있어 많은 정부와 기업 프로그램을 통해 의무화 되고 있다.

전반적인 시스템 개발 시간의 단축, 비용의 감소 및 유지 보수 비용의 절감이 COTS 컴포넌트를 사용하는 주 목적이다. (컴포넌트는 새로 개발하는 것이 아니라 이미 개발된 것을 구매하거나 라이센스를 받는다.) 1990년대에 많은 사람들이 COTS가 소프트웨어 개발에 소요되는 비용과 시간 절감에 매우 효과적이라고 생각했다. COTS 소프트웨어를 사용함으로써 초기 비용과 개발 시간은 줄일 수 있었지만 쉽게 예측하지 못했던 반대급부로 소프트웨어 컴포넌트를 통합해야 하는 작업의 증가, 업체에 대한 의존성, 보안 문제 그리고 향후 상황 변화에 따른 호환성 문제가 새로 재기되었다.

소프트웨어
-----

상용 기성품 소프트웨어 (COTS)는 주로 제3자 입장의 업체가 사전에 만들어 놓은 소프트웨어이다. COTS는 일반 대중을 대상으로 판매하거나 임대할 수 있고 라이센스 계약도 가능하다.

COTS는 다음과 같은 몇 가지 이점을 제공한다:

* 응용 프로그램이 저렴하게 제공된다.
* 다른 조직에서도 사용되어 검증되었기 때문에 맞춤형 소프트웨어에 비해 신뢰성이 높다.
* COTS는 시스템 문서가 응용 프로그램과 함께 제공되기 때문에, 관리하기가 수월하다.
* 경쟁을 도입하였기에 응용 프로그램의 품질이 더 높다.
* 업계 전문가들이 소프트웨어를 개발하기 때문에, COTS는 복잡성이 높다.
* 업계가 아닌 시장이 응용 프로그램의 개발을 주도한다.
* 납기가 짧아진다.

### 보안 관련

미국 국토안보부에 따르면 소프트웨어 보안이 COTS 소프트웨어를 사용하는데 가장 큰 위험요소이다. 심각한 보안 취약성이 있는 COTS 소프트웨어가 기관의 소프트웨어 공급 사슬을 통해 공급되면 큰 위험이 발생할 수 있다. 새로운 조합의 응응 프로그램이나 여러 시스템을 통합한 시스템을 만들기 위하여, COTS 소프트웨어를 다른 소프트웨어 상품들과 통합하거나 연계(network)하면 여러 위험 요소가 혼재하게 된다. 복합된 응용 프로그램은 개별 COTS 컴포넌트의 위험을 그대로 가질 수 있다.

미국 국토안보부는 COTS를 사용과 관련하여 공급 사슬의 사이버 보안 문제 관리 노력에 지원을 하고 있다. 하지만 가트너나 SANS Institute와 같은 소프트웨어 산업 참관사들은 공급 사슬 붕괴가 주요 위험이라고 지적하고 있다. 가트너는 "기업 IT 공급 사슬이 위태로와질 것이다. IT 시장 구조와 IT를 관리에 대한 변화가 생길 것이다.고 예측한다. 또한 SANS Institute는 2012년 12월에 700개의 IT와 보안 전문가들에 대한 여론 조사를 결과를 발표하였다. 이에 따르면, 14%의 회사만이 내부에서 구매한 모든 상업 응용 프로그램에 대한 보안 리뷰를 하고 있으며, 절반이 넘는 회사는 보안 평가를 하지 않는다. 대신 업체의 평판이나(25%) 법적 책임 계약(14%)에 의존하거나 COTS에 대한 정책이 없어 소프트웨어 공급 사슬로부터 발생할 수 있는 위험에 대해 제대로 인지하지 못하고 있다.

### 다른 산업에서의 문제점

의료 장비 산업에서는, COTS 소프트웨어를 SOUP (Software of Unknown Pedigree or Provenance)로 취급하기도 한다. 즉 알려진 소프트웨어 개발 프로세스나 방법론에 의해 개발되지 않은 소프트웨어는 의료 장비에 사용하지 못한다. 의료 장비 산업에서는 소프트웨어 컴포넌트의 오류가 장비의 시스템 문제가 될 수 있다. IEC 62304:2006 "의료 장비 소프트웨어 - 소프트웨어 생애 주기 프로세스" 표준에서는 개발할 장비를 위해 SOUP 컴포넌트가 안전 요건을 만족하는지 확인할 수 있는 구체적인 실례들을 개략적으로 기술하고 있다. COTS가 소프트웨어 컴포넌트인 경우, 'DHS best practices for COTS software rick review'를 적용할 수 있다. 단순히 COTS 소프트웨어라고 해서 반드시 고장 이력(fault history)이나 소프트웨어 개발 프로세서의 투명성이 부족하다고 할 수 없다.*깨끗한* SOUP이라고 불리는 잘 문서화된 COTS 소프트웨어는 의료 장비에 사용될 수도 있다.

단종
--

제품 단종의 두드러진 예로 리눅스 운영체제를 올린 플레이스테이션 3 (PS3)로 구성한 미국 공군의 슈퍼컴퓨터 Condor Cluster를 들 수 있다. 소니는 2010년 4월에 리눅스가 돌아가는 대체품을 구할 방법을 남기지 않고, PS3로 리눅스를 돌리는 것을 금지하였다. 일반적으로 COTS 제품이 단종되면 맞춤 지원이나 대체 시스템의 개발이 필요하다. 이러한 단종 문제 때문에 정부와 업계간의 제휴를 통해 여러 기업들은 몇몇 버전의 제품들을 정부가 사용할 수 있도록 안정화하고 미래의 새로운 기능에 대해 상호 협의하게 되었다. 이런 이유로 경쟁 조달 관례를 피하기 위하여 실제로는 필요하지 않는 단독 입찰 양해각서를 요구함으로써 편파적이라는 지적을 받는 제휴 관계도 있다.

또한 10년내에 단종될 수 있는 교환용 부품 (및 재료)를 수십년치 선구매해 두어야 할 위험도 있다. 이런 고려요소에 때문에 "루브 골드버그" 시스템의 점점 더 복잡해짐(creeping featurism)을 가진 매우 복잡한 솔루션 대신 간단한 솔루션(예를 들어 "종이와 연필")으로 충분한지 비교하게 되었다. 비교 과정에서 COTS 제품 사용여부과 관계없이 기본적인 요구사항을 충족하는 저비용 시스템을 제공하는 것이 아니라 추가의 자금을 정당화하기 위하여 불필요한 시스템을 만들려고 하는 것이 아닌지도 검토한다.

프로세서가 단종된 록히드 마틴사의 F-22 랩터에서 교훈으로, 록히드 마틴사의 F-35 라이트닝 II은 개발중에 프로세서 업그레이드를 고려하여 계획하였고, 보다 폭넓게 지지를 받고 있는 C++ 프로그래밍 언어로 바꾸었다. 또한 ASIC 대신 FPGA를 사용하였다. 이로 인해 항공 전자 설계가 고정된 회로 중심에서 다음 세대의 하드웨어에 적용될 수 있는 소프트웨어 중심으로 변화되었다.

미국 해군 잠수함의 소나 업그레이드에도 COTS 컴포넌트가 사용되었다.

참고
--

* "Commercial" is not the opposite of Free-Libre / Open Source Software (FLOSS) Archived 2018년 1월 3일 - 웨이백 머신