News Feed

AI가 만든 코드, 왜 ‘아직은 아닐’까?

컨텐츠 정보

  • 조회 752

본문

대형 언어 모델(LLM)은 갑자기 등장했다. 너도 나도 엄청난 생산성 향상을 언급했다. 코딩 보조 도구가 번성했다. 키를 누르면 수백만 개의 복잡한 코드 블록이 생성되고 병합되었다. 마법처럼 작동했다. 그러나 모든 사람의 마음속에는 이 코드를 정말로 믿을 수 있을까 하는 생각이 자리 잡고 있었다.

2025년에도 소프트웨어 개발에 AI가 사용된다는 사실에 의문을 제기하는 것은 우습게 들릴 수 있다. 마이크로소프트의 보고에 따르면 1억 5천만 명의 개발자가 깃허브 코파일럿을 사용하고 있다. 스택 오버플로우의 2024년 설문조사에 따르면 개발자의 61.8%가 개발 과정에서 AI를 사용하고 있다. 구글은 새로운 코드의 1/4 이상이 AI에 의해 생성된다고 주장한다.

NCC 그룹의 수석 과학자인 크리스 앤리 “AI 생성 코드는 이미 표준이다”라고 말했다. 그러나 정말로 그럴 만한 가치가 있는 것일까?

AI가 만든 코드의 문제점

오라일리 LLM 보안 플레이북 저자 스티브 윌슨은 “현실적으로 생각해 보자. LLM은 소프트웨어 엔지니어가 아니다”라며 ”LLM은 금붕어 같은 기억력을 가진 인턴과 같다. 빠른 작업에는 좋지만 큰 그림을 파악하는 데는 좋지 않다”라고 단언했다.

AI에 대한 의존도가 증가함에 따라, 그 “큰 그림”은 뒤로 밀리고 있다. 2025 소프트웨어 제공 현황 보고서에 따르면 아이러니하게도 전체 개발자 작업량은 증가하고 있다. 대다수 개발자는 AI 생성 코드를 디버깅하고 보안 취약점을 해결하는 데 많은 시간을 소비하고 있다.

오니모스(onymos)의 공동 설립자 바바니 반갈라는 “AI의 결과물은 대체로 꽤 괜찮지만, 아직은 충분히 신뢰할 수 있는 수준은 아니다”라고 말했다. 반갈라는 ”AI 출력은 훨씬 더 정확하고 일관적이어야 한다. 개발자는 여전히 AI 출력을 검토하고, 디버깅하고, 조정해야 한다”라고 부연했다.

AI 생성 코드를 개선하기 위해서는 불신, 코드 품질 문제, 컨텍스트 제한, 환각, 보안 위험 등 핵심적인 문제를 해결해야 한다. AI는 놀라운 가능성을 보여주고 있지만, 인간의 감독은 여전히 중요하다.

부풀림과 컨텍스트 제한

AI 코드 완성 도구는 기존 코드를 재사용하거나 리팩터링하는 대신 새로운 코드를 처음부터 생성하는 경향이 있어 기술적 부채가 발생한다. 더 나쁜 것은 코드를 중복하는 경향 때문에 코드 재사용 기회를 놓치고 유지 관리해야 하는 코드의 양이 증가한다는 것이다. 모건 스탠리의 신속 엔지니어 스리칸스 고피는 “기술적 부채가 증가하면 장황하거나 비효율적인 코드가 코드 부풀림과 유지 관리 문제를 야기한다”라고 말했다.

깃클리어(GitClear)의 2025년 AI 코파일럿 코드 품질 보고서는 2억 1,100만 줄의 코드 변경을 분석한 결과, 2024년에 중복 코드 블록의 빈도가 8배 증가했다는 사실을 발견했다. 앰플노트(Amplenote)와 깃클리어의 CEO 빌 하딩은 AI가 작성한 코드가 2022년 중반 급증하기 시작한 이후로, 코드 중복이 계속 증가하고 있다는 증거가 매년 더 많이 발견되고 있다고 말했다. 복제된 코드 블록은 불필요한 기술적 부채 외에도 결함이 늘어난 것과 관련이 있으며, 연구 결과에 따르면 15%에서 50% 더 많은 결함과 관련이 있다고 한다.

