알아서 코딩하는 자동 프로그래밍 툴 나올까

- Advertisement -

에디터가 컴퓨터공학을 전공할 때, “이런 기능을 만들고 싶다고 하면 자동으로 코드를 짜주는 프로그램이 있으면 좋겠다”라고 생각했던 적이 많았다. 물론 이클립스나 비주얼 스튜디오는 코드를 입력하고 있으면 다음에 올 수 있는 변수나 코드를 자동으로 추천하는 기능을 제공하긴 하지만, 이는 어디까지나 보조적인 기능이며 완벽하지도 않았다.

에디터가 원했던 ‘명세만 써도 자동으로 코드가 만들어지는’ 완전한 자동 프로그래밍에 비하면 턱없이 부족했다. 하지만 당시 그런 게 필요하다고 생각하면서도 한편으로는 말도 안 되는 공상이라고 치부했다.

그런데 어쩌면 생각보다 빠르게 자동 프로그래밍 툴을 볼 수 있게 될지도 모르겠다. MIT와 IBM 리서치의 과학자 커뮤니티 MIT-IBM 왓슨 AI 랩에서 최근 발표한 논문은 기존 코드 처리 모델의 약점을 찾고 더 탄력적인 교육을 가능케 하는 방법을 담고 있다. 위에서 말한 변수나 코드를 자동으로 추천하는 기능의 태생적 취약점을 개선하고, 자동 추천만 따라가도 어느 정도 완성도가 보장된 결과물을 만들어낼 수 있단다.

언어 학습 모델이 뉴스 기사를 통해 글 쓰는 법을 배우듯, 코드 처리 모델은 깃허브(GitHub)를 비롯한 프로그램 공유 사이트에 공개된 코드를 수집해 코딩하는 방법을 배운다. 이렇게 학습한 데이터가 충분히 쌓이면 프로그래머가 코드를 짤 때 다음에 어떤 내용이 올지 예측할 수 있다. 훈련하기에 따라서는 작성한 코드에서 버그가 발생했을 때 이를 수정할 수도 있다.

하지만 이런 코드 처리 모델에는 보안 위험이 도사리고 있다. 논문에서는 변수의 이름을 바꾸거나, 잘못된 print 출력문을 삽입하거나, 모델이 처리할 프로그램에 다른 작업을 끼워 넣어 코드 처리 모델을 속일 수 있다고 말하고 있다. 이렇게 속아넘어간 모델이 처리한 코드는 겉으로 보기에 정상적으로 작동하는 것 같지만 내부 처리 방식과 결과가 잘못될 수 있는 것.

예를 들어 백신 프로그램을 만들었더니 악성코드를 무해한 것으로 판단하거나 멀웨어를 설치하도록 유도하게 만들어질 수 있다. 논문 내용에 따르면, 이미지를 인식하는 코드에 주요 픽셀 몇 개를 잘못 받아들이도록 해킹했더니 돼지가 비행기로, 거북이가 소총으로 인식됐다고 한다. 이미지를 인식한다는 기능 자체는 정상적으로 동작하지만 결과가 완전히 잘못된 꼴이다.

그렇다면 이 문제를 어떻게 해결할 수 있을까. 논문 팀을 이끄는 MIT 전기공학 및 컴퓨터공학과 대학원생 Srikant는 “코드 처리 모델이 프로그램의 본질적인 속성을 배운다면 속이기 어려울 것이다”라고 말한다. 기존 코드 처리 모델은 단편적인 코드와 변수의 배열만 학습했기 때문에 내용을 변조해도 잘못된 것인지 판단하지 못하는데, 전체 프로그램이 어떤 역할을 해야 하는지, 어떤 방식으로 동작해야 하는지 코드 처리 모델이 이해한다면 기존과 같은 변조 해킹의 위험성을 줄일 수 있다는 이야기다.

논문 발표 팀이 새로 만든 프레임워크는 코드에서 어느 부분의 내용이 바뀌었을 때 오류를 일으킬지 판단할 수 있다. 또한 내용이 어떻게 편집되면 보안이나 작동 프로세스에 가장 큰 위협이 되는지 식별하는 것도 가능하다. 기존 코드 처리 모델이 문법상 오류만 없으면 해커가 변조한 내용이라도 넙죽 받아들이는 것과 달리 해커가 악용할 만한 부분을 미리 파악하고 대비한다는 게 차이점이다. “만약 이 부분이 이런 방향으로 수정된다면 잘못된 결과가 도출될 수 있으니 유의해야겠다”라고 모델이 자체적으로 학습해 판단하는 셈이다.

이는 원래 인간이 생각하고 판단해야 했던 부분이다. 사람의 판단이 개입하는 부분을 기계가 대신할 수 있다면 이것만으로도 분명 큰 발전이다. 물론 아직까지는 명세만 보고 코드를 처음부터 끝까지 알아서 짜주는 단계에는 이르지 못했고, 코딩의 완전 자동화를 구현하려면 아직 넘어야 할 산이 많다. 하지만 기술이 더욱 발전해 공상으로만 치부했던 코딩 자동화가 현실로 나타난다면, “이런 기능을 하는 프로그램 만들어줄래?” 하면 코드를 뚝딱 짜주는 AI 개발자도 등장할 수 있지 않을까.

테크플러스 에디터 이병찬

tech-plus@naver.com

- Advertisement -

Related Stories