성균관대학교 웹진

은행나무 아래서 | 지식채널 S

글 : 김용석 기업지원거점 센터장. 정보통신대학 교수

얼마 전에 깜짝 놀랄 뉴스가 있었다. 국토교통부가 345억 원을 들여 만든 ‘항공관제시스템’이 안전성에 심각한 문제가 있어 상용화가 불가능한 부실 프로그램으로 나타났다는 내용이다. 항공관제시스템은 항공기 위치 및 운항정보 등 항공기 관제에 필요한 정보를 관제사에게 제공하는 프로그램이다. 감사결과 해당 시스템은 안전성에 심각한 문제가 있는 부실 시스템이었다.

물론 검찰의 수사결과가 나와야 하겠지만 필자는 비리 측면보다는 상용화를 이해하지 못했던 무지한 까닭으로 생각하고 싶다. 새로운 제품이 세상에 나오기까지는 상상이나 꿈에서 출발해 구체적인 사양을 정하고 시제품을 만든 후 시연을 통해서 기능과 성능을 검증받는다. 이 과정을 거쳐 상용화하기까지는 많은 시간이 걸린다. 특히 칩과 소프트웨어를 처음부터 만들어 이것을 이용해 제품개발을 할 때는 더더욱 그렇다.

신문에 세계 최초로 어떤 제품이나 기술을 개발했다는 기사를 접하는 일이 많다. 이것이 모두 상품화로 연결되어 매출이나 이익으로 연결되었다면 지금보다 더 많은 국내 기업들이 일류기업의 대열에 서 있을 것이다. 왜냐면 제품의 시연수준에서 당장 상품화가 되는 것처럼 발표하는 사례가 많기 때문이다.

국내에서 개발된 기술이나 제품들은 아직 설익은 과일처럼 개발의 완성도가 떨어지는 상태에서 발표하는 예를 많이 본다. 그러나 해외 일류기업은 상용수준으로 개발됐을 때 공식적으로 발표하는 경우가 대부분이다.

예를 들어 퀄컴이라는 휴대전화에 들어가는 부품을 개발하는 회사에서 제시하는 일정은 상용화가 가능한 수준에서 제시한다.

‘시연 수준’과 ‘상용화’란 말에서 느껴지듯 이들 사이에는 차이가 있다. 먼저 시연 수준의 개발은 일반적으로 목표로 세운 제한된 기능을 개발하는 것이다. 이때에는 의도한 기능의 구현 이외의 사항에 크게 제약받지 않는다. 물론 처음의 요구 사항이나 설계에 어느 정도는 상용화나 이후의 과정을 고려한 내용을 일부 반영 할 수 있겠지만 주된 목적은 역시 개발자 입장에서 고려된 일부 기능 개발이라 할 수 있다.

여기에 ‘상용화’란 말이 더 해지면 그 의미가 바뀌게 된다.

첫째는 바라보는 관점에서 시연수준이 개발자 입장에서라면 상용화는 철저히 최종 사용자 입장에서 바라보는 것이다. 휴대전화의 예를 들면 사용자가 제품을 사용하는 여러 가지 기후 환경에서 제품의 기능성을 검증하는 기후 환경 테스트, 사용자의 지속적인 사용에 따른 제품의 안정성을 검증하는 신뢰성 테스트, 사용자가 제품을 사용하게 되는 지역에서 기능 및 성능을 검증하는 필드 테스트 등 사용자의 손에서 제품이 받을 수 있는 영향을 모두 고려 한다. 최종 사용자 측면에서 보면 개발자의 관점에서 하나의 의미로 해석되는 기능이나 문제점이 여러 가지로 해석 가능하며 다른 부분과의 연관 관계를 맺게 된다.

상용화 과정에서는 하나의 기능이나 문제점이 다른 측면에서는 어떤 효과나 악영향을 가져올 수 있는지 예측하고 대처할 수 있는 정도가 제품의 개발 기간과 일정에 큰 영향을 끼칠 수 있다. 이러한 부분은 제품 개발 경험 정도에 따라 좌우되는 면이 많다. 실제 상용화를 하면 자신이 평소에 가지고 있던 관점에서 벗어나 새로운 관점에서의 시각의 필요성을 자주 경험한다. 그것은 제품의 기능이나 문제점들의 상호 연관 관계를 보다 실제로 명확히 인식할 수 있기 때문이다.

둘째는 양산을 고려해야 한다. 양산을 고려한다는 말은 모든 제품에서 일관되게 그 기능들이 정상적으로 동작해야 하며 양산에 따른 공정 과정에서 단말 검증에 필요한 기능들을 지원해야 한다는 것이다.

시연 수준일 때는 몇 개의 시료 중 잘 동작하는 것이 하나만 있어도 그것은 의미 있는 것이지만, 상용화에서는 그 와 반대로 모든 시료가 정상적으로 동작해야 한다. 즉 하나의 시료라도 정상적으로 동작하지 않는다면 그 증상과 원인을 분석해야 하며 적절한 대처를 해야 한다. 예를 들어 100개의 시료를 샘플링 하여 검증했을 때 하나의 시료에서 문제점이 발생하면 그것은 데모를 위한 것이라고 무시할 수도 있지만, 상용화에는 문제점의 증상과 원인을 파악하여 대처해야 한다.

때로는 문제점 재현성이 떨어져 수백 번 또는 수천 번을 테스트해야 발생하는 것도 있다. 이러한 문제는 예방하는 것이 좋겠지만 발생한 후에는 이를 해결하기 위해 엔지니어의 끈기도 필요하다.

양산시에는 공정에서 제품의 기능 및 성능 검증을 위한 지원도 필요하다. 예를 들어 휴대전화는 제품을 양산하기까지 설계 검증, 양산 검증, 출하 검증의 단계를 거치게 된다. 설계 검증은 제품 개발 초기에 설계상의 오류나 문제점을 초기에 파악하여 해결하려는 목적이다. 양산 검증은 실제 제조 공정상에서 제품을 만들어 각 양산 공정 단계에서의 문제점을 파악하고 해결하고자 한다. 출하 검증에서는 양산 후 제품 출하 전에 제품의 문제점 해결 확인과 검증을 위해 마지막으로 다시 한 번 검증하는 것이다.

각 검증 단계에서는 단말의 기능 및 성능 검증을 위하여 여러 항목에 걸친 테스트를 진행한다. 이 테스트 항목을 검증하기 위해 단말은 검증에 필요한 기능을 지원해야 한다. 단말의 기능 검증을 자동화한 인터페이스 및 기능, 단말 기능 검증 시 단말의 상태를 관찰하기 위한 툴 및 인터페이스 등이 이에 해당한다. 즉 상용화를 하면 제품의 본래 목적을 위한 기능뿐만 아니라 양산시에 이를 검증하기 위한 기능도 함께 고려해야 한다.

이와 같이 상용화에는 시연 수준의 개발에서 고려하지 않았던 많은 부분에 대한 고려가 필요하고 그 동작에 신뢰성도 요구된다. 결국, 상용화는 땀과 끈기의 결정체가 아닌가 생각한다.

김진호 기자

기사전체보기