RicoCheese기술 뉴스와 기록
← 목록으로
뉴스2026-10-1612분

AI로 만들 때 나는 실제로 무엇을 배우는가 (What I Actually Learn When I Build With AI)

AI 코딩 도구로 기능을 빠르게 완성하는 것과 그 코드를 이해하는 것은 다르다. 개발자 Jessica Doering이 텍스트 에디터를 만들고 로컬 모델을 실험하며 깨달은 '배우는 개발'과 '끝내는 개발'의 차이를 정리했다.

What I Actually Learn When I Build With AI

개요 #

AI와 함께 밤새 기능을 여러 개 완성했는데, 정작 만든 것의 절반은 설명하지 못한다. 반대로 사소한 버그 하나를 붙잡고 몇 시간을 보낸 날은 오히려 더 많이 배운다. 개발자 Jessica Doering은 Dev.to에 올린 글에서 두 경험을 나란히 놓고 이렇게 말한다. 두 번 다 생산적이었고 두 번 다 돌아가는 코드가 남았지만, 배운 것은 전혀 달랐다고.

그는 AI 코딩 도구를 매일 쓰고, 좋아하며, 이 도구가 없었다면 시도조차 안 했을 프로젝트도 여럿 만들었다. 그런데도 "돌아가게 만드는 것"과 "어떻게 돌아가는지 아는 것"은 분명히 다르다고 강조한다.

본문 #

설명을 이해했다고 코드를 이해한 건 아니다 #

AI에게 코드 설명을 부탁하면 그럴듯한 답이 돌아온다. 읽다 보면 각 부분이 무슨 일을 하는지 다 따라갈 수 있고, '아, 알겠다' 싶어진다. 그런데 사흘 뒤 그 코드를 고치려고 열어 보면 처음 보는 코드처럼 낯설다.

누군가 옆에서 하나하나 짚어 줄 때 이해한 것과 스스로 아는 것은 다르다는 얘기다. 글쓴이는 문법이나 API 세부 사항을 외우자는 게 아니라고 선을 긋는다. 찾아보는 건 언제든 해도 된다. 중요한 건 왜 그렇게 구현했는지를 아는 것이다. 어떤 기능에 대해 기억나는 게 "AI가 짰고 돌아갔다"뿐이라면, 거기서 배운 건 거의 없다.

몰랐던 문제를 발견하는 순간 #

글쓴이는 Slate라는 텍스트 에디터를 만들고 있다. 이 프로젝트에서 그가 처음 마주한 질문은 이것이었다. "편집하는 도중에 저장하면 실제로 무슨 일이 일어날까?"

파일 저장은 간단해 보인다. 내용을 디스크에 쓰고, 저장됨으로 표시하면 끝이다. 하지만 저장이 진행되는 사이 사용자가 계속 타이핑한다면 어떨까. 디스크에 쓰이는 건 이전 내용인데 에디터에는 새로운 변경이 들어와 있다. 저장이 끝나고 에디터가 '저장 안 됨' 표시를 지워 버리면, 실제로는 저장되지 않은 내용까지 저장됐다고 사용자에게 알리는 셈이 된다.

Slate는 이 문제를 리비전 기반 저장 추적(revision-based save tracking)으로 해결한다. 저장을 시작할 때 문서의 몇 번째 리비전을 저장하는지 기억해 두고, 저장 중에 생긴 변경은 저장된 것으로 처리하지 않는다.

AI에게 맡겼다면 이 로직도 금방 완성됐을 것이다. 저장 버튼을 눌러 보고, 잘 되네 하고 넘어갔을 수도 있다. 하지만 글쓴이에게 남은 건 코드 자체가 아니라 하나의 감각이다. 작업이 시작된 시점과 끝나는 시점 사이에 상태가 바뀔 수 있다는 것. 이 문제는 텍스트 에디터뿐 아니라 어떤 애플리케이션에서든 다시 나타날 수 있다.

설명을 듣는 것보다 직접 실험하는 것 #

로컬 AI 모델을 다룰 때도 비슷한 경험을 했다. 모델을 돌렸더니 결과가 나오는 데 30초가 걸렸다. 그럼 느린 걸까?

그는 여기서 질문을 쪼갠다. 30초 중 대부분이 모델을 메모리에 올리는 시간이었나? 실제 처리 자체가 느렸나? 두 번째로 돌리면 훨씬 빨라질까? 이런 것들은 모두 직접 확인할 수 있다.

다시 돌려 보고, 구간별로 따로 재 보고, 무언가를 바꿔 보고, 결과를 지켜본다. 예상대로 나올 때도 있지만 전혀 다른 결과가 나올 때도 있고, 대개 그때부터 재미있어진다. AI에게 다음에 뭘 시도해 볼지, 왜 예상과 다른지 물어보는 것도 큰 도움이 된다. 다만 AI가 "이렇게 될 것"이라고 설명하는 것과 실제로 어떻게 되는지 눈으로 보는 것은 다르다. 그리고 AI의 설명이 틀릴 때도 있다.