이러한 문제는 AI의 맥락이 제한된 것에서 비롯된다. 퍼포스 소프트웨어(Perforce Software)의 최고 기술 책임자 로드 코프는 “AI는 맥락이 많을수록 더 좋지만, AI 모델에 제공할 수 있는 정보의 양에는 한계가 있다”라고 말했다. 깃허브에 따르면 코파일럿 채팅은 6만 4,000~12만,8000 개의 토큰 컨텍스트 윈도우를 가지고 있는데, 이는 약 30-100개의 작은 파일 또는 5-20개의 큰 파일에 해당한다. 컨텍스트 윈도우가 늘어나고 있지만, 여전히 전체 소프트웨어 아키텍처를 파악하거나 적절한 리팩토링을 제안하기에는 충분하지 않다.

그림’부족

AI는 패턴 인식에 탁월하지만, 코드 뒤에 있는 “이유”를 보지 못한다. 이 때문에 비즈니스 논리, 사용자 경험, 장기적인 유지 관리성 측면에서 절충안을 만드는 능력이 제한된다. Harness의 최고 기술 책임자 닉 더킨은 “AI는 선임 엔지니어가 제공하는 전체적인 맥락과 문제 해결 능력이 부족한다”라고 말했다.

코딩은 본질적으로 창의적이고 사람 중심의 활동이다. 서리얼DB(SurrealDB)의 CEO 토비 모건 히치콕은 “AI는 이전에 존재하지 않았던 새로운 것을 만들 수 없다. 개발자는 창의성과 인간 선호도에 대한 지식을 사용해 최종 사용자를 위해 특별히 설계된 솔루션을 만든다”라고 설명했다.

NCC의 앤리는 그 결과, AI 도구는 전체 프로그램 생성이나 더 넓은 맥락이 필요한 영역에서 “시간을 절약하는 것보다 더 많은 시간을 낭비하는” 경우가 많다고 말했다. 더 긴 형식의 루틴을 작성하도록 요청하면 생성되는 코드의 품질이 크게 떨어진다는 것이다.

환각과 보안 위험

환각은 여전히 우려의 대상이다. 엑스아비움의 윌슨은 “AI는 실수를 저지르는 것이 아니라 자신 있게 실수를 저지른다”고 말했다. AI는 존재하지 않는 오픈소스 패키지를 발명하고, 미묘한 보안 취약점을 도입하며, 이 모든 것을 태연하게 해낸다.

이러한 오류는 종종 불량 데이터 코퍼스에서 비롯된다. 더킨이 설명했듯이, 합성 데이터로 훈련된 AI는 에코 챔버를 만들어 모델 붕괴를 초래할 위험이 있다.

크라우드보틱스의 연구 및 혁신 담당 부사장 코리 하이멜도 마찬가지로 고품질 훈련 데이터의 부족을 가장 큰 장애물로 꼽았다. 예를 들어, 깃허브 코파일럿이 사용하는 인기 모델인 오픈AI 코덱스는 품질에 영향을 미치는 오류가 포함된 공개 코드에 대해 훈련되었다.

보안 취약성은 또 다른 문제다. 모건 스탠리의 고피는 “AI 생성 코드에는 악용될 수 있는 결함이 있을 수 있다”라고 말했다. AI는 버그를 수정하는 데는 능숙하지만, 버그를 찾는 데는 어려움을 겪는다. 오픈AI의 연구 논문에 따르면 AI 에이전트는 “근본 원인을 파악하지 못해 부분적이거나 결함이 있는 솔루션을 만들어 낸다” 이 논문은 다음과 같이 지적한다.

