News Feed

코드 생성은 가속, 개발자 학습은 정체…AI 코딩의 그늘

컨텐츠 정보

  • 조회 455

본문

AI 코딩 도구와 개발 속도 및 정확성 향상에 대한 기대는 크다. 그러나 개발자가 코파일럿처럼 AI를 사용하는 과정에서 사고 과정 일부를 AI에 넘기고 있는지에 대한 의문도 제기된다.

앤트로픽 연구진은 최근 AI 지원 여부에 따라 소프트웨어 개발자가 새로운 기술을 얼마나 빠르게 습득하는지 실험했다. 실험은 새로운 파이썬 라이브러리를 학습하는 과정에서 AI 도움을 받은 경우와 받지 않은 경우를 비교했으며, 단순한 작업 수행 능력보다 개발자가 자신이 작성한 코드를 실제로 이해했는지를 중점적으로 분석했다.

연구 결과는 역설적이었다. AI의 도움을 받은 개발자는 새로운 작업을 성공적으로 수행했지만, 정작 새로운 기술을 학습하지는 못했다.

현업 소프트웨어 엔지니어에게 이 결과는 크게 놀랍지 않다. 노스웨스트 AI 컨설팅의 와이엇 메이햄은 “AI 코딩 어시스턴트는 역량으로 가는 지름길이 아니라, 더 높은 수준의 자기 규율을 요구하는 강력한 도구”라고 말했다.

AI 사용자, 코딩 개념 이해도 상대적으로 낮아

무작위 대조 실험에는 ‘대부분 저연차’ 개발자 52명이 참여했다. 연구진은 참가자를 두 그룹으로 나눠 한쪽에는 AI 사용을 권장하고, 다른 한쪽에는 AI 사용을 제한했다. 참가자는 비교적 새로운 비동기 파이썬 트리오 라이브러리를 활용해 짧은 과제를 수행했으며, 과제에는 단순한 파이썬 문법을 넘어서는 새로운 개념이 포함됐다. 참가자는 모두 파이썬과 AI 코딩 도구에 익숙했지만 트리오 라이브러리는 처음 접했다.

연구진은 이후 디버깅, 코드 읽기와 작성 능력, 그리고 AI가 생성한 코드가 적절한 소프트웨어 설계 패턴을 따르는지 판단할 수 있는 핵심 도구와 라이브러리 이해도를 평가했다.

결과는 분명했다. AI를 사용한 그룹은 손으로 코딩한 대조군보다 퀴즈 점수가 17%포인트 낮았다. AI 사용 그룹은 50%, 대조군은 67%로, 문자 성적 기준 약 두 단계 차이에 해당한다. 퀴즈는 불과 몇 분 전 사용했던 개념을 다뤘음에도 이런 차이가 나타났다.

특히 격차가 컸던 영역은 코드 디버깅과 오류 발생 시점 및 원인에 대한 이해였다. 연구진은 AI 사용으로 기술 형성이 억제된 경우, 사람이 AI가 작성한 코드를 검증하고 수정하는 데 필요한 역량을 갖추지 못할 수 있다고 지적했다.

실험 설계와 진행 방식

70분 동안 진행된 실험은 자기 주도형 튜토리얼 형태로 구성됐다. 참가자는 문제 설명, 시작 코드, 그리고 해결에 필요한 트리오 개념 요약을 제공받았다. 도구에 익숙해지는 데 10분, 트리오로 서로 다른 두 기능을 구현하는 데 35분, 나머지 25분은 퀴즈에 할애됐다.

참가자는 온라인 코딩 플랫폼에서 가능한 한 빠르게 작업하도록 안내됐다. AI 그룹은 언제든 코드를 수정하고 올바른 코드를 생성할 수 있는 사이드바 내 AI 어시스턴트를 사용할 수 있었다. 연구진은 화면 녹화를 통해 코딩과 질의 작성에 소비한 시간, 질문 유형, 발생한 오류를 분석했다.

흥미롭게도 AI 사용 자체가 낮은 점수를 보장하지는 않았다. 개발자가 AI를 어떻게 사용했는지가 습득한 기술과 개념에 더 큰 영향을 미쳤다.

AI 그룹 참가자는 최대 30%의 시간, 약 11분을 사용해 최대 15건의 질의를 작성했다. AI를 사용하지 않은 그룹은 문법과 트리오 개념에서 더 많은 오류를 겪었지만, 연구진은 스스로 오류를 해결하는 과정에서 디버깅 역량이 향상됐을 가능성이 높다고 분석했다.

연구진은 AI 그룹 참가자를 AI 사용 방식과 수준에 따라 세분화했다. 퀴즈 점수가 40% 미만인 참가자는 AI에 크게 의존했으며, 독립적 사고가 적고 인지적 부담을 AI에 전가하는 경향을 보였다. 이 그룹은 다시 세 부류로 나뉘었다.