종이에 적힌 손글씨 메모 Photo by Bich Tran on Pexels

코드는 잊어도 문제는 기억에 남는다 #

글쓴이가 꼽은 가장 큰 깨달음은 이것이다. 시간을 들여 제대로 이해한 것은 나중에 구현 세부까지 기억나지 않더라도, 어떤 문제를 풀려고 했고 왜 그렇게 풀었는지는 남는다. 그리고 그 기억은 다른 프로젝트로 이어진다.

  • 이 비동기 작업이 사용자가 뭔가를 바꾼 뒤에 끝나 버리면 어떻게 될까?
  • 이 성능 문제는 사실 시작(startup) 단계의 문제가 아닐까?
  • 지금 저장하고 있는 이 상태값, 다른 값에서 계산해 낼 수 있지 않을까?

여전히 찾아봐야 할 수도 있고, 구현은 AI에게 맡길 수도 있다. 그래도 무엇을 찾아야 하는지, 그게 왜 중요한지는 안다. 생성된 코드를 별생각 없이 받아들이면 이 과정이 통째로 빠진다. 해답이 프로젝트 안에 버젓이 있는데도, 다른 곳에서 같은 문제를 만났을 때 알아보지 못한다. 글쓴이는 새 프로젝트를 자주 시작하는 편이라 "아마 다음 주쯤" 그런 일이 생길 거라고 덧붙인다.

모든 걸 공부 거리로 만들 필요는 없다 #

물론 균형도 필요하다. 버튼 패딩 하나 고치자고 CSS 여백 원리를 45분씩 파고들 이유는 없다. 보일러플레이트, 반복 작업, 이미 수백 번 해 본 일, 그냥 하기 귀찮은 일은 기꺼이 AI에게 맡긴다. 애초에 이런 도구를 쓰는 이유이기도 하다.

다만 낯선 걸 만들 때, 혹은 나중에 계속 유지보수해야 할 기능을 다룰 때는 조금 더 깊이 개입하려고 한다. 질문을 던지기도 하고, 이것저것 바꿔 가며 반응을 보기도 한다. 그가 권하는 간단한 방법 하나는 실행하기 전에 결과를 먼저 예측해 보는 것이다. 예측이 빗나가면, 그때부터 파고들 거리가 생긴다.

매번 이렇게 하냐고 물으면 그의 대답은 "절대 아니다"다. 두 시간 동안 같은 문제를 붙잡고 있다가 AI가 마침내 해결해 주면, 머릿속엔 "고마워, 드디어, 다음"밖에 없을 때도 있다. 그걸 부정할 생각은 없다고 한다. 다만 지금 배우고 있는지, 그냥 일을 끝내고 있는지는 의식하려고 노력한다. 둘이 늘 같은 건 아니기 때문이다.

진척과 학습을 혼동하기 쉽다 #

글쓴이가 AI 코딩 도구에서 가장 좋아하는 점은, 잘 모르는 분야에도 선뜻 손을 대게 된다는 것이다. 처음 써 보는 언어와 프레임워크, 로컬 모델, 데스크톱 앱까지, 예전 같으면 미뤘을 것들을 실험해 봤다. 배울 능력이 없어서가 아니라 완전히 낯선 걸 시작하는 데 드는 품이 커서 미뤄 왔던 것들이다. AI가 그 첫 번째 문턱을 크게 낮춰 준다.

하지만 그만큼 계속 만들기만 하고 싶은 유혹도 크다. 기능 하나가 돌아가면 다음 기능으로, 또 그다음으로. 정신을 차려 보면 앱 하나가 완성돼 있는데, 꽤 중요한 부분에 대한 이해는 흐릿하다. 그렇게 쌓인 진척을 학습으로 착각하기 쉽고, 그 자신도 여러 번 그랬다고 털어놓는다.

오래 남는 건 대개 조금이라도 직접 파고들었던 것들이다. 예상과 다르게 동작했거나, 왜 그렇게 되는지 궁금해서 시간을 들였던 것들. 몇 분이면 끝날 때도 있고, 밤새 깊은 구멍으로 빠져들 때도 있다. 어느 쪽이든 한 번에 완벽하게 돌아간 기능보다 훨씬 오래 기억에 남는다.

그는 AI 도구를 그만 쓰거나 일부러 일을 어렵게 만들 생각은 없다. 다만 얼마나 많이 만들 수 있는지에 빠져서, 그 과정에서 무엇을 배우고 있는지 놓치고 싶지 않을 뿐이다. 글은 독자에게 질문을 던지며 끝난다. AI와 함께 만들다가 이제는 스스로 문제를 해결하거나 설명할 수 있게 된 것이 있는지, 혹은 AI가 짠 코드를 다시 열어 봤다가 어떻게 돌아가는지 전혀 몰랐던 경험이 있는지.


이 글은 위 출처를 바탕으로 한국 독자를 위해 재작성한 기사입니다. 원문의 사실과 수치에 근거하며, 별도의 견해를 포함하지 않습니다.

댓글GitHub Discussions