AI는 완벽한데 내 서비스는 왜 엉망이 될까? 개발자의 '지질학'적 사고가 필요한 이유
2026. 4. 11.
AI는 완벽한데 내 서비스는 왜 엉망이 될까? 개발자의 '지질학'적 사고가 필요한 이유
"당신의 지질학이 항상 지구물리학을 지배한다."
교수님께서 이 말씀을 하셨을 때, 저는 그저 노트에 받아 적었을 뿐 그 깊은 의미를 온전히 이해하지 못했습니다. 하지만 지금은 아닙니다. 10년이 넘는 IT 실무와 테크 블로깅 경험을 통해, 이 말이 얼마나 중요한 진실인지 뼈저리게 느끼고 있습니다.
그가 의미했던 것
나이지리아 오웨리 연방기술대학교에서 수직 전기 탐사(VES)를 공부하던 시절이었습니다. VES는 땅을 직접 파보지 않고도 지하를 읽어내는 방법입니다. 땅에 전류를 흘려보내고, 그 전류가 어떻게 돌아오는지 측정해서 저항 곡선을 통해 지하의 지질을 추론하죠. 완벽한 방법이었고, 수십 년간 현장에서 사용되어 온 교과서적인 기술이었습니다.
하지만 이 기법에는 치명적인 가정이 숨어있습니다. 땅속 지층이 수평적이고, 균질하며, 예측 가능한 형태로 안정되어 있다는 전제였죠. 이런 조건 하에서는 공식이 완벽하게 작동합니다. 숫자만 입력하면 모델이 나오고, 그 결과는 신뢰할 만하다고 배웠습니다.
문제는 나이지리아의 기반암 지대는 수평적이지도, 균질하지도 않다는 데 있었습니다. 오히려 복잡하게 파쇄되어 있고, 측면 변화가 심하며, 데이터만으로는 알 수 없는 구조적 변동성으로 가득하죠. 아무리 완벽하게 VES 탐사를 수행해도 마른 우물을 팔 수 있다는 뜻입니다. 방법론 자체가 틀린 게 아니라, 그 데이터가 파생된 '지질학'적 환경을 제대로 탐문하지 않고 맹신했기 때문이죠.
지질학은 항상 우선합니다. 지구물리학은 당신이 그것이 작동하는 조건을 이미 이해하고 있을 때에만 그곳에 무엇이 있는지 말해줍니다. 이 단계를 건너뛰면, 결과는 자신감 있게 '틀린' 답을 내놓게 됩니다.
한 학기 내내 교실에서 이 교훈을 배웠습니다. 그리고 나이지리아 지질조사국에서 6개월간 인턴 생활을 하면서 현장에서 이 일이 실제로 벌어지는 것을 목격했죠. 고체 광물 탐사, 실제 지형, 그리고 돌아오는 결과들은 모델을 확인해주거나, 혹은 당신의 가정이 틀렸음을 알려주었습니다.
그때는 몰랐습니다. 제가 AI와 함께 일하는 방법을 배우고 있었다는 것을요.
다른 모습으로 반복되는 동일한 실패
저는 지난 몇 년간 포트하커트에서 다양한 프로덕션 시스템을 구축해왔습니다. Cloudflare Workers, RAG 파이프라인, MCP 서버, 그리고 요청당 대역폭 비용이 만만치 않은 사용자들을 위한 엣지 인프라까지 말입니다.
그리고 똑같은 실패가 다른 코드 옷을 입고 반복되는 것을 계속 지켜봐 왔습니다.
개발자는 AI가 생성한 결과물을 받습니다. 보기엔 완벽하고, 테스트도 통과하죠. 프로덕션에 배포합니다. 그리고 실패합니다. 파국적인 오류는 아니지만, 미묘하게 잘못 작동하며 며칠 밤낮을 새워야 겨우 추적 가능한 문제를 일으키죠.
모델이 고장 난 것도 아니었고, 공식도 완벽했습니다. 단지 '지질학'이 달랐을 뿐이죠.
AI는 훈련 데이터가 파생된 환경, 즉 풍부한 컴퓨팅 자원, 빠른 네트워크, 관대한 인프라, 전력 공급이 안정적인 도시의 고속망 사용자들을 위한 결과물을 내놓습니다. 이것이 바로 AI가 가정하는 '지질학'입니다. 대부분의 경우, 누구도 이 가정을 명시적으로 언급하지 않습니다. 누구도 이를 의심하지 않죠. 출력물은 자신감 있게 도착하고, 우리는 그것을 '진실'로 취급합니다.
제가 실무에서 이 부분을 처음 접했을 때의 당황스러움은 잊을 수 없습니다. 분명히 AI가 제안한 아키텍처는 기술적으로 완벽했고, 논리적 오류도 없었거든요. 그런데 막상 나이지리아 사용자들을 위한 VPN 서비스를 구축하려니 전혀 작동하지 않았죠. AI의 제안은 '가정된 지질학'에는 정확했지만, 제가 마주한 '실제 지질학'에는 완전히 틀린 것이었습니다. 린터(linter)로는 찾을 수 없는 버그가 아니라, 모델이 세상에 대해 가정한 것과 세상의 실제 모습 사이의 불일치였죠.
가정된 지질학과 실제 지질학 사이의 이 간극이야말로 프로덕션 실패가 도사리고 있는 곳입니다.
컴퓨터 공학과에서 가르쳐주지 않는 VES 교훈
VES는 1980년대와 90년대에 전문 분야로서 거의 사장될 뻔했습니다.
물리학 이론이 틀렸기 때문이 아닙니다. 물리학은 정확했죠. 하지만 실무자들이 계속해서 나쁜 결과를 얻었기 때문입니다. 자신감 있는 측정값을 토대로 우물을 팠지만, 모두 마른 우물이었으니까요. 고객들은 이 방법론을 신뢰하지 않게 되었고, 평판은 나락으로 떨어졌습니다.
사후 분석은 놀랍도록 단순했습니다. 공식은 정확했지만, 가정이 틀렸던 것입니다. 지구물리학자들은 수평적 균질성을 요구하는 방법을 수평적으로 균질하지 않은 지형에 계속 적용해왔던 것이죠. 모델은 엄격했지만, 지질학이 불편했던 것입니다.
그들은 문제를 해결했습니다. 더 나은 현장 프로토콜을 만들고, 가정을 명시적으로 확인하며, 탐사 결과에 전적으로 의존하기 전에 '현장 확인(ground-truthing)'을 거치기 시작한 거죠. 그제야 이 방법론은 회복될 수 있었습니다. 자신감 있는 결과물이 '올바른' 결과물과 같지 않다는 사실을 현장이 인정하고 나서야 가능했던 일입니다.
우리는 지금 AI와 관련하여 바로 그 지점에 서 있습니다.
모델은 엄격하고, 결과물은 자신감이 넘칩니다. 그리고 우리는 그 결과물이 살아남아야 할 '지질학', 즉 실제 환경, 실제 사용자, 실제 제약 조건을 제대로 탐문하지 않은 채 프로덕션에 배포하고 있습니다.
벤 산토라(Ben Santora)는 LLM의 추론 실패를 드러내기 위한 논리 퍼즐로 스트레스 테스트를 해왔습니다. 그의 발견은 이렇습니다. 대부분의 모델은 '해결사(solver)'이지 '심판(judge)'이 아니라는 것입니다. 그들은 그저 답을 내놓을 뿐, 가정된 조건이 실제 문제와 일치하지 않을 때 플래그를 달아주지 않습니다.
"해결사(solver)의 결과물이 이를 검증할 강력하고 독립적인 심판(judging) 계층 없이 재활용될 때 지식 붕괴가 발생한다."
그 심판 계층의 역할은 바로 '지질학자'의 몫입니다. 언제나 그래왔듯이요.
현장 작업이 실제로 훈련하는 것
2015년 NGSA(나이지리아 지질조사국)에서 산업 실습을 했습니다. 고체 광물 탐사. 실제 현장 조건. 실험실에서는 광물학을, 현장에서는 VES를 다뤘죠.
현장 작업이 이론 수업과 다른 점은 이겁니다. 모델과 현실 사이의 간극을 실시간으로 눈으로 보게 만든다는 것입니다. 측정값을 얻고, 저항 곡선을 기록하고, 해석을 수행합니다. 그리고 다음 날 다시 가서 우물을 팠을 때 물이 나오는지, 아니면 마른 우물인지 직접 확인하죠.
모델, 예측, 현장 진실, 그리고 그에 대한 평가로 이어지는 이 피드백 루프는 해석을 '가볍게' 받아들이는 본능을 길러줍니다. 방법론 자체를 불신하는 것이 아니라, 그 기저의 가정을 의심하는 법을 배우는 것이죠.
사실 최근에 제가 만든 SEO 감사 에이전트를 제 블로그 콘텐츠에 직접 돌려봤을 때도 비슷한 경험을 했습니다. 7개의 URL 중 7개가 'FAIL'을 띄웠을 때 전혀 놀라지 않았죠. 제가 에이전트를 만들었고, 무엇을 확인하는지 알고 있었기에 저 자신에게 먼저 테스트하는 것이 가장 신뢰할 수 있는 데모라고 생각했거든요. 에이전트는 옳았고, 세 개의 freeCodeCamp 튜토리얼은 메타 설명이 깨져 있었고, 두 개의 DEV.to 글 제목은 구글에서 깔끔하게 렌더링하기에는 너무 길었습니다.
이런 반사적인 습관, 즉 결과물을 신뢰하기 전에 의심하고 질문하는 태도는 자바스크립트 튜토리얼에서 배운 것이 아닙니다. 그것은 모델과 일치하지 않는 지형에 서서, 왜 그런지 설명해야 했던 경험에서 비롯된 것입니다.
작년 2월 'The Foundation'의 클립보드 캡처 기능을 배포했을 때도 마찬가지였습니다. 워크플로우는 완벽해 보였고, 문서화하고, 글을 쓰고, GitHub에 배포했죠. 하지만 결과는 처참했습니다. 오직 사용자 메시지만 캡처하고, AI 응답과 화면에 보이지 않는 모든 내용이 누락되었으니까요. 제가 기능을 만들었던 속도와 똑같이 빠른 속도로 검토했죠. '지질학'이 불편했던 겁니다. 확인하지 않았던 거죠.
5일 후 저는 공개적으로 글을 썼습니다. "The Foundation을 야심 차게 시작했지만, 범위가 너무 넓다는 것을 과소평가했습니다." GitHub 이슈가 아니라 DEV.to에 말이죠. 우물이 말랐다면, 그대로 말해야 합니다.
관점의 전환
소프트웨어 개발 분야에서 AI에 대한 대화는 계속해서 엉뚱한 질문에 머물러 있습니다.
"모델이 유능한가?"라고 묻지 마세요.
모델은 유능합니다. 그게 문제가 아닙니다.
진짜 질문은 이겁니다. "모델이 당신의 '지질학'을 알고 있는가?"
AI 생성 코드는 가정된 환경에 최적화되어 있습니다. 충분한 RAM, 안정적인 연결성, 고속 네트워크 사용자, 오류에 관대한 인프라 같은 것들 말이죠. 대부분의 경우, 누구도 이 가정을 명시적으로 언급하지 않습니다. 훈련 데이터에 내재되어 있다가, 결과물이 자신이 만들어진 지형과 다른 환경을 만났을 때 비로소 그 존재를 드러내죠.
이 문제를 간파하는 개발자들은 반드시 가장 숙련된 이들이 아닙니다. 그들은 어딘가에서, 무엇인가를 통해 '측정치를 신뢰하기 전에 지질학을 파악하는' 법을 배운 이들이죠.
현장에서는: 측정치를 신뢰하기 전에 지질학을 파악하라. 프로덕션에서는: 결과물을 신뢰하기 전에 환경을 명확히 정의하라.
같은 질문. 다른 표면.
비(非) 전공 배경이 실제로 이전되는 것
제가 계속 듣는 주장은 이렇습니다. "배경은 중요하지 않다, 코드는 코드일 뿐이다." 틀렸습니다. 그리고 핵심을 놓치고 있는 말이죠.
지구물리학에서 전이되는 것은 구문 지식이 아닙니다. 그것은 '사전 질문'입니다. 결과물을 신뢰하기 전에 던져야 하는 바로 그 질문이죠.
컴퓨터 과학 교육은 코드가 올바른지 평가하는 방법을 가르칩니다. 하지만 가정된 조건이 실제 조건과 일치하는지 묻는 본능을 훈련시키지는 않죠. 그 본능은 모델과 현실의 간극이 명확하고, 값비싸며, 즉각적으로 자신의 책임으로 돌아오는 분야에서 나옵니다.
이 '배짱'은 어딘가에서 나옵니다. 어떤 이에게는 고통스러운 프로덕션 실패에서, 어떤 이에게는 좋은 멘토에게서 오죠. 저에게는 오웨리에서 평생 잊을 수 없는 한 문장을 던져준 교수님에게서 왔습니다.
당신의 지질학이 항상 지구물리학을 지배한다.
모델은 당신의 지형을 알지 못합니다. 이것은 그저 기다리면 해결될 제약이 아닙니다. 당신이 직접 메워야 할 간극입니다. 매번, 배포하기 전에 말이죠.
원문: https://dev.to/dannwaneri/the-formula-was-exact-the-assumption-was-wrong-thats-not-an-ai-problem-58dm 수집일: 2026-04-11 05:19:03