• AI 위임형 개발자는 AI에 전적으로 의존해 가장 빠르게 과제를 완료했고 오류도 거의 없었다.
• 점진적 AI 사용자는 초기에는 질문을 던지다가 점차 AI에 전면 의존했다.
• 반복적 AI 디버거는 초반에는 질문을 했지만, 이후 이해를 명확히 하기보다 AI에 디버깅과 검증을 맡겼다.

반면 퀴즈 점수가 65% 이상인 참가자는 코드 생성뿐 아니라 개념적 질문에도 AI를 활용했다. 이들은 다시 세 그룹으로 구분됐다.

• 코드를 생성한 뒤 직접 복사해 사용하고 추가 질문을 던진 참가자는 퀴즈에서 더 높은 이해도를 보였다.
• 코드와 설명을 함께 요청하는 ‘하이브리드 질의’를 사용한 참가자는 시간이 더 걸렸지만 이해도가 향상됐다.
• 개념적 질문을 한 뒤 이해를 바탕으로 과제를 수행한 참가자는 오류를 많이 겪었지만 스스로 해결했다.

메이햄은 “핵심은 개발자가 AI를 쓰느냐가 아니라 어떻게 쓰느냐”라며, “기술 저하를 피한 개발자는 AI 결과를 수동적으로 받아들이지 않고 적극적으로 사고했다”라고 강조했다.

흥미롭게도 참가자는 자신의 습관을 인지하고 있었다. AI를 사용하지 않은 참가자는 과제가 ‘재미있었고’ 트리오에 대한 이해를 쌓았다고 답했다. 반면 AI를 사용한 참가자는 생성된 코드를 더 주의 깊게 읽거나, 더 깊은 설명을 요청했어야 했다고 응답했다.

연구진은 AI 사용 참가자가 스스로를 ‘게으르다’고 느꼈으며, 이해에 여전히 많은 공백이 있다고 보고했다고 설명했다.

개발자가 역량을 유지하는 방법

여러 연구에서 AI가 일부 작업을 최대 80%까지 가속화할 수 있다는 점이 확인됐다. 그러나 이번 연구는 속도가 항상 품질을 의미하지는 않는다는 점을 시사한다. 연구진은 특히 빠른 속도를 요구받는 저연차 개발자가 기술 형성을 희생할 위험이 크다고 지적했다.

연구진은 “AI로 강화된 생산성은 역량의 지름길이 아니다”라고 강조하며, 인지적으로 적극 참여하지 않는 상태에서의 공격적인 AI 도입은 부정적 영향을 줄 수 있다고 밝혔다. 인간은 여전히 AI 오류를 포착하고 결과를 유도하며 감독할 수 있는 역량이 필요하다.

연구진은 “인지적 노력, 심지어 고통스러운 정체 상태도 숙련도를 높이는 데 중요하다”라고 덧붙였다.

관리자는 엔지니어가 업무와 학습을 병행할 수 있도록 AI 도입을 의도적으로 설계해야 한다고 조언했다. 주요 대규모 언어 모델 제공사는 앤트로픽의 클로드 코드 학습·설명 모드, 오픈AI의 챗GPT 스터디 모드와 같은 학습 환경을 제공하고 있다.

메이햄은 개발자가 기술 약화를 완화하는 방법으로 다음을 제시했다.

• AI를 학습 도구로 활용: 코드와 함께 설명을 요청하고 개념적 질문을 던져 코드의 ‘무엇’이 아니라 ‘왜’를 이해해야 한다.
• 검증과 리팩터링: AI가 생성한 코드를 무조건 신뢰하지 말고, 읽고 이해하고 테스트해야 한다. 디버깅과 개선 과정이 가장 큰 학습 기회가 된다.
• 독립적 사고 유지: AI는 사고를 대체하는 도구가 아니라 업무를 보조하는 수단이어야 한다. 목표는 해결책의 설계자가 인간으로 남는 것이다.

메이햄은 특히 안전과 직결되는 고위험 시스템에서 AI 기반 생산성이 ‘진정한 역량’을 대체할 수 없다고 지적했다. 개발자는 도구를 의도적이고 절제된 방식으로 도입해 기술을 계속 쌓아야 한다.

또한 “기술 약화의 위험은 실제지만 피할 수 없는 것은 아니다. 선택의 문제”라며 “성공하는 개발자는 AI를 위임용 블랙박스가 아니라 사고를 확장하는 학습 파트너로 활용할 것”이라고 조언했다.
dl-itworldkorea@foundryco.com

관련자료

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