에이전트는 전체 저장소를 키워드 검색을 통해 관련 파일과 기능을 신속하게 찾아내어 문제의 원인을 매우 빠르게 파악한다. 이는 사람보다 훨씬 빠른 속도이다. 그러나 에이전트는 문제가 여러 구성 요소 또는 파일에 걸쳐 있는 방식에 대한 이해가 제한적이어서 근본 원인을 해결하지 못하고, 부정확하거나 불충분한 해결책을 제시하는 경우가 많다.

다른 업계 보고서는 AI 결함이 증가하고 있다고 주장했다. 예를 들어, 아피로(Apiiro) 연구에 따르면 코드 저장소에 노출된 개인 식별 정보(PII)와 결제 데이터가 2023년 중반 이후 3배 급증했는데, 이는 AI 지원 개발의 채택 때문이라고 한다.

법적 회색 지대도 AI 코드의 사용을 방해하고 규정 준수 문제를 야기할 수 있다. 일부 AI 도구는 출력한 코드의 소유권을 주장하는 반면, 다른 도구는 모델 재훈련을 위해 IP를 보유한다. 디지털.ai의 북미 현장 최고기술책임자 아담 켄토시는 “많은 기업이 독점 데이터 보호와 외부 모델 훈련에 데이터가 실수로 사용되지 않도록 하는 것에 대해 우려한다”라고 말했다.

불신과 채택 장벽

세일즈포스의 제품 관리 담당 부사장 댄 페르난데즈는 결국 신뢰의 문제로 귀결된다며, “사람들이 새로운 애플리케이션을 구축하기 위해 AI가 생성하는 것을 신뢰할까?“라는 질문을 던졌다. 구글의 2024년 DORA 보고서에 따르면, 평균적으로 개발자는 AI 생성 코드를 ‘어느 정도’ 신뢰하는 것으로 나타났다.

더킨도 “도입의 가장 큰 걸림돌은 AI의 정확성에 대한 신뢰”라고 지적했다. 인간 개발자와 달리 AI는 본질적인 양심이나 책임감이 없기 때문에 AI 산출물에 대한 준수 및 신뢰성 검사가 더욱 중요하다는 것이다.

AI의 불투명성 때문에 중요한 애플리케이션에서 신뢰하기는 어렵다. 컨텐트풀(Contentful)의 엔지니어링 담당 부사장 제프 가브리엘은 “AI가 제공하는 코드에 대한 신뢰는 큰 문제이지만, 특히 대부분의 소프트웨어 투자가 이루어지는 레거시 코드에 대한 신뢰는 더욱 중요하다”라고 말했다.

레즈제로코프(rez0corp)의 설립자 조셉 태커는 “가장 큰 장애물은 아마도 많은 회사에서 AI에 대한 내부적인 반대가 아닐까 한다”라며 고위급 임원이 AI 사용을 금지하는 사례가 종종 있다고 지적했다.

AI 생성 코드가 어떻게 개선될 것인가

AI 생성 코드가 직면한 장애물에도 불구하고, 근본적인 코딩 모범 사례를 재검토하는 등 해결책이 등장하고 있다. 깃허브 코파일럿의 제품 담당 부사장 슈인 자오는 “여러 가지 측면에서 문제가 발생하고 있지만, 이미 이러한 문제가 해결되고 있는 것을 확인할 수 있다”라고 말했다.

AI 결과 검증

인간이 생성한 코드와 마찬가지로 AI 생성 코드에도 엄격한 테스트가 적용되어야 한다. 벌터(Vultr)의 최고 마케팅 책임자 케빈 코크레인은 “개발자는 AI 생성 코드가 보안, 성능, 유지 관리성 측면에서 가장 높은 기준을 충족하는지 확인하기 위해 AI 생성 코드를 신중하게 검토, 개선, 최적화해야 한다”라고 말했다.

AI 결과물의 자동화된 테스트가 핵심이 될 것이다. 퍼포스의 코프는 자동화된 테스트, 정적 코드 분석, AI 모델 훈련을 위한 민감한 데이터 마스킹을 통해 개발자 플레이북의 일부를 차지할 것을 권장한다. “이러한 도구 중 상당수는 이미 AI를 지원하도록 설계되었거나, 그렇지 않더라도 곧 그렇게 될 것이다”

