2016.02.03

머신 러닝, 소프트웨어 버그 수정에 탁월…10배 성능과 파급 효과 기대 : MIT

Katherine Noyes | IDG News Service
머신 러닝을 적용할 수 있는 또 하나의 응용 분야가 주목을 받고 있다. MIT가 버그로 가득 찬 코드에서 오류를 수정하는 시스템을 개발한 것이다.

MIT의 연구원들이 개발한 새로운 머신 러닝 시스템은 이전의 프로그램에 비해 약 10배 이상 많은 오류를 수정할 수 있는 것으로 알려졌다. 프로펫(Prophet)이란 이름의 이 시스템은 지난 달 열린 POPL(Principles of Programming Languages) 심포지엄에서 처음으로 공개됐다.

이 시스템은 본질적으로 기존에 오픈소스 컴퓨터 프로그램용으로 만들어진 패치를 학습하는 것으로 동작한다. 프로펫에게는 깃허브 온라인 리포지토리에 저장된 8개의 범용 오픈소스 애플리케이션에 대한 777개의 오류와 수정 정보가 주어졌다. 시스템은 이런 지식을 다른 프로그램의 새로운 버그에 대한 패치를 생산하는 데 적용한다.

이번 보고서의 공동 저자인 컴퓨터공학과 대학원생 팬 롱은 이미 코드를 체계적으로 수정하는 방식으로 프로그램을 고치는 알고리즘을 개발했다. 문제는 시간이 아주 오래 걸린다는 것이다.

새로운 머신 러닝 시스템은 초기 알고리즘을 기반으로 동작하지만, 적용할 수 있는 패치는 늘어난다. 연구원들은 앞서 설명한 8개의 인기 오픈소스 프로그램에서 모은 69개의 실제 오류에 대해 새로운 시스템을 시험했다. 기존의 버그 수정 시스템은 한두 개의 버그를 수정하는 데 그쳤지만, 새로운 시스템은 15~18개의 버그를 수정해 냈다.

이번 보고서의 공동 저자인 컴퓨터공학과 마틴 리너드 교수에 따르면, 새로운 시스템은 유용성도 있지만, 파급 효과는 그 이상이 될 수 있다. 리너드 교수는 “이번 연구에서 가장 흥미로운 측면은 코드 교정이란 정말로 전세계 공통인 영역을 발견했다는 것이다. 한 애플리케이션에서 배운 것을 또 다른 애플리케이션에 적용할 수 있다”라며, “만약 한 코드의 오류를 인식하고 수정할 수 있다면, 모든 소프트웨어 엔지니어링에 걸쳐 막대한 영향을 미칠 수 있다”고 강조했다.  editor@itworld.co.kr


2016.02.03

머신 러닝, 소프트웨어 버그 수정에 탁월…10배 성능과 파급 효과 기대 : MIT

Katherine Noyes | IDG News Service
머신 러닝을 적용할 수 있는 또 하나의 응용 분야가 주목을 받고 있다. MIT가 버그로 가득 찬 코드에서 오류를 수정하는 시스템을 개발한 것이다.

MIT의 연구원들이 개발한 새로운 머신 러닝 시스템은 이전의 프로그램에 비해 약 10배 이상 많은 오류를 수정할 수 있는 것으로 알려졌다. 프로펫(Prophet)이란 이름의 이 시스템은 지난 달 열린 POPL(Principles of Programming Languages) 심포지엄에서 처음으로 공개됐다.

이 시스템은 본질적으로 기존에 오픈소스 컴퓨터 프로그램용으로 만들어진 패치를 학습하는 것으로 동작한다. 프로펫에게는 깃허브 온라인 리포지토리에 저장된 8개의 범용 오픈소스 애플리케이션에 대한 777개의 오류와 수정 정보가 주어졌다. 시스템은 이런 지식을 다른 프로그램의 새로운 버그에 대한 패치를 생산하는 데 적용한다.

이번 보고서의 공동 저자인 컴퓨터공학과 대학원생 팬 롱은 이미 코드를 체계적으로 수정하는 방식으로 프로그램을 고치는 알고리즘을 개발했다. 문제는 시간이 아주 오래 걸린다는 것이다.

새로운 머신 러닝 시스템은 초기 알고리즘을 기반으로 동작하지만, 적용할 수 있는 패치는 늘어난다. 연구원들은 앞서 설명한 8개의 인기 오픈소스 프로그램에서 모은 69개의 실제 오류에 대해 새로운 시스템을 시험했다. 기존의 버그 수정 시스템은 한두 개의 버그를 수정하는 데 그쳤지만, 새로운 시스템은 15~18개의 버그를 수정해 냈다.

이번 보고서의 공동 저자인 컴퓨터공학과 마틴 리너드 교수에 따르면, 새로운 시스템은 유용성도 있지만, 파급 효과는 그 이상이 될 수 있다. 리너드 교수는 “이번 연구에서 가장 흥미로운 측면은 코드 교정이란 정말로 전세계 공통인 영역을 발견했다는 것이다. 한 애플리케이션에서 배운 것을 또 다른 애플리케이션에 적용할 수 있다”라며, “만약 한 코드의 오류를 인식하고 수정할 수 있다면, 모든 소프트웨어 엔지니어링에 걸쳐 막대한 영향을 미칠 수 있다”고 강조했다.  editor@itworld.co.kr


X