“개발자 진짜 다 짤리는 거 아니야?”
점심시간, 동료가 폰 화면을 내밀었다.
AI가 혼자 만든 웹 데모 영상.
“이거 프롬프트 하나로 나왔대.”
요즘 유튜브를 켜면 숨이 막힌다.
”이제 코딩 공부하지 마세요”, “개발자 99%는 대체됩니다.”
개발자가 되기 위해 보낸 긴 시간들이 있었다.
밤을 새워가며 로직을 짜고, 원인 모를 버그와 씨름하며 느꼈던 좌절과 성취감 같은 것들.
하지만 이제 그 숙련의 과정이 이전과는 다른 의미를 갖게 된 것 같다.
코딩을 전혀 모르는 이가 입력한 프롬프트 한 줄이,
내가 며칠을 고민하던 결과물을 몇 초 만에 뽑아내는 것을 보며 묘한 허탈감이 든다.
직접 확인하고 싶었다.
이것이 단순한 공포 마케팅인지. 아니면 당장 눈 앞에 닥친 미래인지.
AI한테 내가 전혀 모르는 영역을 시키면, 진짜로 ‘딸깍’으로 되는 건지.
그래서 직접 해보기로 했다.
의도적 무지
예전부터 관심은 있었지만, 단 한 번도 배워본 적 없는 3D 프로그래밍.
완벽한 무지(無知)의 상태.
목표는 심해를 유영하는 3D 해파리 모델링.
Google에서 해파리 사진을 하나 저장했다. jellyfish.png

터미널을 켰다.
”jellyfish.png 참고해서 3D 해파리 모델링 프로그래밍 해줘”
AI가 단숨에 생성한 천 줄을 넘기는 방대한 코드 덩어리와, 알수없는 정체불명의 GLSL Shader 파일 11개. 압도적이었다. 하지만 문제는 따로 있었다.
이 방대한 코드가 쓰레기인지 정답인지, 다른 더 좋은 방안이 있는지,
나로서는 판독할 길이 없다는 것.
Trash in, Trash out
화면에는 의도와는 다른 기묘한 움직임의 결과물이 나타났다.
해파리의 형태를 기대했지만, 구현된 것은 부자연스럽게 뒤틀린 Mesh에 가까웠다.
3D 프로그래밍에 대한 도메인 지식이 없다 보니,
AI에게 무엇이 잘못되었는지 구체적으로 피드백하거나
수정을 요청하는 것조차 불가능했다.
“좀 더 자연스럽게."
"아니, 그거 말고.”
내가 줄 수 있는 피드백의 전부였다.
기적은 없었다. 버그가 쏟아졌다. 해파리 촉수가 기괴하게 비틀렸다.
”좀 이상하게 도는데.”
브라우저 탭을 잠시 비웠다 돌아오면 해파리 속도가 비정상적으로 튀었고, 물리 연산 자체가 터져버렸다. 원인을 몰랐다.
AI가 뱉은 코드가 해결책인지, 누더기 땜질인지 구분할 안목조차 없었다.
수정한 코드에선 또 다른 버그가 터졌다.
하나의 오류를 수정하면 예상치 못한 곳에서 또 다른 문제가 불거지는 악순환이 반복되었다. 동작 원리에 대한 근본적인 이해 없는 땜빵 코드는 전체 구조를 빠르게 오염시켰고, 시스템은 점차 제어할 수 없는 상태로 변해갔다.
다음 날 ‘Verlet Integration’을 밑바닥부터 공부하고 나서야 진짜 원인을 도려내고 땜빵을 걷어낼 수 있었다.
“제대로 된 피드백을 줄 수 있는 힘은
결국 기본기와 도메인 지식에서 나온다.”
Middle-out
결국 공부해야 했다. 문제는 방식이었다.
첫 번째는 Bottom-up 접근.
선형대수와 WebGL 명세서부터 훑어 나가는 Bottom-up 방식은 확실하지만, 그만큼 막대한 시간 비용이 발생한다. 기약 없는 학습에 무작정 매몰되는 것은 현실적으로 효율이 너무 낮은 선택이었다.
두 번째는 Top-down 접근.
AI가 생성한 결과물에서 출발해 코드를 역추적하며 로직을 분석하는 방식이다. 하지만 이는 근본적인 원리보다 파편화된 코드에 의존하게 만들 뿐이었다. 결국 기술적 주도권 없이 AI가 내놓는 결과물을 받아쓰는 수준을 벗어나지 못할 게 뻔했다.
내가 택한 대안은 Middle-out 접근이었다.
이미 숙련도가 있는 React를 베이스로 삼고, 진행 중 막히는 지점에서만 이론을 찾아 공부했다. 정석적인 학습과 빠른 구현 사이의 균형을 맞추기 위한 현실적인 선택이었다.
원인을 알 수 없는 3D 렌더링 버그가 터지면 필요한 부분의 GLSL 강의만 골라 들었다. 처음부터 끝까지 완독하기보다, 당장의 문제를 해결하는 데 필요한 지식부터 습득하며 코드를 고쳐 나갔다.
도메인 지식을 공부할 수록, 질문은 점점 구체적으로 변했다.
”왜 안 보여”에서 “Transmission render path 속성 확인해줘”로 질문의 수준이 달라졌다.
5주, 47커밋
돌아보면 아는 지점(React)을 중간 축으로, 위로는 AI를 활용해 구현 속도와 생산성을 챙기고, 아래로는 WebGL이나 물리 같은 근본적인 원리를 파고드는 흐름이었다.
GitHub: diver-jay/r3f-drei-water-caustics-effect
직접 해보니 막연한 두려움은 사라지고 실체만 남았다.
AI는 내가 모르는 걸 대신 짜주지만, 내가 모르면 “그거 말고”밖에 할 수 없다.
구현의 생산성은 AI로 보완할 수 있어도, 무엇을 어떻게 만들지 결정하는 주도권은 결국 개발자에게 있다.
결국 바뀐 것은 학습의 방향,
그리고 AI가 내놓는 결과물을 검증하고 통제하는 방법
앞으로의 기술 변화가, 이제는 두렵지 않고 기대된다.