켄토시도 “AI를 통한 코드 처리량 증가는 다운스트림 프로세스와 시스템에 부담을 주므로, 지속적인 신뢰성을 보장하기 위해 QA 테스트에서 강력한 자동화가 필요하다”라고 덧붙였다.

인공지능은 코드 품질을 재확인하고, 예측 모델을 사용해 잠재적 위험을 식별하고, 보안 검사를 수행하는 등 스스로를 감시하는 역할도 할 수 있다. 깃허브의 자오는 “책임 있는 인공지능(RAI) 필터를 더 널리 사용해 유해한 콘텐츠와 보안 취약점을 선별하고, 공개 코드 매칭을 사용자에게 알리는 것이 모두 중요하다”라고 말했다.

점진적 릴리즈는 개별 코드 변경의 효과를 측정함으로써 단점을 피하는 데 도움이 될 수 있다. 더킨은 “카나리 배포, 기능 플래그 지정 또는 기능 관리와 같은 기술을 사용하면 팀이 노출이 제한된 코드를 검증할 수 있다”라고 말했다.

나은 훈련 데이터 만들기

“쓰레기를 넣으면 쓰레기를 얻는다”라는 말이 있듯이, 모든 것은 훈련 데이터에 달려 있다. 따라서 자오는 “더 많은 소독과 고품질 코드 샘플을 훈련 데이터로 활용하는 것”이 필요하다고 생각한다. 모델 붕괴를 피하기 위해서는 AI 모델에 반복 출력보다는 추가 데이터를 공급해야 한다”라고 말했다.

사용자 정의 라이브러리, 스타일 가이드, 소프트웨어 BOM(Bill of Materials) 또는 보안 지식과 같은 프로젝트별 컨텍스트를 LLM에 공급하는 것도 정확도를 향상할 수 있다. 세일즈포스의 페르난데스는 “AI 모델이 신뢰할 수 있는 데이터로 훈련되고 특정 응용 프로그램에 맞게 미세 조정되도록 하면 AI 생성 코드의 정확성을 높이고 결과물의 착각을 최소화하는 데 도움이 된다”라고 말했다.

개발자에게 더 많은 실시간 컨텍스트를 제공하기 위해 특정 IDE 기반 솔루션과 기술이 등장하고 있다. 오니모스의 반갈라는 검색 증강 생성(RAG)이 버전별 소프트웨어 라이브러리 또는 코드 저장소를 참조하는 데 도움이 될 것이라고 제안했다.

정교하게 조정된 모델

대규모의 일반 모델에 의존하는 대신, 기업은 특정 코딩 작업을 위한 더 작은 전문 모델로 전환하고 있다. 페르난데스는 “개발자 라이프 사이클의 모든 사용례에 가장 큰 모델이 필요한 것은 아니다”라며 “우리는 저전력 LLM이 개발자를 위해 많은 작업을 처리하는 소규모 모델의 연합 아키텍처를 탐구하고 있다”라고 설명했다.

훈련이 개선되고 모델이 미세 조정되면 정확도가 높아질 가능성이 높지만, 최상의 결과는 기업 방화벽 뒤에서 작동한다. 크라우드보틱스의 하이멜은 “2025년에는 기업의 기존 코드에 훈련된 미세 조정 모델이 ‘방화벽 뒤에서’ 실행되어 공개적으로 이용 가능한 모델보다 훨씬 더 우수한 성능을 보일 것”이라고 말했다.

향상된 프롬프트 엔지니어링

또 다른 측면은 개선된 프롬프트 엔지니어링이다. 컨텐트풀의 가브리엘은 “추가적인 맥락과 시스템별 시나리오에 대한 잠재적인 미세 조정을 포함하는 프롬프트 방식에 대해서도 연구해야 한다”라고 말했다.

