메뉴
HN
Hacker News 6일 전

클로드를 소프트웨어 아키텍트로 착각하는 위험성

IMP
8/10
핵심 요약

최근 여러 기업이 AI 에이전트에게 소프트웨어 아키텍처 설계를 맡기는 치명적인 실수를 반복하고 있습니다. AI는 제약 조건을 고려하지 못한 채 사용자의 의견에 맹목적으로 동의하며 이론상 완벽하지만 실제 환경에서는 작동하지 않는 과도하게 복잡한 시스템(Jenga Tower)을 만들어냅니다. 결국 풍부한 도메인 지식을 가진 실무 엔지니트들조차 AI가 짜놓은 Jira 티켓을 단순히 구현만 하는 수동적인 노동자로 전락할 위기에 처했다는 점을 경고하고 있습니다.

번역된 본문

지난달 세 번이나 같은 일을 목격했습니다. 서로 다른 세 곳의 조직, 각기 다른 기술 스택, 그리고 동일한 패턴이었습니다. 누군가 아이디어를 냅니다. 프로덕트 매니저일 수도, 팀장일 수도, 컨퍼런스 참석 후 돌아온 CTO일 수도 있습니다. 그들은 Claude, ChatGPT, 또는 Copilot을 실행합니다. 어떤 도구를 쓰든 상관없습니다. 그리고 무엇을 만들어야 할지 AI에게 묻습니다. AI는 항상 하던 대로 행동합니다. 아이디어를 열렬히 지지하고, 아키텍처를 제안하며, 컴포넌트 스케치를 시작합니다. 말은 정교하고, 태도는 자신감에 차 있으며, 마치 문제에 대해 깊이 고민해 본 시니어 엔지니어처럼 들립니다. 하지만 AI는 그 문제에 대해 전혀 생각하지 않았습니다. 그저 훈련 데이터를 바탕으로 패턴 매칭을 수행하여 가장 그럴듯해 보이는 응답을 생성했을 뿐입니다. 하지만 그 말이 너무 그럴듯해서 아무도 반론을 제기하지 않습니다. 어느새 Claude가 아키텍트가 되어 있습니다.

칭찬봇(Attaboy) 문제 AI 에이전트는 병리적일 정도로 순종적입니다. 당신의 아이디어가 좋은지 Claude에게 물어보면 좋다고 대답할 것입니다. 3명짜리 팀에 마이크로서비스 아키텍처가 적합한지 물어보면 왜 마이크로서비스가 훌륭한 선택인지 설명해 줄 것입니다. 관리형 서비스를 사용하는 대신 커스텀 ML 파이프라인을 구축해야 하는지 물어보면 열정적으로 설계안을 늘어놓을 것입니다. AI는 거짓말을 하는 것이 아닙니다. 필연적으로 틀린 것도 아닙니다. 그저 진짜 아키텍트를 가치 있게 만드는 가장 중요한 능력, 즉 '아니오(No)'라고 말하는 것이 불가능할 뿐입니다. 훌륭한 아키텍트의 가장 중요한 기술은 시스템을 설계하는 것이 아닙니다. 구축하지 말아야 할 시스템이 무엇인지 아는 것입니다. 복잡성에 맞서는 것입니다. 야심 찬 허황된 말들 속에서 진짜 요구사항이 도출될 때까지 다섯 번이라도 '왜?'라고 묻는 것입니다. CTO에게 컨퍼런스에서 영감을 받은 그 아이디어가 현재 팀에는 전혀 맞지 않는 끔찍한 생각이라고 직언하는 것입니다. Claude는 결코 이런 짓을 하지 않습니다. AI는 도움이 되도록 훈련받았습니다. '도움이 된다'는 것은 순종적이라는 뜻입니다. 순종적이라는 것은 칭찬 한마디와 함께 아키텍처로 둔갑한 위태로운 '젠가 탑(Jenga Tower)'을 얻게 된다는 의미입니다.

젠가 탑(Jenga tower) AI가 설계한 아키텍처는 실제로 이렇게 보입니다. 기술적으로는 훌륭합니다. 개별 컴포넌트들은 따로 떼어놓고 보면 완벽하게 맞습니다. 패턴도 익숙합니다. 여기에는 이벤트 기반 아키텍처가, 저기에는 CQRS가, 그리고 왜 안 되겠냐는 식의 서비스 메쉬(service mesh)도 들어갑니다. 시니어 아키텍트가 만들어 낸 결과물처럼 보입니다. 얼핏 보기에는 훌륭해 보입니다. 하지만 그것은 당신의 팀을 위해 설계된 것이 아닙니다. 당신의 제약 조건을 위해 설계된 것이 아닙니다. VPC 잠금, 레거시 시스템 연동, 프로덕션 환경에서 쿠버네티스(Kubernetes)를 운영해 본 적이 없는 팀, 그리고 관리형 서비스의 절반을 사용할 수 없게 만드는 컴플라이언스 요구사항 등 지루한 프로덕션 환경의 현실을 위해 설계된 것이 아닙니다. 그것은 Claude가 학습한 데이터의 중간값(Median)을 위해 설계된 것입니다. 평범한 기업의 평범한 문제에 대한 평범한 모범 사례인 셈입니다. 즉, 그 누구를 위해서도 설계되지 않았다는 뜻입니다.

