AI는 오버엔지니어링을 없애지 않는다. 가속할 뿐이다

모델이 기본값으로 과한 해법을 내놓는 이유, 복잡함을 막던 어떤 자연스러운 브레이크가 사라졌는지, 그리고 AI를 생성자가 아니라 편집자로 쓰는 방법.

2026. 8. 3.
AI는 오버엔지니어링을 없애지 않는다. 가속할 뿐이다
복잡함은 쓰기에 싸졌고, 유지하기에는 여전히 비싸다

문제

오버엔지니어링은 단순한 과제를 복잡한 방식으로 푸는 것입니다. 랜딩 페이지를 마이크로서비스로 만들고, 사용자 열 명을 위해 Kubernetes를 올리고, 트래픽은 크지 않은데 백만 요청을 감당할 구조를 짭니다. 과제 자체보다 비교할 수 없이 복잡한 해법에 돈과 시간을 지불하는 셈입니다.

인센티브가 그렇게 짜여 있습니다. 복잡한 해법은 전문적으로 읽히고, 단순한 해법은 덜 만든 것처럼 보입니다. Kubernetes를 골랐다는 이유로 해고된 사람은 없습니다. 해고된 쪽은 확장성을 생각하지 않은 사람입니다. 이런 비대칭 아래에서는 안전하게 가는 편이 합리적이고, 개발자들은 실제로 그렇게 합니다.

여기서 AI가 도움이 되지 않는 이유

AI는 공개된 코드와 글로 학습했고, 그 안에서는 대기업의 해법이 우세합니다. 블로그를 쓰고 프레임워크를 공개하고 유행을 만드는 쪽이 그들이기 때문입니다. 다만 그들의 과제는 다릅니다. 수백만 사용자, 수백 명의 개발자, 규제 요건.

「인증을 작성해 줘」라는 요청에 모델은 가장 자주 마주친 것을 내놓습니다. 추상화와 인터페이스로 이루어진 계층 구조, 그리고 당신에게는 결코 오지 않을 시나리오에 대한 처리입니다. 인터넷의 평균적인 요청에는 맞는 답입니다. 당신의 프로젝트가 그 평균에 들어가지 않을 뿐입니다.

무엇이 달라졌나

예전에는 복잡함의 값을 시간으로 치렀습니다. 추상화 다섯 계층을 쓰는 일은 한 주짜리 작업이었습니다. 사흘째쯤 되면 정말 필요한지 의심이 들기 시작합니다. 그 가격이 브레이크로 작동했습니다.

지금은 같은 다섯 계층이 일 분이면 생성됩니다. 코드는 잘 읽히고 테스트는 통과하고 기능도 동작합니다. 겉보기에는 아무 문제가 없습니다. 그러나 복잡함의 주된 값은 작성이 아니라 유지보수에서 나갑니다. 반년 뒤 그 코드에서 무언가를 바꿔야 하고, 청구서는 그때 도착합니다. 의식적인 결정 없이 순식간에 짊어진 기술 부채입니다.

오버엔지니어링의 유일한 자연스러운 브레이크가 사라졌습니다. 생성 품질의 문제가 아닙니다. 코드는 훌륭할 수 있습니다. 문제는 그것이 너무 싸졌다는 데 있습니다.

무엇이 통하나

AI를 편집자로 쓰기

흔한 시나리오는 다릅니다. 개발자가 모듈을 처음부터 생성해 달라고 하고, 500줄을 받아서 프로젝트에 붙여 넣습니다. 무엇이 군더더기인지 따져 볼 사람은 없습니다. 코드가 동작하니까요. 그렇게 오버엔지니어링은 단 한 번의 생성으로 프로젝트에 들어옵니다.

순서를 뒤집으면 결과가 달라집니다.

  1. 먼저 직접 씁니다. 서른 줄, 단순한 JWT, 검증 함수 하나. 대신 한 줄도 빠짐없이 이해하게 됩니다.
  2. 그다음 AI에 단순화를 맡깁니다. 「여기 코드가 있습니다. 없어도 계속 동작하는 것은 전부 제거하세요. 버릴 수 있는 부분을 보여 주세요.」
  3. 제안을 검토합니다. 일부는 빗나가지만 이 모드에서 모델은 더 잘 작동합니다. 필요한 것을 지어내기보다 군더더기를 찾아내는 쪽이 더 정확하기 때문입니다.

편집에는 기준점이 있습니다. 당신의 코드와 과제에 대한 당신의 이해입니다. 생성에는 기준점이 없고, 모델은 평균값을 대신 넣습니다.

두 가지 방법이 더 있습니다.

  • 프롬프트의 제약. 처음부터 생성한다면 테두리를 명시적으로 정하세요. 「동작하는 것 중 가장 단순한 해법으로. 프레임워크 없이, 추상화 계층 없이. SQLite, 파일 하나.」
  • 프로젝트의 맥락. 「사용자는 100명이고 서버는 10달러짜리입니다」라는 한 문장이 어떤 표현 다듬기보다 답을 크게 바꿉니다.

큰 회사들은 이 문제를 어떻게 다루나

AI 에이전트를 가장 깊이 도입한 회사들은 생성 주위에 제약의 층을 통째로 쌓아 두었습니다.

Stripe는 공개된 설명에 따르면 주당 천 건이 넘는 pull request를 AI를 통해 처리합니다. 에이전트에게 주는 과제는 좁게 정의됩니다. 「기능을 만들어라」가 아니라 엄격하게 한정된 변경입니다. 에이전트가 쓸 수 있는 도구는 손으로 골랐습니다. 모든 결과는 검토를 거칩니다. 회사는 결과의 예측 가능성을 위해 과제의 규모를 의도적으로 포기했습니다.

Google, Shopify, Airbnb는 구조가 서로 다릅니다. 업계에 단일 표준은 없고 각자 자기 위험에 맞춰 짓습니다. 공통점은 에이전트를 이미 있는 프로세스(GitHub, Slack, Linear)에 끼워 넣고 검증으로 둘러싼다는 것입니다.

어느 곳도 생성 결과를 「그대로」 쓰지 않습니다. 가치는 생성을 둘러싼 테두리에서 나옵니다.

결론

AI는 개발자의 머릿속에 이미 있는 것을 증폭합니다. 복잡하게 만들려는 성향이라면 몇 초 만에 구현하고, 군더더기를 잘라 내는 습관도 마찬가지입니다.

이 코드가 이 과제에는 지나치게 복잡하다는 판단은 여전히 사람이 내립니다. AI는 그것을 더 빨리 실행할 뿐입니다.

더 읽기