지난 3주간 AI Agent Challenge에서 대학생 멘토로 참여했다. 참가자들이 AI 코딩 도구를 활용해서 3주 안에 프로덕트를 만드는 프로그램이다.
깃허브 기반 포트폴리오 생성 에이전트, 약속 시간 조율 서비스, 학업 실행 도우미 등 주제가 다양했다. 멘토링을 하다 보니 서로 다른 멘티들이 매주 비슷한 질문을 해주셨다.
- "AI가 짠 코드를 어디까지 이해해야 제 작업물이라고 할 수 있을까요?"
- "일단 개발부터 하고, 공부는 나중에 몰아서 해도 될까요?"
- "AI가 코드를 대신 써주는 시대에, 무엇을 공부해야 하나요?"
프로덕트는 완성되어 가는데 정작 구현 내용은 온전히 이해하지 못하고 있어서 불안하다는 이야기였다.
작동하는 코드, 이해한 코드
한 멘티는 AI가 만든 프로토타입이 잘 작동하는데도 완전히 이해하지 못한 것 같아 공부 중이라고 했다. 다른 멘티는 코드를 한 줄씩 읽으며 진행했더니 시간은 오래 걸렸지만 AI가 자기 의도와 다르게 짠 부분을 발견할 수 있었다고 했다.
두 이야기를 들으면서 AI가 만든 코드는 잘 작동하는 것과 내 의도대로 짜인 것이 다를 수 있고, 그 차이는 코드를 읽어야 보인다는 생각을 했다.
읽지 못하면 확인할 방법이 없으니 AI가 주는 선택지 안에서만 움직이게 된다. 한 멘티도 "점검을 했다고는 하지만 AI가 안내하는 선택지 안에서만 이루어졌다"고 말했다.
이해하는 과정을 건너뛰면
쉽게 얻은 정보보다 힘들게 처리한 정보가 기억에 남는다고 한다. 코드를 보고 뭔가 이상하다고 느끼는 감각도 결국 디버깅하고 실패해 본 경험이 쌓여서 생기는 것인데,
AI를 쓰면 그 과정을 겪지 않고도 결과물이 나온다. 반복 작업을 덜어주는 건 좋지만, 설계를 고민하고 에러를 추적하는 과정까지 전부 넘기다 보면 생산성은 올라도 판단력은 늘지 않는다.
문동욱님이 쓰신 AI 시대에 성장을 멈춘 개발자들 글에서 이 문제를 자세히 다루는데, 멘티분들의 질문과 같은 이야기를 하고 있어서 나도 여러 번 읽었다.
속도와 학습 사이에서
전부 이해하고 넘어가려면 속도가 안 나고, 전부 넘기면 실력이 늘지 않는다. 그래서 그 사이에서 균형을 잡는 연습이 필요하다. 어디에 시간을 쓸지는 각자 정하는 수밖에 없는데, 그 판단을 하려면 내가 지금 무엇을 이해하고 있고 무엇을 이해하지 못하고 있는지 구분할 수 있어야 한다. 결국 메타인지가 중요하다.
메타인지는 저절로 생기지 않는다. 이 코드가 왜 이렇게 짜였는지 설명할 수 있는지, 잘못되면 내가 잡아낼 수 있는지, 스스로에게 질문을 던지는 연습과 그 경험이 쌓여야 만들어진다.
"이게 제 작업물이라고 할 수 있을까요?"라는 질문에는 왜 이렇게 짜였는지 설명할 수 있고, 잘못됐을 때 잡아낼 수 있는지가 더 중요한 것 같다고 답했다. 답을 하면서 정작 나는 그렇게 하고 있는지 돌아보게 됐다.
나부터 AI가 짠 코드를 그냥 넘기지 않고, 읽기 좋은 코드인지 검토하고 의도대로 짜였는지 확인하는 습관을 들여야겠다. 멘토로 참여했지만 배운 게 더 많은 3주였다.