반갈라 역시 “프롬프트 엔지니어링은 소프트웨어 엔지니어의 업무에 필수적인 부분이 될 것이다.그러려면 개발자의 기술 향상이 중요하다. 개발자에게 우리가 원하는 AI 출력을 얻기 위해 더 나은 프롬프트를 작성하는 방법을 가르쳐야 한다”라고 말했다.

새로운 AI 기반 솔루션도 도움이 될 것이다. 태커는 커서와 최근 깃허브 코파일럿의 업그레이드와 같은 솔루션을 언급하며 “더 나은 모델과 더 많은 맥락을 제공하는 더 나은 코딩 애플리케이션이 가장 큰 영향을 미칠 것”이라고 예측했다.

새로운 에이전트 AI 도구

AI 에이전트는 소프트웨어 엔지니어링 전반을 개선하고 자체 검사 기능을 제공하는 데 계속해서 초점을 맞출 것이다. 엑사빔의 윌슨은 이제 새로운 추론 모델이 반복적으로 자체 작업을 검증할 수 있어 착각을 줄일 수 있다고 말했다.

예를 들어, 깃허브는 코파일럿 오토픽스를 추가했는데, 이 기능은 취약점을 감지하고 실시간으로 수정할 것을 제안하며, 코파일럿 워크스페이스에 빌드 및 복구 에이전트를 추가했다. 깃허브의 자오는 “가장 크고 흥미로운 변화는 코드 품질을 향상시키기 위해 에이전트를 사용하는 것”라고 말했다.

페르난데스도 AI 생성 코드가 내년경 표준화될 것을 기대했다. 또한 코드 생성 외에도 테스트, 문서화, 코드 검토 등 소프트웨어 개발자를 위한 AI 기반 에이전트의 지속적인 증가를 지적했다.

가브리엘은 “개발자는 또한 사용할 수 있는 수많은 도구를 조사해 작동하는 도구를 찾고, 그렇지 않은 도구를 사용해 부족한 부분을 채우는 방법을 고려해야 한다”라고 말했다. 그러려면 개인과 조직 모두의 투자가 필요하다고 덧붙였다.

많은 이가 오픈소스가 AI의 민주화를 더욱 앞당길 것으로 기대하고 있다. 잇랩의 최고 제품 책임자 데이비드 데산토는 “특정 사용례를 해결하기 위해 훨씬 더 많은 오픈소스 모델이 등장할 것으로 기대한다”라고 말했다.

AI 사용에 관한 거버넌스

AI 생성 코드에 대한 개발자의 신뢰를 높이는 것은 책임 있는 사용을 위한 가드레일을 설정하는 데 달려 있다. 세일즈포스의 페르난데스는 “책임감 있고 신뢰할 수 있는 AI 출력을 보장하기 위한 적절한 안전 장치가 마련되면, 기업과 개발자는 AI 생성 코드로 시작하는 것이 더 편해질 “이라고 말했다.

경영진은 명확한 방향을 설정해야 한다. 더킨에 따르면 궁극적으로, AI 생성 코드에 액세스할 수 있는 사람들에게 명확한 경계를 설정하고, 개발자의 신뢰를 구축하기 위해 더 엄격한 프로세스를 적용하는 것이 관건이다.

모던 스탠리의 고피는 “모델 훈련 데이터의 투명성을 확보하면 윤리적, 지적 재산권적 위험을 완화하는 데 도움이 된다”라고 조언했다. 투명성은 지적 재산권 측면에서도 매우 중요하다. 깃허브의 데산토는 AI 출력에 대한 통제력이 없다는 것은 AI 코드 생성을 전반적으로 발전시키는 데 매우 중요하다며 깃허브의 기본 모델과 데이터 사용에 관한 GitLab Duo의 투명성 약속을 언급했다.

보안에 민감한 기업에서는 온프레미스 AI가 데이터 프라이버시 문제를 피할 수 있는 해답이 될 수 있다. 데산토는 에어갭(air-gap) 방식의 오프라인 배포 환경에서 자체 호스팅 모델을 실행하면 데이터 보안을 유지하면서 규제된 환경에서 AI를 사용할 수 있다고 말했다.

