이종희(엔젤로보틱스 이사)

[라포르시안] 얼마 전 모교 지도교수 분을 만나 생성형 인공지능(AI) ‘챗GPT’(ChatGPT)에 대해 이야기를 나눴다. 수업 중에 주제를 주고 학생들이 프로그램을 작성하면 챗GPT를 통해 결과를 검토하거나 동일한 주제로 챗GPT가 작성한 코드와 자신이 작성한 코드를 비교하는 방식으로 프로그램 수업을 진행한다고 했다.

다만 챗GPT가 작성한 코드는 일반적인 주제의 경우 잘 맞지만 특별한 알고리즘을 적용하는 부분에서는 틀린 곳이 많다는 것을 지적해했다. 때문에 챗GPT로 코드를 만들고 직접 코드를 보면서 틀린 부분을 수정하는 방식으로 소프트웨어를 개발한다고 했다. 교수님 본인은 오랜 기간 코드를 봐왔기 때문에 틀린 부분을 쉽게 찾을 수 있겠지만 초심자들이 챗GPT가 작성한 코드의 틀린 부분을 찾기는 어려울 것 같다고 했다.

필자가 일하는 회사의 소프트웨어 엔지니어들도 챗GPT를 이용해 프로그램을 만들고 있다. 비교적 간단한 코드는 챗GPT를 참고하고 복잡한 코드나 알고리즘은 직접 코드를 작성한다. 현재 학교에서 프로그래밍을 배운 학생들이 사회에 진출할 때는 챗GPT를 이용해 소프트웨어를 개발하는 것이 일반화될 것이다. 이는 우리가 자료를 찾을 때 인터넷을 이용하는 것처럼 일반적인 업무의 한 형태로 자리 잡을 것으로 전망한다.

챗GPT를 활용해 소프트웨어를 개발하는 것에 별다른 이의는 없다. 더 빠른 시간에 소프트웨어 개발은 물론 다양한 코드를 활용한 제품 개발이 가능할 것이기 때문이다. 하지만 챗GPT를 활용해 의료기기 또는 의료기기용 소프트웨어를 개발한다면 어떨까. 과연 우리는 챗GPT가 제공한 코드의 오류를 발견할 수 있을까. 의료기기는 환자의 생명을 다루기 때문에 간단한 소프트웨어 오류라도 환자 또는 사용자에게 치명적인 악영향을 미칠 수 있다. 같은 맥락에서 안전성과 신뢰성이 중요한 자동차·원자력 발전 등에서도 챗GPT 등 AI가 개발한 소프트웨어에 대한 검증을 놓고 고민이 적지 않을 것으로 생각된다.

IEC 60601-1·IEC 62304에 따른 소프트웨어 밸리데이션에서도 레거시 소프트웨어 및 출처 불명의 소프트웨어에 대한 검증을 요구하고 있다. 개인적으로도 사내에서 오랜 시간 동안 사용하고 있는 레거시 소프트웨어나 인터넷 등에서 다운로드 받아 사용하는 출처 불명의 소프트웨어 검증에 많은 관심과 노력을 기울이고 있다. 그러나 아직 이들 소프트웨어에 대한 명확한 검증 방법이 없다 보니 제품 개발 과정에서 더 꼼꼼히 검증하지 않으면 제품 단계 테스트에서 오류를 발견해 제품 출시 전 소프트웨어를 보완하는 경우를 종종 볼 수 있었다.

어떻게 하면 좀 더 안전한 소프트웨어를 개발할 수 있을까. 이세돌 기사와 알파고 바둑 대국 이후 AI를 활용해 바둑을 배우는 프로기사들처럼 챗GPT를 통해 소프트웨어를 배운 엔지니어들이 과연 챗GPT가 개발한 코드의 오류를 쉽게 발견할 수 있을지는 쉽게 가늠하기 어렵다. 지금과 같은 과도기적 시기에는 원칙에 충실할 필요가 있다고 생각한다.

IEC 62304에 따라 입력사항을 정의하고 유닛·통합·제품 테스트 단계별로 검증을 수행하고 지속적인 형상 관리를 통해 개발 과정에서 소프트웨어 오류를 최소화해야 할 것이다. 여기에 필요하다면 CodeSonar·Squish 등 코드 검증 도구를 이용하는 것도 한 방법이다. 한국산업기술시험원(KTL)의 STL(디지털 헬스케어 소프트웨어 시험평가 센터)에서도 이러한 소프트웨어 검증 툴을 사용할 수 있게 도움도 주고 있다.

소프트웨어는 그 오류가 쉽게 나타나지 않는 특징이 있다. 특정한 조건이 충족되면 발생하는 오류는 그래서 더 치명적일 수밖에 없다. 디지털 치료제·헬스케어 제품 등 소프트웨어 기반 의료기기는 점차 증가하고 있고 그 발전 속도 또한 매우 빠르다. 하지만 소프트웨어 검증은 이러한 속도를 따라가지 못하고 있는 현실이다. 의료기기업계가 기본 원칙에 충실한 소프트웨어 개발과 검증에 더 큰 관심과 노력을 기울여야 하는 이유다.

저작권자 © 라포르시안 무단전재 및 재배포 금지