AI 코딩 시대, 더이상 성장하지 않는 개발자들
뇌는 편하면 기억하지 않는다

AI를 많이 쓸수록 AI를 잘 쓰기 어려워진다. 이건 마치 직관에 반하는 말처럼 들리지만, 필자는 이것이 사실이라고 생각한다.
요즘 너도 나도 AI FOMO에 빠져 열심히 AI를 잘 쓰기 위해 노력하고 있지만, 우리는 “AI를 잘 쓴다”는 것이 무엇인지부터 생각해볼 필요가 있다.
에이전트 오케스트레이션이나 하네스 엔지니어링 같은 방법론은 결국 도구가 발전하면 누구나 따라가게 되는 시대의 흐름이다. 하지만 진짜 차별점은 다른 데 있다. 필자는 이것이 바로 AI의 출력물이 좋은지 나쁜지를 판단하고, 잘못된 방향을 교정하고, 더 나은 결과를 끌어낼 수 있는 역량이라고 생각한다. 그리고 아이러니하게도 이 능력은 우리가 AI에 의존할수록 약화된다.
“10년을 일해도 1년짜리 경험을 10번 반복하는 것은 10년의 경험이 아니다”라는 말이 있다. 경력은 쌓이는데 실력은 제자리인 사람, 3년차와 10년차의 판단력 차이가 거의 없는 사람을 의미하는 말이다.
물론 이런 현상은 AI 등장 이전에도 있었지만 AI가 코드 작성의 고통을 대신해주는 시대가 도래하면서 10년 동안 1년짜리 경험을 반복하는 경로에 빠지기가 이전과는 비교할 수 없이 쉬워졌다.
이러한 AI 의존은 “성장이 멈추는 개발자”라는 오래된 문제의 새로운 버전이다.
필자는 일전에 작성했던 AI가 코드를 쓰는 시대, 개발자의 진짜 역량이 드러난다라는 글에서도 AI 시대에도 개발자에게 요구되는 핵심 역량은 크게 달라지지 않을 것이라는 이야기를 한 적이 있다.
이번 포스팅에서는 그보다 앞단의 질문을 던져보려 한다. 왜 AI에 의존할수록 오히려 AI를 잘 쓰기 어려워지는지, 그리고 뇌과학은 이러한 현상에 대해 뭐라고 말하고 있는지에 대해서 알아보자.
AI를 잘 쓰려면 코드를 알아야 하는 역설
AI의 출력물의 퀄리티를 판단하는 판단력은 구체적으로 어떤 모습일까? 사실 AI에게 그저 “이걸 만들어줘”라고 말할 수 있는 사람은 이미 많다.
하지만 AI가 만든 결과물을 보고 “이 구조는 변경에 취약하다”, “이 인터페이스는 두 가지 책임을 가지고 있다”, “이 추상화 수준이 현재 프로젝트의 복잡도에 맞지 않는다”고 구체적으로 지적하고 교정할 수 있는 사람은 훨씬 적다. 그리고 바로 이 능력이 AI를 잘 활용하는 것과 AI에 끌려다니는 것을 가르는 차이이다.
그리고 이 능력은 “좋은 코드란 무엇인가”에 대한 감각에서 온다. 숙련된 개발자가 코드를 보고 “뭔가 이상한데”라고 느끼는 감각은 수많은 실패와 디버깅과 리팩토링의 경험에서 형성된 것이기 때문이다. 이것은 이론적으로 익혀서 얻을 수 있는 종류가 아니라 직감에 가깝다. 이러한 직감은 개발자가 수 많은 경험을 통해 직접 나쁜 구조에 고통받아봐야 생기고, 직접 좋은 추상화를 만들어봐야 “이 수준이 적절하다”는 감각이 생긴다.
이것은 단순히 이전 글에서 언급했던 “코드를 사람도 읽어야 하니까”라는 차원의 문제가 아니다. AI를 제대로 활용하려는 목적에서 봐도, 코드에 대한 깊은 이해는 대체 불가능한 전제 조건이다. AI 사용법을 학습하는 것과 코드 패턴을 학습하는 것은 양자택일의 관계가 아니라, 후자가 전자의 토대인 관계다. AI의 인터페이스가 아무리 쉬워져도, 그 출력물의 품질을 판단하는 눈은 AI가 대신 길러주지 않는다.
한 문장으로 요약하면 이렇다. AI를 가장 잘 활용할 수 있는 개발자는, AI 없이도 코드를 판단할 수 있는 개발자다. 그리고 AI에만 의존하면 바로 그 판단력이 형성되지 않는다.
그리고 이것이 단순한 직관이 아니라는 것을 뇌과학이 보여준다.
뇌는 편하면 기억하지 않는다
우리가 무언가를 “배웠다”고 말할 수 있으려면, 그것이 장기 기억에 저장되어야 한다. 단기적으로 이해했다가 며칠 뒤에 다 잊어버린다면 그건 학습이 아니라 소비에 가까운 것이다.
개발자라면 아마 이런 경험이 있을 것이다. 블로그 글에서 본 디자인 패턴을 읽을 때는 완벽히 이해한 것 같았는데, 막상 일주일 뒤에 비슷한 문제를 만나면 기억이 안 나는 경우. 반면 프로젝트에서 삽질하며 직접 구현해본 패턴은 몇 달이 지나도 선명하게 남아있는 경우. 이 차이는 단순히 개인차가 아니라 뇌가 기억을 저장하는 방식에서 비롯된다.
그런데 장기 기억이 형성되는 과정은 우리의 직관과는 조금 다른 면이 있다. 쉽고 매끄럽게 이해한 것보다, 어렵고 힘들게 끙끙대며 처리한 것이 기억에 더 잘 남는다.
UCLA의 인지심리학자 로버트 비요크(Robert Bjork)는 이 현상을 “바람직한 어려움”이라는 개념으로 설명했다. 비요크는 학습 과정에서 적절한 수준의 난이도와 저항이 존재할 때, 단기적인 수행 속도는 느려지지만 장기적인 기억 보존과 전이는 오히려 향상된다고 말했다.
비요크가 제시한 핵심 메커니즘 중 하나는 인출 연습이다. 같은 내용을 반복해서 읽는 것보다, 스스로 기억을 떠올려보는 연습이 장기 기억 형성에 훨씬 효과적이라는 것이다.
로디거와 카르피크(Roediger & Karpicke)의 2006년 연구는 이 현상을 훨씬 정량적으로 보여준다.
이 실험은 우선 학생들을 두 그룹으로 나누고, 한 그룹은 같은 자료를 반복해서 읽게 하고 다른 그룹은 자료를 읽게 한 뒤 스스로 내용을 떠올려보는 테스트를 했다. 이 테스트가 끝나고 5분 뒤에는 반복 읽기 그룹의 성적이 더 좋았다. 하지만 일주일 뒤에 다시 테스트했을 때는 인출 연습 그룹의 기억 보존율이 약 50% 더 높았다.
이 결과가 시사하는 바는 무엇일까? 바로 정보를 수동적으로 받아들이는 것과 능동적으로 인출하는 것이 단기적으로는 비슷해 보여도 장기적으로는 전혀 다른 효과를 만든다는 것이다.
그리고 이 차이는 뇌 활성도 수준에서도 확인된다. 능동적으로 학습한 내용을 떠올려봤던 그룹은 해마와 전두엽 피질 사이의 연결성이 강화되고, 감각운동 네트워크와 섬엽의 활성도가 증가했다.
해마는 새로운 기억을 형성하는 핵심 영역이고, 전두엽 피질은 고차원 사고와 의사결정을 담당한다. 이 두 영역이 동시에 활성화되면서 긴밀하게 소통한다는 것은 뇌가 정보를 단순히 저장하는 것이 아니라 맥락과 함께 엮어서 기록하고 있다는 의미이다.
반면 수동적으로 강의를 듣는 그룹은 해마와 방추상회 사이의 연결만 주로 활성화되었다. 방추상회는 시각 처리, 특히 패턴 인식을 담당하는 영역이다. 쉽게 말해 수동적 학습 상태의 뇌는 정보를 보고 있을 뿐 “처리하고 있지 않은 것”에 가까운 것이다.
즉, 무언가를 받아들이고 학습할 때 뇌가 열심히 일할 수록 기억이 단단하게 저장되고 편하게 받아들인 정보는 편하게 사라진다.
한 가지 주의할 점이 있다. 이것이 단순히 “어려우면 다 좋다”는 뜻은 아니다. 비요크가 강조하는 것은 “바람직한” 어려움이다. 학습자가 현재 가진 능력으로 도달할 수 있는 범위 안에서의 도전이어야 한다.
너무 쉬우면 부하가 부족해서 기억에 남지 않고, 너무 어려우면 처리 자체가 불가능해서 좌절만 남는다. 적절한 난이도의 과제를 스스로의 힘으로 해결하는 경험이 가장 효과적인 학습을 만든다는 것이다. 이 지점을 기억해두자. 뒤에서 AI를 어떻게 활용할 것인가를 이야기할 때 다시 돌아올 것이다.
생성 효과와 유창성의 착각
슬라메카와 그래프(Slamecka & Graf)가 1978년에 발표한 고전적 연구에서 밝혀진 “생성 효과”도 같은 맥락에서 짚고 넘어갈 필요가 있다. 실험에서 참가자들을 두 그룹으로 나누었다. 한 그룹에게는 단어 쌍을 완성된 형태로 보여주었다.
예를 들어 “뜨거운-차가운”이라는 쌍을 그대로 제시한 것이다. 다른 그룹에게는 “뜨거운-차___“처럼 빈칸을 주고 직접 단어를 완성하게 했다. 차이는 고작 몇 글자를 직접 채우느냐 마느냐였을 뿐인데, 결과는 꽤 다르게 나왔다. 그 몇 글자를 직접 채운 그룹의 기억 보존율이 유의미하게 높았던 것이다.
이 차이가 왜 발생하는지를 신경과학적으로 살펴보면 더 흥미롭다. 정보를 직접 생성하는 과정에서는 뇌의 의미 처리 영역, 인출 경로, 실행 제어 영역이 동시에 활성화된다. 여러 뇌 영역이 동시에 관여할수록 기억의 인코딩이 더 풍부해지고, 나중에 그 기억을 끌어올 수 있는 경로도 더 다양해진다. 반면 완성된 정보를 수동적으로 읽을 때는 주로 인식 네트워크만 작동하기 때문에, 기억의 인코딩이 상대적으로 얕다.
여기서 주의해야 할 함정이 있는데, 바로 인지심리학에서 “유창성의 착각”이라고 부르는 현상이다. 정보를 쉽게 처리할 수 있다는 느낌이 곧 그 정보를 잘 기억할 것이라는 착각으로 이어지는 것이다.
잘 정리된 글을 읽으면 이해한 것 같은 느낌이 강하게 들지만, 실제 기억 보존율은 그 느낌만큼 높지 않다. 비요크의 연구에서 반복 읽기 그룹이 5분 후 테스트에서는 더 좋은 성적을 보인 것도 같은 맥락이다. 당장은 잘 아는 것 같지만, 시간이 지나면 남아있지 않는다.
코드를 판단하는 능력은 어떻게 만들어지는가
앞서 설명한 바람직한 어려움과 생성 효과는 일반적인 학습 원리다. 이것이 코딩에 구체적으로 어떻게 작동하는지를 이해하려면, 코딩 판단력이 뇌에서 어떤 형태로 저장되는지를 먼저 살펴봐야 한다.
사실 코딩 실력이라고 부르는 것의 상당 부분은 절차 기억에 해당한다. 절차 기억은 “어떻게 하는가”에 대한 기억이다. 마치 자전거 타기, 악기 연주, 타이핑 같은 것들처럼 한번 체화되면 의식적으로 떠올리지 않아도 자동으로 실행된다.
코딩에서의 절차 기억은 특정 문제를 보면 자연스럽게 떠오르는 해결 패턴, 코드를 읽으면서 “여기 뭔가 이상한데”라는 직감이 드는 감각, 설계 구조를 잡을 때 본능적으로 떠올리는 경계의 위치, 리팩토링이 필요한 지점을 순식간에 포착하는 눈 같은 것들이 해당될 것이다.
이런 것들은 교과서에서 읽어서 아는 명시적 지식과는 완전히 다른 종류의 기억이다. “SOLID 원칙을 나열하시오”에 답할 수 있는 것과, 코드를 보는 순간 단일 책임 원칙 위반을 감지하는 것은 다른 뇌 영역이 담당하는 다른 유형의 지식이라는 의미이다.
절차 기억 형성 세 단계
앤더슨(Anderson)의 적응적 사고 통제 모델은 이 절차 기억의 형성을 세 단계로 설명한다.
첫 번째는 인지 단계다. 인지 단계에서는 모든 것을 의식적으로 한 단계씩 실행한다. 코딩을 처음 배울 때를 떠올려보면 이해가 쉽다. 우리가 for문을 작성할 때 초기값은 뭘로 하고, 조건은 어떻게 쓰고, 증감은 어떻게 하는지를 하나하나 생각하며 타이핑했던 것처럼 말이다. 이처럼 인지 단계에서는 작업 기억의 상당 부분을 이 과정에 소모한다.
두 번째는 연합 단계다. 연합 단계에서는 개별 절차들이 통합되기 시작한다. for문과 배열 접근과 조건 분기를 하나의 흐름으로 묶어서 실행할 수 있게 된다. 그 결과 점점 실수가 줄어들고 인지하는 속도가 빨라진다.
세 번째는 자동화 단계다. 자동화 단계에서는 무언가를 인지할 때 작업 기억을 거의 차지하지 않고 자동으로 실행되는 것들이 많아진다. 숙련된 개발자가 필터링 로직을 작성할 때 for문의 문법을 의식하지 않는 것처럼 패턴 자체가 하나의 단위로 자동 인식된다. 이 단계에 도달한 개발자는 문법이나 기본 패턴에 작업 기억을 쓰지 않기 때문에 그만큼의 여유를 설계 판단이나 구조적 사고에 활용할 수 있다.
중요한 것은 이 단계들이 반복적인 수행을 통해서만 진행된다는 점이다. 인지 단계에서 연합 단계로 넘어가려면 직접 뇌에 부하를 걸면서 같은 유형의 문제를 여러 번 직접 풀어봐야 한다. 그리고 연합 단계에서 자동화 단계로 넘어가려면 더 많은 반복이 필요하다.
이 과정에서 뇌의 기저핵과 소뇌가 핵심적인 역할을 한다. 기저핵은 습관 형성과 절차 학습을 담당하고 소뇌는 동작의 정교화와 자동화를 돕기 때문이다.
반복적인 수행을 통해 이 영역들의 시냅스 연결이 지속적으로 강화되는데, 이것을 장기 강화라고 부른다. 이렇게 시냅스 연결이 강화될수록 해당 절차의 실행이 더 빠르고 정확해지며, 의식적 노력 없이도 자동으로 수행할 수 있게 된다.
이 과정이 충분히 진행되면 신경 효율성이 나타난다. 전문가의 뇌는 같은 작업을 수행할 때 초보자보다 더 적은 영역을 활성화하는데, 이것은 뇌과학 연구에서 가장 일관되게 확인되는 발견 중 하나다. 더 적게 일하면서 더 나은 결과를 내는 것, 그것이 바로 직관이라고 불리는 추상적인 표현의 신경학적 실체에 가깝다.
즉, 의식적 추론 없이 빠르게 좋은 판단을 내릴 수 있는 능력은 수많은 반복과 고통의 결과물이고 이 과정에 지름길은 없다.
이것은 마치 운동과도 비슷하다. 운동선수가 근력을 키우려면 근육에 부하를 걸어야 한다. 너무 가볍지도, 너무 무겁지도 않은 적절한 무게를 들며 근육에 부하를 주다보면 어느새 근육이 손상되며 점점 성장하게되고 어느새 더 무거운 무게를 칠 수 있게 된다. 뇌도 마찬가지다. 현재 능력의 경계 근처에서 직접 씨름해야 성장이 일어난다.
전문가는 하나의 청크에 담을 수 있는 양이 다르다
뇌과학에서 전문성을 설명할 때 빠지지 않는 또 하나의 중요한 개념이 청킹이다.
인간의 작업 기억 용량은 약 3~4개의 청크로 제한되는데, 사실 청크의 개수 제한은 초보자나 전문가나 동일하다. 작업 기억의 슬롯 수 자체는 훈련으로 늘릴 수 없다고 한다.
그렇다면 전문가와 초보자의 차이는 어디에서 오는 것일까? 답은 하나의 청크에 담을 수 있는 정보의 양이 다르다는 데 있다.
체스 전문가를 대상으로 한 체이스와 사이먼(Chase & Simon)의 연구가 이를 보여준다. 연구진은 체스 고수와 초보자에게 실제 게임에서 나올 법한 보드 배치를 5초간 보여준 뒤, 기억에 의존해서 재현하게 했다. 고수들은 초보자보다 훨씬 더 많은 말의 위치를 정확하게 재현했다. 여기까지는 “기억력이 좋으니까”로 설명할 수 있을 것 같다.
하지만 결정적인 대조 실험이 있었다. 말을 무작위로 배치했을 때, 고수와 초보자의 재현 능력 차이가 거의 사라진 것이다. 고수들이 기억한 것은 개별 말의 위치가 아니라, 의미 있는 패턴이었다. “시실리안 디펜스의 전형적인 중반 배치”같은 것을 하나의 청크로 인식했기 때문에, 같은 3~4개의 작업 기억 슬롯으로 훨씬 많은 정보를 담을 수 있었던 것이다.
시실리안 디펜스는 백의 공격적인 오프닝에 대응하는 유명한 카운터 오프닝이다
코딩에서도 정확히 같은 메커니즘이 작동한다. 숙련된 개발자는 for문과 배열 접근과 조건 분기를 각각 별도의 정보로 처리하지 않는다. 그것을 “필터링 패턴”이라는 하나의 청크로 압축해서 인식한다. try-catch와 에러 타입 분기와 로깅을 “에러 핸들링 패턴”이라는 하나의 청크로 본다.
그래서 같은 코드를 보더라도 작업 기억에 여유가 있고, 그 여유를 더 높은 수준의 판단에 쓸 수 있다. 이를테면 “이 함수의 책임 범위가 너무 넓은 건 아닌지”, “이 의존성 방향이 맞는지” 같은 구조적 질문에 인지 자원을 할당할 수 있는 것이다.
그렇다면 이 청크는 어떻게 만들어지는 것일까? 직접 코드를 작성하고, 디버깅하고, 리팩토링하는 과정에서 특정 패턴을 반복적으로 마주치면서 뇌가 그 패턴을 하나의 단위로 묶기 시작한다. 이 과정에서 전두엽 피질과 기저핵의 회로가 함께 작동한다는 것이 최근 연구에서 확인되었다.
패턴을 “안다”는 것과 패턴이 “체화되었다”는 것은 다른 문제이다. 전자는 명시적 기억이고 후자는 절차 기억이다. 코드 리뷰에서 구조적 문제를 빠르게 포착하려면 후자가 필요하다.
이 두 가지의 차이는 실제 업무에서 극명하게 드러난다. “useEffect의 클린업 함수가 왜 필요한가요?”라는 질문에 교과서적으로 완벽하게 답할 수 있는 사람이, 코드 리뷰에서 아래와 같은 컴포넌트를 보고도 문제를 놓치는 경우가 있다.
function useNotificationCount({ userId }: { userId: string }) {
const [count, setCount] = useState(0);
useEffect(() => {
const interval = setInterval(async () => {
const notifications = await fetchNotifications(userId);
setCount(notifications.unread);
}, 5000);
}, []);
return count;
}이 컴포넌트에는 두 가지 문제가 있다. clearInterval이 없어서 컴포넌트가 언마운트된 뒤에도 인터벌이 계속 실행되고, userId가 의존성 배열에 빠져 있어서 userId가 바뀌어도 이전 사용자의 알림을 계속 polling하게 된다.
“useEffect는 클린업 함수를 반환해야 하고 의존성 배열을 정확히 채워야 한다”는 걸 명시적 지식으로는 알고 있지만, 코드를 보는 순간 반사적으로 “여기 인터벌 정리 안 했는데”, “userId가 deps에 없네”라는 감각이 드는 수준의 절차 기억은 형성되지 않은 상태인 것이다. 이 감각은 직접 스테일 클로저 버그를 만들고, 언마운트 이후에도 살아있는 인터벌을 디버깅하고, 원인을 찾아본 사람에게만 생긴다.
물론 이 글에서 인용한 연구들은 대부분 코딩이 아닌 일반적인 학습 맥락에서 수행된 것이다. 코딩이라는 특수한 인지 활동에 이 결과들을 직접 적용하는 데는 한계가 있을 수 있다. 하지만 바람직한 어려움, 생성 효과, 절차 기억 형성의 원리는 영역 특수적이라기보다 인간 인지의 일반적 특성에 가깝고, 코딩이라는 활동이 이 원리에서 예외라고 볼 근거는 현재로서는 없다.
AI는 이 과정을 방해한다
AI에게 구현을 맡기면 개발자는 직접 코드를 고민하고 작성하는 과정을 건너뛰게 된다. 변수명을 뭘로 할지, 이 로직을 어떤 순서로 풀어낼지, 이 함수의 인터페이스를 어떻게 잡을지, 에러 처리를 어디서 할지. 이런 사소하지만 반복적인 판단들이 사실은 코드 패턴을 체화하는 핵심 과정인데, AI가 그 과정을 대신하는 순간 뇌에 걸리는 인지적 부하가 급격히 줄어든다.
본질적 부하까지 대신해버린다
물론 인지적 부하가 줄어드는 것 자체는 나쁜 것이 아니다. 인지 부하 이론에 따르면, 학습에서 중요한 것은 부하의 종류다. 스웰러는 인지 부하를 세 가지로 구분했다. 과제 자체의 복잡성에서 오는 내재적 부하, 잘못된 학습 설계에서 오는 외재적 부하, 그리고 스키마 구축을 직접 돕는 본질적 부하.
AI가 줄여주는 것이 외재적 부하, 즉 보일러플레이트 작성이나 문법 실수 교정 같은 것이라면 오히려 학습에 도움이 될 수 있다. 하지만 AI가 본질적 부하까지 줄여버린다면, 뇌가 스키마를 구축할 기회 자체가 사라지는 것이다.
문제는 현실에서 이 두 종류의 부하를 깔끔하게 분리하기 어렵다는 데 있다. AI에게 “이 함수를 구현해줘”라고 하면, AI는 보일러플레이트만 대신 작성하는 것이 아니라 핵심 로직의 설계 판단까지 대신한다. 어떤 자료구조를 쓸지, 어떤 순서로 처리할지, 에러 케이스를 어떻게 다룰지. 이 판단들이 바로 본질적 부하에 해당하는 것들인데, 이것까지 AI에게 맡겨버리면 뇌에는 거의 아무것도 남지 않게 된다.
절차 기억의 관점에서 보면, AI가 구현을 대신해주면 인지 단계에서 직접 끙끙대며 코드를 작성하는 시간이 줄어들기 때문에 연합 단계로의 전환이 지연되고, 결과적으로 자동화 단계에 도달하기 어려워진다.
청킹의 관점에서도 마찬가지다. 직접 패턴을 구성하고 조합하는 과정 없이 완성된 코드를 읽기만 하면, 개별 패턴을 인식할 수는 있지만 그것을 자신만의 청크로 압축하는 경험이 부족해진다. 마치 체스 교본만 읽고 실전을 뛰지 않는 것과 비슷하다.
특히 주니어 개발자에게 이 문제는 심각할 수 있다. 아직 인지 단계에 있는 패턴들이 많은 상태에서 AI가 그 단계를 건너뛰게 해주면, 겉으로는 빠르게 결과물을 내고 있지만 뇌 안에서는 아무런 절차 기억도 형성되지 않는 상태가 될 수 있기 때문이다.
AI가 코드를 대신 작성해주는 상황은 생성 효과 실험에서 완성된 단어 쌍을 그냥 읽는 것에 가깝다. 코드가 눈앞에 있으니 이해한 것 같은 느낌은 든다. 로직을 따라가며 “아, 이렇게 하면 되는구나”라고 고개를 끄덕일 수 있다.
하지만 직접 생성하지 않았기 때문에 기억에 깊이 각인되지 않는다. 다음에 비슷한 문제를 만났을 때 “분명 본 적이 있는데 기억이 안 나는” 상태에 빠지기 쉽다. 앞서 이야기한 유창성의 착각이 여기서도 작동하는 것이다.
물론 AI가 만든 코드를 읽는 것이 완전히 수동적인 행위는 아니다. 코드의 의도를 파악하고 실행 흐름을 추적하는 과정에서 어느 정도의 인지적 노력이 필요하기는 하다.
하지만 숙련된 개발자일수록 코드를 읽을 때의 뇌 활성화 수준이 낮아진다는 것이 연구를 통해 확인되어 있다. 신경 효율성이라고 불리는 이 현상은, 전문가가 더 적은 인지 자원으로 더 빠르게 코드를 처리한다는 것을 의미한다. 효율적으로 처리한다는 것은 곧 그만큼 인지적 부하가 적다는 뜻이기도 하다.
즉, 숙련된 개발자가 AI의 출력을 읽는 행위는 생각보다 뇌에 부하를 많이 걸지 않는다.
그리고 초보 개발자의 경우, 코드를 읽으면서 부하가 걸리더라도 그것은 코드를 이해하는 데 쓰이는 부하이지 코드를 생성하는 과정에서 발생하는 부하와는 질적으로 다르다. 읽기만으로 새로운 패턴을 체화하기에 충분한 부하가 걸리지 않을 가능성이 있다는 것이다.
이 글을 읽는 독자 분들 중 일부는 AI가 짠 코드를 깊이 분석하고 리뷰하는 것만으로도 충분한 학습이 되지 않느냐고 할 수 있다. 물론 이것도 일리 있는 말이다.
하지만 여기에는 함정이 있는데, 뇌과학에서 말하는 학습의 핵심인 예측과 피드백이 빠져있기 때문이다. 직접 코드를 짤 때는 매 순간 다음엔 무엇을 쓸지 예측하고, 그것이 작동하는지 피드백을 받으며 시냅스를 수정한다. 반면 이미 완성된 AI의 코드를 읽는 행위는 예측의 과정이 생략된 사후 해석에 가깝다.
마치 해설지가 옆에 놓인 수학 문제를 푸는 것과 같다. 해설을 읽으면 이해는 가지만, 막상 시험장에서 백지를 마주하면 펜이 나가지 않는 이유는 인식(Recognition)의 회로와 인출(Retrieval)의 회로가 다르기 때문이다. 디테일을 스스로 결정해 본 고통의 총량이 청크의 밀도를 결정한다.
성장이 멈추는 경로의 마찰이 사라졌다
여기서 한 발 물러서서 더 넓은 그림을 보자. 성장이 멈추는 문제는 AI 이전에도 있었다. 앞서 이야기한 ‘1년짜리 경험을 10번 반복하는’ 패턴의 구체적인 모습이 무엇인지 살펴보자.
StackOverflow에서 답을 복사해서 붙여넣기만 하는 개발자. 프레임워크의 API는 익숙하지만 그 아래에서 무슨 일이 일어나는지 모르는 개발자. 같은 종류의 CRUD 코드를 5년째 반복하면서 연차만 쌓이는 개발자. 이 사람들의 공통점은 뇌에 충분한 부하를 걸지 않았다는 것이다.
StackOverflow에서 복사한 코드가 돌아가면 거기서 멈춘다. 왜 이 코드가 작동하는지, 다른 방법은 없었는지, 이 패턴의 트레이드오프는 무엇인지를 묻지 않는다. 프레임워크가 제공하는 추상화 위에서만 일하면 그 아래의 메커니즘에 대한 청크가 형성되지 않는다. 같은 패턴의 코드를 반복하면 자동화 단계에 도달하기는 하지만, 자동화 단계에 도달한 패턴의 범위가 좁으면 새로운 문제 앞에서 무력해진다.
이 모든 경우에서 작동하는 메커니즘은 사실 동일하다. 인지적 부하를 회피하면 절차 기억이 형성되지 않고, 청크가 만들어지지 않고, 결과적으로 성장이 멈춘다. AI가 등장하기 전에도 성장이 멈추는 경로는 충분히 열려 있었다.
그런데 AI는 이 경로의 마찰을 극적으로 줄여버렸다. StackOverflow 시절에는 그래도 검색하고, 여러 답변을 비교하고, 자기 상황에 맞게 수정하는 과정이 있었다. 이 과정에서 최소한의 인지적 부하가 걸렸다. 프레임워크에 의존하더라도 공식 문서를 읽고 예제를 따라 해보는 시간이 있었다.
하지만 AI는 맥락을 주면 바로 완성된 코드를 내놓는다. 검색도, 비교도, 수정도 필요 없다. “작동하는 코드”까지의 거리가 거의 0에 가까워진 것이다.
생산성 관점에서 이것은 혁명이다. 하지만 학습 관점에서 보면, 뇌에 부하가 걸릴 기회가 그만큼 줄어든 것이기도 하다. AI 이전에는 “편한 길”을 택하더라도 어느 정도의 마찰이 있었는데, AI는 그 마찰마저 제거해버렸다. 성장이 멈추는 경로로 미끄러져 들어가기가 이전보다 훨씬 쉬워진 것이다.
이 문제는 경력이 높다고 비껴가지 않는다. 다만 양상이 다를 뿐이다. 주니어 개발자에게 이 문제가 더 심각한 것은 사실이다. 절차 기억이 충분히 형성되지 않은 상태에서 AI가 그 형성 과정 자체를 건너뛰게 하면, 기초 체력이 없는 상태로 경력만 쌓이게 된다.
아직 운전을 배우는 중인 사람에게 자율주행차의 판단을 평가하라고 하는 것과 같다. 직접 핸들을 잡아보지 않은 사람이 자율주행의 실수를 감지하기는 어렵다.
하지만 시니어 개발자라고 해서 자유로운 것은 아니다. 기술은 계속 변하고, 새로운 언어, 프레임워크, 패러다임이 등장할 때마다 기존의 청크로는 처리할 수 없는 새로운 패턴을 만나게 된다.
이 새로운 패턴을 체화하려면 또다시 인지 단계부터 시작해야 한다. 시니어라서 이 과정이 면제되지 않는다. 새로운 것을 배울 때는 누구나 초보자다.
시니어의 장점은 기존의 추상화 능력을 활용해서 새로운 청크를 더 빠르게 형성할 수 있다는 것이다. “이건 백엔드의 미들웨어 패턴과 비슷하구나”처럼 기존 청크에 연결 지을 수 있다. 하지만 그 연결 자체도 직접 코드를 만져보면서 발견하는 것이지, AI의 출력을 읽으면서 자동으로 발견되는 것은 아니다.
결국 경력과 관계없이, AI 시대에도 직접 고민하고 코드를 만져보는 시간이 있어야 한다. 그렇다면 AI를 쓰면서도 그 시간을 어떻게 만들 수 있을까?
뇌에 부하를 거는 방법
결국 성장을 위한 핵심 원리는 하나다. 바로 뇌에 부하를 걸어야 한다는 것이다.
AI에게 코드를 맡기기 전에 먼저 자신의 설계안을 만들어두는 것은, 생성 효과를 의도적으로 활용하는 행위다. 자신의 답을 먼저 만들어두었기 때문에 AI의 출력을 단순히 소비하는 것이 아니라 비교하고 평가하게 된다. “내 설계와 뭐가 다른지”, “AI의 선택이 더 나은지, 내 선택이 더 나은지”를 판단하는 과정에서 뇌의 의미 처리와 실행 제어 영역이 동시에 활성화된다. 생성 효과 연구가 보여준 것과 같은 메커니즘이다.
리뷰를 진지하게 하는 것도 마찬가지다. “작동하니까 통과”로 넘기면 뇌에 부하가 거의 걸리지 않는다. 하지만 “왜 이 구조인가”, “6개월 뒤에 이 코드를 수정해야 한다면 어디가 문제가 될까”를 의식적으로 묻는 순간, 뇌는 작업 기억을 적극적으로 사용하기 시작한다. 이 과정이 귀찮고 시간이 걸리는 것은 당연하다. 바로 그 귀찮음이 비요크가 말한 바람직한 어려움이다.
직접 코드를 짜보는 시간을 만드는 것은 절차 기억 형성의 관점에서 대체 불가능하다. 앤더슨의 모델이 보여주듯, 인지 단계에서 연합 단계로, 연합 단계에서 자동화 단계로 전환되려면 반복적인 수행이 필요하다. 읽는 것으로는 이 전환이 일어나지 않는다.
30분 동안 끙끙대며 직접 짠 코드가 AI가 3초 만에 생성한 코드보다 기억에 더 깊이 남는 이유가 여기에 있다. 다만 막혀서 진전이 없을 때는 AI에게 힌트를 구하는 것도 하나의 전략이다. 핵심은 전체 답이 아니라 최소한의 정보만 얻는 것이다. 답을 받아 적는 것과 힌트를 토대로 직접 풀어내는 것은 뇌에 걸리는 부하가 완전히 다르다.
앞서 이야기한 바람직한 어려움의 요점이 바로 여기에 있다. 너무 쉬우면 부하가 걸리지 않고, 너무 어려우면 좌절만 남는다. AI를 통해 진입 장벽은 낮추되 핵심 판단은 직접 내리는 것, 그것이 적정 난이도를 유지하는 방법이다.
이 실천들의 공통점은 전부 귀찮다는 것이다. 당장의 생산성 관점에서는 비효율적이다. AI에게 맡기면 빠르게 끝날 일을 굳이 돌아가는 느낌이 든다.
물론 귀찮고 스트레스받겠지만 그런 스트레스도 필요하다.운동 많이 된다
생산과 학습의 최적 전략은 다르다. AI는 생산의 도구로는 탁월하지만, 학습의 도구로는 한계가 있다. 그리고 장기적으로 뇌에 남은 것들이 결국 코드 리뷰의 질을 결정하고, 설계 판단의 정확도를 결정하고, 역설적이게도 AI를 얼마나 잘 활용할 수 있는지를 결정한다.
이 훈련들이 쌓이면 결국 하나의 눈이 만들어진다. AI가 만든 코드를 보자마자 무엇이 잘못됐는지, 어디서 더 나은 선택이 가능한지를 감지하는 눈. 그것이 서두에서 이야기한 “출력물을 판단하고 교정하는 역량”의 실체다.
고통은 선택이 아니라 조건이다
이 글의 문제의식은 “AI가 나쁘다”는 것이 아니다. AI 이전에도 성장이 멈추는 개발자는 있었고, AI가 없어져도 그런 개발자는 있을 것이다.
핵심은 인지적 부하를 회피하면 성장이 멈춘다는, 뇌의 작동 방식에 내재된 구조적 제약이다. AI는 그 회피를 전례 없이 쉽게 만든 도구일 뿐이다.
필자는 이 문제가 개인의 의지력이 아니라 구조의 문제라고 생각한다. AI를 사용하면서도 성장할 수 있는 구조를 의식적으로 설계하지 않으면, 편한 쪽으로 흘러가는 것은 인간의 자연스러운 성향이다.
뇌는 기본적으로 에너지를 아끼려고 한다. 같은 결과를 더 적은 노력으로 낼 수 있다면 뇌는 당연히 그쪽을 선택한다. 이것은 의지가 약해서가 아니라, 뇌가 원래 그렇게 설계되어 있기 때문이다.
그래서 “AI를 쓰느냐 마느냐”가 아니라 “AI를 쓰면서 뇌에 부하를 어떻게 걸 것인가”가 진짜 질문이 되어야 한다고 생각한다. 편하게 일하는 것과 편하게만 일하는 것 사이에는 아주 큰 차이가 있다.
고통은 피하고 싶은 것이지만, 성장의 관점에서 보면 선택이 아니라 조건에 가깝다. AI가 아무리 발전해도 이 조건은 바뀌지 않는다. 뇌의 작동 방식이 바뀌지 않는 한.
그리고 AI를 잘 쓰는 사람이 살아남는 시대에, 역설적이게도 그 힘은 AI 없이도 판단할 수 있는 능력에서 나온다.