낯선 라이브러리로 기능을 하나 만들어야 한다. 문서를 읽던 개발자는 막히자 AI에게 묻는다. 잠시 뒤 코드가 나오고 테스트도 통과한다. 작업은 끝났다. 하지만 왜 이 코드가 맞는지 설명해 보라고 하면 말문이 막힌다.
예전에는 오류 메시지를 따라가며 빈칸을 메우고 문서를 직접 뒤졌다. 이제는 AI가 빈칸을 먼저 메운다. 작업은 빨라졌지만 그만큼 개발자의 이해도 깊어졌는지는 알기 어렵다.
Lars Faye의 글 AI Coding will Prevent Expertise는 결과물과 이해 사이의 간격을 다룬다. AI를 잘 쓰려면 설계와 검증 능력이 필요하다. 그런데 그 능력을 기르던 과정마저 AI가 대신할 수 있다. 관련 연구를 함께 읽어 보면 쟁점은 AI 사용 여부가 아니다. 개발 과정에서 누가 생각했느냐가 핵심이다.
통과한 코드가 배운 코드는 아니다
코딩을 배울 때 가장 눈에 띄는 결과는 실행되는 프로그램이다. 그러나 실력은 화면에 잘 드러나지 않는다. 문제를 작은 단위로 나누고 실패 원인을 좁히며 여러 해법의 비용을 비교하는 능력이다. 다른 사람이 쓴 코드를 읽고 잘못된 부분을 설명하는 힘도 여기에 포함된다.
AI는 결과를 빨리 만든다. 그러나 결과가 빨리 나왔다고 그 과정의 개념까지 익힌 것은 아니다. 정답을 보고 나면 원래 알고 있던 것처럼 느끼기 쉽다. 조건이 조금만 달라진 다음 문제에서 이 착각이 드러난다.
Anthropic은 2026년 Python을 꾸준히 썼지만 Trio 라이브러리는 처음인 개발자 52명을 AI 집단과 직접 코딩한 집단으로 나눴다. AI 집단은 작업을 평균 약 2분 빨리 끝냈지만 통계적으로 뚜렷한 차이는 아니었다. 이어진 시험의 평균 점수는 AI 집단이 50%, 직접 코딩한 집단이 67%였다. 가장 큰 격차는 디버깅 문제에서 나왔다.
이 연구는 표본이 작고 작업 직후의 이해만 측정했다. 장기적인 실력 저하를 증명한 연구는 아니다. 그래도 AI가 생산성과 학습을 저절로 함께 높인다는 가정에는 의문을 던진다. Anthropic 연구진은 익숙한 일을 빨리 끝내는 것과 새로운 기술을 배우는 일을 구분해야 한다고 설명했다.
내 계획이 없으면 AI의 답이 기준이 된다
초보자에게 더 큰 위험은 문법을 잊는 것이 아니다. 스스로 세운 해법이 없으면 AI의 해법이 곧 문제를 보는 틀이 된다. 그럴듯한 제안을 받는 순간 문제를 이해하고 계획하는 단계를 건너뛰기 쉽다. 오류가 나도 처음 가정을 다시 살피기보다 AI에게 수정을 맡긴다.
The Widening Gap은 2024년 ICER에 발표된 연구다. 입문 프로그래밍 수업을 듣는 학생 21명은 GitHub Copilot과 ChatGPT를 쓸 수 있는 환경에서 35분 동안 문제를 풀었다. 21명 중 20명이 결과를 완성했다. 결과만 보면 대부분 성공했다. 하지만 화면, 시선, 발화를 분석하자 과정은 둘로 갈렸다.
AI 덕분에 빨리 끝낸 학생들은 만들 코드가 이미 머릿속에 있었다. 불필요한 자동 완성을 무시하고 자기 계획에 맞는 짧은 제안만 받아들였다. 어려움을 겪은 학생들은 설명보다 생성된 코드에 눈을 돌렸다. 계획 없이 제안을 따라가다 AI가 만든 문제까지 다시 AI로 고쳤다.
자기 평가에서도 문제가 드러났다. 일부 학생은 핵심 개념을 놓쳤는데도 AI를 개인 교사처럼 잘 활용했다고 믿었다. 연구진은 실제보다 잘 안다고 믿는 상태를 ‘유능함의 착각’이라고 설명했다. 관찰 대상이 한 학교뿐이라 모든 초보자에게 그대로 일반화할 수는 없다. 그래도 한 가지는 분명하다. AI 제안을 거절할 기준은 먼저 생각해 본 사람에게 생긴다.
답을 주는 AI와 생각을 돕는 AI
AI를 아예 끄는 것만이 답은 아니다. 수학 교육의 대규모 실험에서는 도구 설계에 따라 결과가 달라졌다. 펜실베이니아대학교 연구진은 튀르키예 고등학생 약 1,000명을 세 집단으로 나눴다. 교과서만 쓴 집단, GPT Base 집단, GPT Tutor 집단이다.
일반 채팅 도구에 가까운 GPT Base 집단은 연습 문제에서 교과서 집단보다 48% 높은 성과를 냈다. 하지만 AI 없이 치른 시험에서는 17% 낮았다. GPT Tutor 집단은 연습에서 127% 높은 성과를 냈고 시험에서는 교과서 집단과 통계적으로 구분되지 않았다. 학생들은 90분씩 네 차례 수업에서 이 도구를 사용했다.
두 AI가 다른 결과를 낸 이유는 답변 방식에 있었다. GPT Tutor에는 교사가 만든 정답과 흔한 실수를 넣었고 학생에게 답 대신 단계별 힌트를 주도록 했다. 학생들도 답을 복사하는 대신 도움을 청하고 직접 풀이를 시도했다. GPT Base에서는 처음부터 정답을 묻는 대화가 많았다. 논문이 확인한 것은 단기 시험 결과다. 장기 학습은 따로 확인해야 한다.
이 원리는 코딩 AI에도 적용할 수 있다. 완성 코드 대신 다음에 읽을 문서나 실패 원인을 묻는다. 답을 듣기 전에 자기 가설부터 적고 AI에는 반례를 찾게 한다. 배울 때만큼은 답을 잘 내놓는 AI보다 스스로 답에 도달하도록 돕는 AI가 낫다.
맡길 일과 직접 할 일을 나눈다
AI 없이 연습하는 일만 고집하기는 어렵다. 실제 팀에는 납기가 있다. 충분히 익힌 반복 작업까지 매번 손으로 할 필요도 없다. 작업을 ‘AI 사용’과 ‘AI 금지’로만 나누면 정작 배울 것을 놓친다. 판단 기준은 이 일을 하며 무엇을 익혀야 하느냐다.
익숙한 형식 변환과 반복 코드, 이미 결정한 설계의 구현은 AI에 맡겨도 된다. 개발자가 결과를 빠르게 읽고 오류를 찾을 수 있기 때문이다. 그러나 처음 접한 개념과 핵심 설계, 원인을 모르는 장애는 직접 붙잡아야 한다. 이때는 속도보다 원인과 결과의 관계를 이해하는 일이 먼저다.
AI를 쓰면서도 생각을 넘기지 않는 순서가 있다. 먼저 문제와 제약을 자기 말로 쓰고 작은 해법을 직접 세운다. AI에는 정답 대신 빠진 조건과 반례, 다음 힌트를 요청한다. 제안은 공식 문서와 테스트로 확인한다. 마지막에는 AI 없이 동작을 설명해 본다.
설명하지 못하는 코드를 무조건 버릴 필요는 없다. 다만 그 코드를 배운 것으로 착각하면 안 된다. 당장 제품에 넣어야 한다면 동료의 검토를 받는다. 이해하지 못한 부분은 남은 과제로 기록하고 나중에 직접 구현하거나 디버깅해 본다.
막힘을 없애지 말고 조절한다
AI 코딩에서 위험한 것은 코드의 양이 아니다. 코드를 만들면서 쌓이던 판단 경험까지 사라질 수 있다는 점이다. 그렇다고 모든 불편을 남길 이유는 없다. 이미 익힌 기계적인 일은 덜어 내고 새 개념과 중요한 결정 앞에서는 직접 생각할 시간을 남긴다.
Anthropic 연구는 이 원칙을 짧게 정리한다.
인지적 노력, 심지어 고통스럽게 막히는 경험도 숙련을 키우는 데 중요할 가능성이 크다.
다음 작업을 시작하기 전에 세 가지를 묻는다. AI가 없다면 이 일을 어디서부터 풀지 설명할 수 있는가. 생성된 코드가 틀렸을 때 어느 부분부터 의심할지 아는가. 새 개념을 배우는 중이라면 답 대신 힌트를 요청했는가. 셋 가운데 하나라도 답하기 어렵다면 코드 생성을 늦추고 직접 생각할 시간을 늘린다.
좋은 AI 사용은 모든 막힘을 지우지 않고 배움에 필요한 막힘을 남긴다. AI가 오늘의 생산성을 높이면서 내일의 개발자 성장을 가로막지 않게 하려면 결과물만 봐서는 안 된다. 누가 계획하고 판단하고 검증했는지까지 함께 봐야 한다.
원문: AI Coding will Prevent Expertise (Lars Faye, 2026) / 관련 연구: The Widening Gap (Prather et al., 2024), Generative AI without guardrails can harm learning (Bastani et al., 2025), How AI assistance impacts the formation of coding skills (Shen and Tamkin, 2026) / GeekNews 소개