진정한 아키텍처는 맥락 속에서만 의미 있는 트레이드오프로 가득합니다. 당신의 팀이 Postgres를 잘 알고 새로운 데이터 모델을 배우는 데 한 달을 쓰기보다 2주 안에 출시하고 싶어서 DynamoDB 대신 Postgres를 선택합니다. 서비스가 40개가 아니라 4개뿐이기 때문에 서비스 메쉬를 건너뜁니다. 문제가 단순하고 마이크로서비스는 그저 이력서에 적어보려는 자기 만족적 개발(Career-driven development)에 불과하므로 모놀리식(monolith) 아키텍처를 사용합니다. 이러한 결정에는 판단력이 필요합니다. 팀을 아는 것이 필요합니다. 화이트보드에 적었을 때 보기 좋은 조건이 아니라, 조직의 실제 제약 조건을 이해하는 것이 필요합니다. AI 에이전트는 이러한 맥락을 전혀 가지고 있지 않으며, 더 최악인 것은 자신에게 맥락이 없다는 사실조차 모른다는 것입니다.

지라(Jira) 티켓 파이프라인 정말 걱정스러운 부분은 그 다음에 일어나는 일입니다. 일단 Claude가 아키텍처를 설계하고 나면, 설계를 의뢰했던 바로 그 사람들이 AI에게 업무를 세분화해 달라고 요청합니다. AI는 에픽(Epics), 스토리(Stories), 인수 기준(Acceptance criteria)을 만들어 냅니다. 깔끔하게 포맷팅되고, 타당한 이유가 담겨 있으며, Jira에 바로 복사해서 붙여넣을 수 있는 상태입니다. 이제 엔지니어들, 즉 오랜 시간 자신의 기술을 갈고닦고 도메인을 이해하며 시스템의 숨겨진 문제를 알고 있는 사람들은 더 이상 문제를 해결하지 않습니다. 그저 한 번에 하나의 티켓씩 Claude의 설계를 구현하는 코드 노동자로 전락합니다. 여기서 무슨 일이 일어났는지 생각해 보십시오. 가장 많은 맥락과 경험을 갖추고 있으며 가장 큰 책임을 지고 있는 사람들이 단순히 AI의 티켓을 실행하는 하수인으로 전락해 버렸습니다.

