“소스코드는 개발자의 지문”

공백이나 탭, 대문자와 밑줄을 결합해서 명명한 규칙이나 주석. 프로그래밍 코드 작성은 개발자마다 스타일도 제각각이다. 이를 증명이나 하듯 소스 코드만 봐도 누가 작성한 것인지 거의 알아버린다는 연구 결과가 발표됐다.

“소스코드는 개발자의 지문”

미국 드렉셀대학과 메릴랜드대학, 프린스턴대학, 독일 괴팅겐대학 공동 연구에 따르면 자연 언어 처리와 기계 학습을 이용한 코드 분석을 통해 개발자를 95% 정확도로 가릴 수 있다.

해석 과정을 거치는 건 레이아웃과 어휘 특성, 추상구문트리(abstract syntax tree. AST)다. AST는 코드 작성에서 전혀 영향을 받지 않고 코드 형태 특성을 파악하는 것으로 함수 이름과 코멘트, 공간 배치 같은 버릇을 찾아 개발자를 특정하는 열쇠로 삼는 것이다.

연구팀은 개발한 기계학습 소프트웨어를 통해 구글코드잼(Google Code Jam)에 공개된 코드 분석을 시도했다. 개발자가 쓴 소스코드 630줄을 분석하면 95% 정확도로 개발자를 찾아냈다고 한다. 코드 행수를 1,900줄로 늘리면 정확도는 97%로 늘어난다.

이런 코드 분석은 온라인 범죄나 해커를 찾아낼 때에도 유용할 수 있다.

전자신문인터넷 테크홀릭팀

이원영IT칼럼니스트 techholic@etnews.com