인간과 AI균형 유지

인터뷰에 참여한 모든 전문가는 AI가 개발자를 대체하기보다는 개발자를 지원하는 역할을 할 것이라고 믿고 있었다. 실제로, 대다수 전문가는 코드 품질을 유지하기 위해서는 개발자가 지속적으로 관여해야 한다고 생각한다. 디지털.ai의 켄토시는 “현재로서는 AI 생성 코드를 사용할 때 사람의 감독이 필수적이다“라고 강조했다.

서리얼DB의 히치콕은 “애플리케이션 구축은 대부분 AI를 사용해 작업을 보완하는 창의적인 전문가의 손에 맡겨질 것”이라고 말했다. 자오 역시 “AI 코딩 어시스턴트를 사용할 때는 사람의 감독이 절대적으로 필요하며, 앞으로도 그럴 것이다”라고 덧붙였다.

부분적으로는 윤리적 문제 때문이다. 고피는 “복잡한 아키텍처를 다루고 윤리적 기준을 보장하기 위해서는 인간의 감독이 필수적이기 때문에 완전한 자동화는 아직 달성할 수 없는 목표”라고 말했다. 그렇지만 AI 추론은 개선될 것으로 기대된다. 윌슨에 따르면, 다음 단계는 AI가 “단순히 코드를 작성하는 것이 아니라 코드를 이해하는 합법적인 엔지니어링 보조자가 되는 것”이다.

훨씬 더 낙관적으로 보는 사람도 있다. 컨텐트풀의 가브리엘은 가장 가치 있는 AI 기반 시스템은 AI 코딩에 완전히 맡길 수 있는 시스템이 될 것이라고 말했다. 물론 아직 일관된 현실이 아니라는 것을 인정한다. 현재로서는 AI와 인간이 나란히 협력하는 미래 전망이 여전히 우세하다. 퍼포스의 코프는 “개발자는 모든 코드를 작성하는 역할이 아니라 감독 역할을 맡을 것”이라고 내다봤다.

최종 목표는 AI의 생산성 향상과 과도한 의존 사이의 적절한 균형을 찾는 것이다. 켄토시는 “개발자가 기본 코드를 제대로 이해하지 못한 채 AI에 지나치게 의존하게 되면, 혁신에 필수적인 창의성과 기술적 깊이를 잃을 위험이 있다”라고 말했다.

앞으로의 거친 여정

아마존은 최근 자사의 AI가 Java 애플리케이션을 다시 작성해 2억 6천만 달러를 절약했다고 주장했다. 비슷한 결과를 증명해야 한다는 압박을 받는 기업도 많다. 켄토시는 “대부분의 회사들은 현재 어떤 형태의 AI 지원 개발 서비스 또는 코파일럿에 투자하고 있으며, 투자 수익을 확인해야 할 것이다”라고 말했다.

여러 가지 요인으로 인해 AI 도입이 계속 가속화되고 있다. 태커는 주변의 대다수 개발자가 어떤 형태로든 AI를 사용하고 있고, 많은 수가 AI는 매일 생성하는 코드의 대부분을 작성한다고 말했다.

그러나 AI가 반복적인 작업을 효과적으로 제거한다고 하더라도, 최종 단계까지 도달하기 위해서는 여전히 사람의 개입이 필요하다. 크라우드보틱스의 하이멜은 “대부분의 코드 기반은 상용구이고 반복적이다. AI가 애플리케이션의 ‘기초 작업’의 51% 이상을 수행하는 데 사용되고, 그 이후에는 사람이 완료하는 현상을 목도할 것”이라고 말했다.

결론은 AI 생성 코드는 아직까지 훌륭하지 않다는 것이다. 그러나 윌슨은 “AI를 무시한다면 이미 뒤처진 것이다. 앞으로 12개월은 격동의 시기가 될 것”이라고 단언했다.
dl-itworldkorea@foundryco.com

관련자료

댓글 0
등록된 댓글이 없습니다.
Member Rank