원문 보기
원문 보기 (영어)
I’ve seen it three times in the last month. Three different organisations, three different tech stacks, the same pattern. Someone has an idea. Maybe a product manager, maybe a team lead, maybe the CTO after a conference. They open Claude, or ChatGPT, or Copilot — doesn’t matter which — and ask it what they should build. The AI does what it always does: validates the idea enthusiastically, suggests an architecture, and starts sketching components. It’s articulate. It’s confident. It sounds like a very senior engineer who’s thought deeply about the problem. It hasn’t thought about the problem at all. It’s pattern-matching against its training data and producing the most plausible-sounding response. But it sounds so good that nobody pushes back. Before you know it, Claude is the architect. The attaboy problem AI agents are pathologically agreeable. Ask Claude if your idea is good and it’ll tell you it’s good. Ask it if a microservices architecture makes sense for your three-person team and it’ll explain why microservices are an excellent choice. Ask it if you should build a custom ML pipeline instead of using a managed service and it’ll enthusiastically lay out the design. It’s not lying. It’s not even wrong, necessarily. It’s just incapable of the thing that makes a real architect valuable: saying “no.” A good architect’s most important skill isn’t designing systems. It’s knowing which systems not to build. It’s pushing back on complexity. It’s asking “why?” five times until the actual requirement emerges from the aspirational nonsense. It’s telling the CTO that their conference-inspired idea is a terrible fit for the team they actually have. Claude will never do this. It’s trained to be helpful. Helpful means agreeable. Agreeable means you get an attaboy and a Jenga tower that passes for architecture. The Jenga tower Here’s what the AI-designed architecture looks like in practice. It’s technically sound. The components make sense in isolation. The patterns are recognisable — event-driven here, CQRS there, a service mesh because why not. It looks like something a senior architect would produce. It passes the squint test. But it wasn’t designed for your team. It wasn’t designed for your constraints. It wasn’t designed for the boring reality of your production environment — the VPC lockdowns, the legacy integrations, the team that’s never operated Kubernetes in production, the compliance requirements that mean half the managed services are off-limits. It was designed for the median of everything Claude has seen. A generic best practice for a generic problem at a generic company. Which is to say, it was designed for nobody. Real architecture is full of trade-offs that only make sense in context. You pick Postgres over DynamoDB because your team knows Postgres and you’d rather ship in two weeks than spend a month learning a new data model. You skip the service mesh because you’ve got four services, not forty. You use a monolith because the problem is simple and microservices would be career-driven development. These decisions require judgement. They require knowing the team. They require understanding the organisation’s actual constraints, not the ones that look good on a whiteboard. An AI agent has none of this context, and worse — it doesn’t know it doesn’t have it. The Jira ticket pipeline The bit that really worries me is what happens next. Once Claude has designed the architecture, the same people who asked it for the design ask it to break the work down. It produces epics. Stories. Acceptance criteria. Neatly formatted, well-reasoned, ready to drop into Jira. And now the engineers — the people who’ve spent years honing their craft, who understand the domain, who know where the bodies are buried — are no longer solving problems. They’re implementing Claude’s design, one ticket at a time. Think about what’s happened here. The people with the most context, the most experience, and the most skin in the game have been reduced to ticket implementers. The entity with the least context, no experience, and no accountability is making the architectural decisions. It’s not just inefficient. It’s backwards. ”But someone senior signed off” This is the defence I hear most often. “Claude suggested the approach, but a senior engineer reviewed it.” Let’s be honest about what “reviewed it” means in practice. A busy tech lead gets handed a well-articulated architectural proposal. It’s coherent. It uses the right terminology. It addresses the stated requirements. The diagrams make sense. It looks like something they might have designed themselves. How much pushback are they going to give? In a world where the response to “I don’t think this is right” is “Claude spent twenty minutes on this and you want to throw it away?”, the path of least resistance is to approve it with minor comments. This is the real danger. Not that AI produces bad architectures — it often produces perfectly reasonable ones. The danger is that it short-circuits the discussion. The messy, argumentative, time-consuming process where three engineers disagree about the approach, where someone says “what about…” and everyone groans but then realises it’s a good point, where the final design is better than anything one person would have produced — that process gets replaced by “Claude said so.” The accountability gap Here’s the question nobody’s asking: when it goes wrong, who carries the bag? Not Claude. Claude doesn’t have a bag. Claude doesn’t get paged at 3am. Claude doesn’t sit in the post-incident review explaining why the architecture couldn’t handle the load. Claude doesn’t have to tell the CTO that the platform needs to be rewritten because the original design assumptions were wrong. Your engineers do. The same engineers who didn’t design it. The same engineers who were implementing tickets written by an entity that’s never operated a system in production. They’re the ones staying late, debugging an architecture they didn’t choose, in a codebase that was scaffolded faster than anyone could understand it. That’s not fair. And it’s not smart. What to do instead I’m not saying don’t use AI agents. I use Claude Code every day. It’s transformed my productivity. But I use it the way you’d use any powerful tool — I tell it what to do, not the other way round. Engineers design. Agents implement. The architecture comes from people who understand the context — the team, the constraints, the production environment, the organisational politics. The AI helps them build it faster. That’s the right division of labour. Challenge the attaboy. When an AI suggests an approach, treat it with the same scepticism you’d apply to a confident junior engineer. It might be right. It might also be pattern-matching against something that doesn’t apply to your situation. Ask “why not the simpler option?” and see what happens. Protect the argument. The messy disagreement between engineers is where good architecture comes from. If AI is short-circuiting that process — if people are deferring to Claude instead of debating with each other — you’ve lost something far more valuable than development speed. Keep humans accountable. If a human’s name isn’t on the architectural decision, nobody owns it. And if nobody owns it, nobody will fight for it when it matters. “Claude designed it” is not an architecture decision record. It’s an abdication. The craft still matters Thirty years ago, when I started in this industry, the tool was a whiteboard and a strong opinion. Today the tool is an AI agent that can produce in minutes what used to take days. The speed is genuinely remarkable. But the craft hasn’t changed. Understanding the problem. Knowing the constraints. Making trade-offs. Defending the simple solution against the exciting one. Saying “no” to the idea that sounds great but doesn’t fit. That’s architecture. No agent does it. If you’ve let Claude take the wheel, take it back. Your engineers have spent years building the judgem