어디서부터 우리가 직접 만들어야 하고, 어디까지 남이 만든 것을 가져와도 괜찮을까?
조금 전까지만 해도 단순한 소비자 선택 문제로 보였던 이 질문은, 최근 새로 출시된 아이폰 이야기를 들으면 꽤 흥미로운 고민으로 다가온다. 사람들은 동일한 모델의 아이폰을 여러 번 교환하면서까지 내부 디스플레이가 어느 회사 제품인지 확인하려 했다. 애플의 최신폰에 들어가는 패널 공급사는 한국의 LG와 삼성, 그리고 중국의 BOE였으며, 세 곳 모두 애플이 제시한 동일한 스펙을 충족했지만, 소비자들이 느끼는 미묘한 차이는 브랜드 선호를 갈라놓았다. 결국 사람들은 이렇게 묻게 된다. “그렇다면 디스플레이도 애플이 직접 개발해버리면 되는 거 아냐? CPU처럼?”
하지만 바로 이 지점에서 엔지니어링의 현실이 드러나는 지점이다. 무엇을 직접 만들고, 무엇을 외부에서 가져올 것인가는 단순한 의지나 욕심으로 결정되는 문제가 아니다. 개발 비용, 일정, 전문성, 공급망, 품질 관리, 장기 운영까지 고려하면, ‘직접 만든다’는 선택지는 생각보다 훨씬 복잡한 부담을 가져오기에, 반대로 이미 시중에서 판매되는 완성품—즉 COTS 제품을 사용한다면 빠르게 도입할 수 있지만, 그 안이 보이지 않는 블랙박스이기에 새로운 위험이 따라붙는다. 그래서 우리는 자연스럽게 또 다른 질문에 도달한다.
“어디까지가 우리가 통제할 수 있는 범위일까?”
여기서 등장하는 것이 바로 COTS(Commercial Off-The-Shelf) 분석이다. COTS 분석은 시판 제품을 시스템에 통합하기 전에, 안전성·성능·신뢰성·지속 가능성을 다각도로 평가하는 절차다. 직접 개발하지 않은 구성품을 받아들이는 만큼, 그것이 시스템 전체에 어떤 영향을 미치는지를 선제적으로 검토해야 한다. 현대 시스템은 여러 레이어의 외부 제품을 쌓아 올려 구성되는 만큼, COTS 분석은 이제 선택이 아니라 필수적인 시스템 안전 활동이다.
소비자들이 느끼는 작은 차이에서 출발한 이 고민은, 시스템 엔지니어링에서 훨씬 더 무거운 의미를 갖는다. 시스템을 구성할 때 어떤 요소를 직접 만들고, 어떤 요소를 받아들일지 판단하는 과정 그 중심에 COTS 분석이 자리하고 있다.
상용품은 이미 완성된 형태로 제공되기 때문에 개발 일정과 비용을 크게 줄일 수 있다는 분명한 장점이 있다. 이러한 효율성 덕분에 많은 프로젝트가 COTS를 우선적으로 검토하지만, 완성품이라는 사실이 곧바로 안전과 신뢰성을 보장해 주는 것은 아니다. 실제 시스템에 통합되는 순간, 제조사의 내부 설계를 들여다보기 어려운 블랙박스 구조, 실제 운용 환경과의 미묘한 차이, 향후 버전 변경과 지원 종료(EoL)에서 비롯되는 불확실성, 그리고 사고 발생 시 책임 경계의 모호성 같은 문제들이 드러날 수 있기 때문이다. 겉으로는 문제없어 보이는 제품이라도 이러한 요소는 시스템 전반의 안전성을 위협할 수 있다. 결국 COTS를 선택한다는 것은 단순한 구매 결정이 아니라, 외부에서 가져온 구성품이 전체 시스템에 미칠 영향을 면밀히 검토해야 하는 기술적 선택이다. 그렇기 때문에 제품 선정 이전 단계에서 철저한 검증과 분석을 수행하는 작업은 선택이 아니라 필수이며, 이는 시스템 안전을 확보하는 가장 기본적인 절차로 자리 잡고 있다.
내부 설계 비가시성(Black-box Problem)
제조사가 내부 구조·코드·알고리즘을 제공하지 않기 때문에, 시스템 통합 시 예측 불가한 결함 전파 특성이 생긴다.
운용 환경의 불일치
COTS는 제조사가 예상한 환경에서 최적화돼 있으나, 실제 시스템의 온도·진동·EMI·데이터 프로토콜 환경은 전혀 다를 수 있다.
버전 업데이트 및 중단 위험
개발자는 버전 로드맵 또는 EoL(End of Life)을 통제할 수 없기 때문에 장기 신뢰성을 자체적으로 확보해야 한다.
책임 경계의 모호성
사고 발생 시 제조사·시스템 통합자·운영자 간 책임 구분이 애매해지고, 이것은 결국 사전에 명확한 위험 분석의 필요성을 강화한다.
COTS 분석의 본질적인 목표는 조직의 목적과 시스템 요구사항을 가장 효과적으로 만족시킬 수 있는 ‘준비된 솔루션’을 선택하는 데 있다. 이를 위해서는 제품 조사에 그치는 것이 아니라, 계획 수립에서부터 평가·협의·통합까지 이어지는 일련의 과정을 체계적으로 밟아가야 한다. 다시 말해, COTS 분석은 구매 절차가 아니라 엔지니어링 프로세스에 가깝다.
첫 단계는 Assess and Plan이다. 이 단계에서는 프로젝트가 왜 COTS를 필요로 하는지, 어떤 기능과 성능을 목표로 하는지, 그리고 어떤 이해관계자들이 의사결정에 참여해야 하는지를 정교하게 정리한다. 동시에 필요한 노력과 일정, 평가 전략을 설정해 전체 분석의 방향성을 잡는다.
다음 단계는 정보 수집(Gather Information)이다. 여기서는 기능적·비기능적 요구사항을 명확히 정의하고, 시장에서 사용 가능한 COTS 제품을 폭넓게 조사한다. 이때 시스템 설계 상의 제약이나 잠재적 위험 요인, 예를 들어 기존 네트워크 및 인터페이스 구조와의 호환성 같은 부분을 꼼꼼히 확인하는 것이 중요하다.
그 후 진행되는 Analyze and Evaluate 단계에서는 후보 제품들을 요구 기준에 따라 심층적으로 비교·평가한다. 점수 기반 분석, 테스트 시나리오 실행, 아키텍처 적합성 확인 등의 기법이 활용되며, 필요하다면 프로토타입을 실제 시스템에 연결해 적합성을 직접 검증하기도 한다.
평가가 끝나면 Negotiate and Select 단계로 넘어간다. 이는 단순히 “가장 좋아 보이는 제품을 고르는” 절차가 아니라, 이해관계자 간 합의를 이루고 공급사와 조건을 협의하는 과정이다. 경우에 따라 특정 기능의 조정이나 지원 정책 등을 협상해야 하므로, 기술적·계약적 타협이 이 단계에서 결정된다.
마지막으로 Construct and Integrate 단계에서는 선택된 COTS 솔루션을 시스템 내부에 실질적으로 통합한다. 이는 인터페이스 설계, 네트워크 연결성 검토, 물리적 요구조건 확인 등 다양한 기술적 작업을 포함하며, 이 과정에서 검증 시험 전략과 오류 처리 체계가 정교하게 마련되어야 한다. 통합 후 발생할 수 있는 위험을 최소화하기 위해서다.
Note 정리
COTS 분석은 단순히 제품 스펙을 검토하는 작업이 아니라, 전체 시스템 아키텍처와 안전 요구사항을 기반으로 수행하는 엔지니어링 활동이다. 적용 방식은 다음과 같다.
① 시스템 및 안전 요구사항 정의
시스템 수준 기능, 인터페이스 요구, 성능 한계, 안전 무결성 수준(SIL/ASIL/SwCI 수준 등)을 먼저 정의한다.
이후 COTS가 충족해야 할 최소 조건을 도출한다.
② 후보 COTS 목록 식별
시장 조사(Market Survey) 수행
여러 공급사의 제품을 비교·분석
기능적 적합성과 인증 여부(DO-178C, ISO 26262, IEC 61508 등) 확인
③ Gap 분석 및 위험 분석
요구사항 대비 부족(Gap)을 도출
Gap이 시스템 안전에 미치는 영향을 분석
FMEA, FTA, IHA 등 안전 분석 기법을 활용해 위험 수준을 정량화
④ 통합 시나리오 검증
실제 시스템에 연결될 인터페이스 기준으로 테스트 시나리오 정의
Stress test, Fault-injection test, 환경시험 등을 통해 COTS의 한계를 파악
비정상 입력·오류 전파·시간 응답 특성 등을 검증
⑤ 공급업체 평가
공급사의 기술 지원 역량
업데이트 정책
취약점 대응 프로세스
품질 관리 수준(QMS/Configuration Control 등) 확인
⑥ 완화 대책 설계(Mitigation Plan)
COTS 내부를 수정할 수 없기 때문에 **외부 구조적 보호(Architectural Mitigation)**가 핵심이다
예:
Voting 구조(예: Triple Modular Redundancy)
Monitoring + Safe-state 전환
Wrapper 소프트웨어로 입력·출력 검증
단일 고장점 제거
⑦ 최종 승인 및 운영 계획
Hazard Log 업데이트
운영 중 변경 관리, 버전 추적, 패치 검증 계획 수립
유지보수와 수명 주기 관리 전략 문서화
요구사항 정의
제품 후보 식별 및 스크리닝
Gap 분석 + 위험 분석
환경·인터페이스·비정상 조건 검증
공급업체 신뢰성 평가
대체 설계 및 안전 대책 수립
승인 및 변경/운영 관리
이 과정은 시스템 개발 생명주기 전체에 걸쳐 반복적으로 적용된다.
현대 시스템은 점점 더 빠르게 진화하고, 복잡성이 증가하며, 수많은 외부 구성품에 의존하는 구조로 이동하고 있다. 그만큼 우리가 통제할 수 없는 블랙박스 요소가 시스템 내부로 들어오는 일도 늘어났다. 이 불확실성을 줄이기 위한 최소한의 안전장치가 바로 COTS 분석이다. 잘 수행된 COTS 분석은 단순히 “어떤 제품을 고를까”의 문제가 아니라, 전체 시스템의 안전성과 신뢰성을 보증하기 위한 핵심 엔지니어링 활동이다. 설계 단계에서의 선택이 훗날 사고 조사 단계에서 책임 문제로 번지지 않도록 하는 가장 확실한 방법이기도 하다.
이미 상용품을 무비판적으로 받아들이던 시대는 끝났다. 앞으로는 “무엇을 살 것인가”보다 “어떻게 우리 시스템 안에 녹여낼 것인가”가 성패를 가르는 시대다. 통합 이후 드러나는 결함과 실패는 막대한 비용 손실뿐 아니라 안전 리스크로 이어질 수 있으며, 이를 사전에 차단하는 가장 효과적인 전략이 바로 체계적인 COTS 분석이다. 외부 구성품들이 끝없이 유입되는 지금, 시스템의 안정성을 지키기 위해 COTS 분석은 더 이상 선택이 아니라 반드시 거쳐야 하는 필수 과정으로 자리 잡았다.