KAIST(총장 신성철)가 다양한 언어로 구성된 소프트웨어(SW)의 전산 오류를 찾아내고 자동으로 수정하는 기술을 개발한다. 2020년까지 기술 개발을 마치고 상용화에 돌입할 계획이다.
KAIST는 김문주·류석영·유신 전산학부 교수팀이 경북대, 포스텍, 한동대 연구팀과 함께 '지능형자동화를 활용한 풀스택 SW 검증 및 디버깅 기술(이하 다중언어 검증 디버깅 기술)' 개발에 나섰다고 20일 밝혔다.
풀스택 SW는 자바 및 자바스크립트, C언어 등 다양한 프로그래밍 언어를 이용해 서비스를 제공하는 SW다. 최근 이종 하드웨어(HW) 및 SW를 융합·활용하는 기술이 속속 나오면서 풀스택 SW의 활용도 늘어나는 추세다.
문제는 오류 발견 및 수정(디버깅)이다. 풀스택 SW는 단일 언어 SW에 비해 오류 검증 및 디버깅 난이도가 높다. 다중 언어의 인터페이스와 상호작용을 통합 분석해야 한다.
다중언어 디버깅 기술은 SW모델 및 세부 코드에서 오류를 탐지·검증한다. 모델 기반 오류 탐지의 경우 SW의 핵심 내용을 담은 '모델'을 대상으로 검증을 진행해 오류를 쉽게 찾아내는 기술이다. 각 SW는 기능을 규명한 '표준문서'나 '요구명세서'를 가지고 있는데 이것을 바탕으로 SW 모델을 생성한다.
코드 기반 탐지는 SW 코드에서 직접 소통 이상을 잡아낸다. 각 프로그래밍 언어의 소통 인터페이스를 정밀 분석해 오류를 찾는 기반으로 활용한다. 각 탐지 방법에는 기계학습을 적용한다. 전체 모델이나 코드에서 유력한 오류 발생지점을 추론해 검증 효율을 높인다.
오류 내용을 찾으면 자동결함수정 기능으로 패치(오류 수정 프로그램)을 생성·적용한다.
연구팀은 현재 자바스크립트-자바 오류 검증 및 자바-C언어 디버깅 기술을 확보한 상태다. 추가 기술 확보로 언어에 상관 없이 오류를 잡아내고 수정하는 기술 개발을 진행하고 있다.
김문주 교수는 “4차산업혁명 시대에는 다양한 언어를 활용하는 SW가 보편화 된다”면서 “이종 언어를 모두 다룰 수 있는 오류 검증 및 디버깅 기술이 필수”라고 말했다.
대전=김영준기자 kyj85@etnews.com