구글의 AI 코딩 보조 도구 제미나이를 사용하면 더 안전한 코드를 짤 수 있을까. 독일 루르대학교, 칼스루에 공과대학 등 4개 연구기관 공동 연구팀이 이 질문에 정면으로 답하는 실험을 진행했다. 결론은 생각보다 냉정했다. AI 도구가 있든 없든, 유료든 무료든 코드의 보안 수준에 통계적으로 의미 있는 차이가 없었다. 오히려 보안 수준을 가장 확실하게 높인 요소는 개발자 본인의 프로그래밍 경험이었다. AI가 개발자의 실력을 대체할 수 없다는 사실이 실험으로 다시 한번 확인된 셈이다.
159명 개발자 대상 실험 설계
연구팀은 프리랜서 플랫폼 업워크(Upwork)를 통해 전 세계 개발자 159명을 모집해 세 그룹으로 나눴다. 첫 번째 그룹은 AI 도구를 전혀 사용하지 않는 통제 집단, 두 번째는 제미나이 무료 버전 사용 집단, 세 번째는 제미나이 유료 버전인 제미나이 어드밴스드(Gemini Advanced) 사용 집단이었다. 각 그룹은 53명씩 동일하게 구성됐다.
참가자들에게는 파이썬(Python) 기반의 웹 애플리케이션을 만드는 과제가 주어졌다. 사용자 회원가입, 로그인, 웹사이트 목록 관리 기능을 구현하면서 보안에도 신경 써야 하는 과제였다. 연구팀은 완성된 코드에서 다섯 가지 대표적인 보안 취약점, 즉 크로스사이트 스크립팅(XSS), 크로스사이트 요청 위조(CSRF), 부적절한 입력값 검증, SQL 인젝션, 암호화 실패 여부를 채점했다. 만점은 5점이었다.
참가자의 평균 나이는 28세였으며, 평균 개발 경력은 6.5년이었다. 파키스탄, 인도, 미국, 나이지리아 등 42개국 출신이 참여해 국제적으로 다양한 표본이 구성됐다.
유료 버전도 무료 버전도 보안 점수 차이 없어
실험 결과, 세 그룹의 보안 점수는 통계적으로 유의미한 차이를 보이지 않았다. AI를 사용하지 않은 그룹의 평균 보안 점수는 1.81점, 무료 버전 사용 그룹은 2.07점, 유료 버전 사용 그룹은 2.26점이었다. 수치상으로는 유료 버전 그룹이 약간 높았지만, 통계적으로 의미 있는 수준의 차이는 아니었다.
취약점 항목별로 살펴보면, AI를 사용한 그룹에서 비밀번호 암호화 저장 문제가 약 21.7% 개선됐고, SQL 인젝션 취약점도 약 10.5% 줄었다. 그러나 크로스사이트 스크립팅 개선율은 3.5%에 그쳤고, 크로스사이트 요청 위조와 입력값 검증 문제는 거의 변화가 없었다. 특히 크로스사이트 요청 위조 취약점은 세 그룹 모두에서 90% 이상의 높은 발생률을 기록했는데, 참가자 중 이 문제를 인식하고 대응 조치를 취한 사람은 단 4명에 불과했다. AI 도구가 있어도 개발자가 인식하지 못하는 취약점은 걸러내지 못한다는 점이 드러난 대목이다.
보안 점수를 실질적으로 높인 건 개발 경력
가장 뚜렷한 결과는 프로그래밍 경력에서 나왔다. 개발 경력이 1 표준편차 늘어날수록 보안 점수가 높아질 확률이 1.43배 증가했다. 쉽게 말해, 오래 개발한 사람일수록 더 안전한 코드를 짰다는 뜻이다. 경험 많은 개발자들은 제미나이가 제안한 코드를 그대로 쓰지 않고, 자신의 지식과 외부 자료를 통해 검증한 뒤 필요한 부분만 수용하는 방식으로 활용했다. 반면 경험이 적은 개발자 중 일부는 제미나이가 생성한 코드를 충분한 검토 없이 그대로 적용했고, 이는 오히려 새로운 취약점을 만들어내는 결과로 이어졌다.
흥미로운 점도 있었다. 보안 관련 교육이나 실무 경험이 있는 개발자들이 그렇지 않은 개발자들보다 오히려 보안 점수가 낮게 나오는 경향이 관찰됐다. 연구팀은 보안 지식에 자신감이 높은 개발자일수록 실수를 덜 할 것이라는 과신으로 인해 오히려 세부 사항을 놓칠 수 있다고 분석했다. 보안을 안다고 해서 반드시 안전한 코드를 짜는 것은 아니라는 역설적인 결과다.
개발자도 AI도 결국 신뢰의 문제
유료와 무료 버전에 대한 신뢰도 차이도 거의 없었다. 제미나이를 일반적으로 신뢰한다는 응답의 평균 점수는 무료 버전 4.85점, 유료 버전 4.76점으로 비슷했다. 보안 코드 생성에 대한 신뢰도는 무료 4.20점, 유료 4.06점으로 전반적인 신뢰도보다 낮았다. 통계적 검정에서도 두 그룹 간 신뢰도 차이는 유의미하지 않았다.
참가자들이 제미나이를 신뢰한 주된 이유는 자신의 지식으로 검증할 수 있어서였다. 반면 불신의 이유로는 오래된 라이브러리 제안, 잘못된 코드 생성, 맥락을 무시한 답변, 환각 현상 등이 꼽혔다. 실제로 제미나이가 회원가입 및 로그인 기능 구현 시 비밀번호를 암호화하지 않고 평문으로 저장하는 코드를 처음에 제안했다는 참가자 사례도 보고됐다. AI 도구를 믿을 수 있는지 없는지는 결국 그것을 판단할 수 있는 개발자의 역량에 달려 있다는 결론이 도출됐다.
연구팀은 AI 도구를 개발자 대체재로 보는 시각에 강하게 경고한다. 조직이 경험 부족한 개발자를 AI로 대체하는 방향으로 나아간다면, 주니어 개발자들이 실력을 쌓을 기회를 잃게 되고 장기적으로 숙련된 개발자 풀 자체가 줄어들어 소프트웨어 생태계 전체의 보안 수준이 떨어질 수 있다는 것이 연구팀의 경고다.
FAQ( ※ 이 FAQ는 본지가 리포트를 참고해 자체 작성한 내용입니다.)
Q. AI 코딩 도구를 사용하면 보안이 더 좋아지지 않나요? 이번 연구에 따르면 제미나이를 사용한 그룹과 사용하지 않은 그룹 사이에 통계적으로 의미 있는 보안 점수 차이는 나타나지 않았습니다. AI 도구는 비밀번호 암호화나 SQL 인젝션 방어 같은 일부 영역에서는 도움이 됐지만, 크로스사이트 요청 위조나 입력값 검증 같은 취약점에는 거의 효과가 없었습니다.
Q. 유료 AI 도구가 무료보다 더 안전한 코드를 만들어 주나요? 이번 연구에서는 제미나이 유료 버전과 무료 버전 사이에 보안 점수나 사용자 신뢰도 면에서 통계적으로 유의미한 차이가 없었습니다. 비용을 더 지불한다고 해서 반드시 더 안전한 코드가 만들어지는 것은 아니라는 점을 시사합니다.
Q. AI 코딩 도구는 어떻게 활용하는 것이 바람직한가요? 연구팀은 AI 도구를 개발자의 대체재가 아닌 보조 수단으로 활용할 것을 권장합니다. AI가 제안한 코드를 그대로 사용하기보다는 공식 보안 가이드라인이나 신뢰할 수 있는 문서를 통해 반드시 검증하는 습관이 중요합니다. 정적 분석 도구와 코드 보안 리뷰를 병행하는 것도 효과적인 방법입니다.
기사에 인용된 리포트 원문은 arXiv에서 확인할 수 있다.
리포트명: The Impact of AI-Assisted Development on Software Security: A Study of Gemini and Developer Experience
이미지 출처: 이디오그램 생성
해당 기사는 챗GPT와 클로드를 활용해 작성되었습니다.






