[충청뉴스 이성현 기자] 미국 백악관이나 국방성에서 소프트웨어 메모리 문제를 막기 위해 러스트같이 안전한 언어 사용을 촉구하고 있는데 국내 연구진이 C-러스트 코드 번역 기술을 이미 선제적으로 개발하고 선도하고 있어 화제다.
한국과학기술원(KAIST)은 전산학부 류석영 교수 연구팀이 C언어의 유니언(union)을 러스트의 태그드 유니언(tagged union)으로 변환하는 기술을 세계 최초로 개발했다고 13일 밝혔다.
연구팀은 C언어의 유니언에 특화된 새로운 프로그램 분석 기법을 고안해 러스트의 태그드 유니언으로 자동 번역하는 데 성공했다.
올해 2월 백악관에서도 C언어의 사용을 중단하라고 촉구한 바가 있고 미국 국방고등연구계획국(DARPA)에서 C언어로 작성된 코드를 러스트(Rust)로 자동 번역하는 기술을 개발하는 연구 과제를 발표했다.
DARPA는 미국 국방성의 연구·개발을 담당하는 기관이며 인터넷의 원형인 아파넷(ARPANET)을 개발하는 등 혁신적이고 영향력 있는 연구를 지원해 왔다. DARPA는 이 과제를 제안하며 C의 메모리 문제를 막기 위해 러스트같이 안전한 언어를 사용해야 한다고 밝혔다.
러스트는 2015년부터 개발된 프로그래밍 언어다. 운영 체제, 웹 브라우저 개발 등에 쓰이며, 2022년에는 리눅스(Linux) 개발에도 공식 사용되기 시작했다. C와 달리 프로그램 실행 전에 메모리 문제를 탐지하고 예방할 수 있는 것이 특징이다.
연구진은 지난해와 올해 각각 C의 뮤텍스(mutex)와 출력 파라미터(output parameter)를 러스트로 변환하는 기술을 세계 최초로 개발해, 최우수 국제 학술대회인 국제소프트웨어엔지니어링학회(ICSE)와 프로그래밍언어설계구현학회(PLDI)에 발표한 바 있다.
C언어와 러스트의 큰 간극으로 인해 세계적으로도 C-러스트 코드 번역 기술을 성공적으로 개발한 연구팀은 극소수다. 그마저도 포인터(pointer)를 변환하는 데 머물고 있다. 그러나 류석영 교수 연구팀은 C의 여러 핵심 기능을 변환하는 기법을 연달아 제시해 C-러스트 코드 번역 기술을 선도하고 있다.
류석영 교수는 “안전한 소프트웨어 제작을 목표로 연구하면서 C-러스트 코드 번역의 중요성을 일찍이 파악하고 각종 프로그래밍 언어 기법들을 코드 번역에 적극적으로 도입하여 나온 결과”라며 “완전한 자동 번역을 위해 아직 풀어야 할 난제가 많으니 후속 연구에 정진하여 계속 분야를 선도하겠다”고 설명했다.

