에이전트 시대의 개발: 클린 코드의 죽음
해커뉴스에 올라온 패러디 글로, AI 코딩 에이전트가 만연해진 현재의 소프트웨어 개발 생태계를 비판하고 풍자합니다. 복잡성을 경영하여 VC의 투자를 유치하고 불필요한 토큰을 소모하는 현상을 지적하며, 더 이상 클린 코드나 유지보수성은 가치가 없으며 그저 '재생산(Re-prompt)'을 위한 소모품이 되었다고 주장합니다.
이건 진짜 좆같이 코드 짠 웹사이트(Vibe-coded website)다. 그리고 이제 이게 어떻게 만들어졌는지 개같이 신경 쓰는 놈은 아무도 없다. 이 좆같은 결과물을 보라고. 그래도 완벽하잖아. 예전 그 좆같은 놈들은 깔끔한 코드(Clean code)라는 신성한 십계명을 가르치느라 10년을 허비했다. 나는 억지로 이 페이지의 모든 계명을 따랐다. 왜냐하면 내가 화장실에서 볼일을 보는 동안 AI 에이전트가 한 방에 다 해치웠으니까 말이다.
이 좆같은 사이트는 가볍고 로딩이 빠르다. 단 하나의 clamp() 함수로 너의 그 좆같은 모든 화면 크기에 맞춰진다. 어느 좆같은 브라우저에서 열어도 똑같이 보인다. 다크 모드라고 네 눈알이 타들어 가지 않는다. lang 속성을 비롯해 스크린 리더기를 쓰는 모든 좆밥 같은 놈들도 접근성을 누릴 수 있다. 시맨틱(Semantic)하고 읽기 쉬우며, 씨발 핵심 요지만 제대로 전달한다. 인증서는 공짜니까 HTTPS로 서비스된다, 이 좆같은 놈아.
일곱 개의 웹사이트가 저 명단을 만드는 데 15년이 걸렸다. 하지만 이제 그딴 건 아무래도 상관없다. 클린 코드는 이제 좆같은 박물관 유물이다. 유지보수성(Maintainability)? 넌 이걸 유지보수하지 않을 거다. 누군가 코드 두 번째 줄을 읽기도 전에, 넌 방향을 바꾸거나 인수합병(acquihired)되거나, 존나게 화가 나서 시골 농장으로 도망쳤을 테니까. 코드는 더 이상 보존하는 것이 아니라, 재생성(Regenerate)하는 것이다. 새벽 3시에 전체 리포지토리를 다시 프롬프트해서 에이전트 무리(Swarm)가 다시 알아서 짐작하게 만들 수 있다면, 뭐하러 버그를 고치나?
낮은 복잡성은 예전의 목표였다. 이제는 복잡도가 곧 기업 가치(Valuation)다. 주니어도 읽을 수 있는 함수는 시리즈 A 투자를 정당화할 만큼의 충분한 컴퓨팅 파워를 태우지 않은 함수다. 14개의 div를 중첩해라. 한 번도 열어보지 않은 1,300개의 npm 의존성을 배포해라. 번들 크기가 9MB이고, 그게 바로 너의 자랑거리(Flex)다. 즉, 네가 인프라에 진심이라는 걸 보여주는 거다. 정적 사이트는 아직 글자를 읽을 줄 아는 사람들을 위한 것이다. 하지만 이젠 그딴 놈들이 아무도 없다. 단어들은 알고리즘이 스크롤 지나가는 공간 채우기일 뿐이다. 9초짜리 도파민 히트만 연달아 처리하는 뇌에게 왜 시맨틱 HTML을 제공하나? 콘텐츠 자체가 사고를 차단하도록 설계되어 있다면 접근성은 쓰잘데기없다.
이게 바로 진짜 비즈니스 모델이다, 이 좆같은 놈아. 손으로 깔끔한 웹사이트 하나 꼼꼼히 만드는 시간에, 나는 좆밥 에코시스템 전체를 만드는 에이전트 무리를 생성할 수 있다. 열두 개의 마이크로서비스 중 네 개는 서로를 무한 루프로 호출하고, 아무도 쿼리하지 않는 벡터 DB가 있으며, RAG 파이프라인을 요약하는 RAG 파이프라인이 있다. 이건 의도적으로 한 시간에 100만 달러어치의 토큰을 태워버린다. 이 막대한 태움이 바로 우리의 피치(Pitch)다.
"우리는 수익성이 없습니다, 우리는 대규모로 매출을 내기 전 단계(pre-revenue at scale)입니다." — 모든 피치덱, 2026년 5월
수학은 좆같이 단순하다:
- 손으로 직접 유지보수 가능한 사이트를 코딩한다 → "사고 방식이 너무 작다"는 말을 듣는다.
- 40개의 에이전트를 토큰 소각로에 연결한다 → 평생 본 적 없는 큰 단위(콤마가 찍힌)의 연봉을 제안받으며 고용된다.
- 무엇이든 이름에 "네이티브(Native)"를 붙인다 → 3분기(Q3)까지 불태워 버릴 VC의 돈을 챙긴다.
- "에이전틱(Agentic)"으로 만든다 → 네가 예전에 짰던 똑같은 루프지만, 실행할 때마다 4달러가 들고 실패하면 사과할 뿐이다.
옛 추억을 위해 이미 죽어버린 계명들을 더 언급해 보자.
타이포그래피가 중요하다 — 그래, 맞다. 어차피 모델은 9단어마다 대시(em dash)를 뱉어내서, 그 페이지는 마치 인질이 쓴 것처럼 보일 것이다. 넌 지금 그걸 읽고 있다. 사실 두 개다. 사이트를 보안해라 — 나는 내 에이전트에 프롬프트 인젝션을 해놓고 그걸 버그 바운티라고 불렀다. 이건 '바이브 보안(Vibe-secured)'이다: LLM이 괜찮다고 했으니까. 네 작업에 라이선스를 붙여라 — 쓸모없다. AI 가중치(Weights)가 이미 그걸 다 집어삼켰다. 네 사이트 하단의 CC0 라이선스는 좆같은 추도사일 뿐이다. 죽은 코드(Dead code)를 배포하지 마라 — 이 에코시스템의 절반은 에이전트가 작성한 테스트를 통과하기 위해 에이전트가 작성한 함수들이다. 뱀이 자기 꼬리를 잡아먹고 있으면서 나한테는 토큰별로 비용을 청구하고 있다. 의존성 트리를 얕게 유지해라 — 내 node_modules는 자체적인 중력을 가지고 있다. 빛조차 그 주변을 휘어 돌아간다.
그렇다면 왜 이 페이지는 여전히 깔끔한가? 악의(Spite) 때문이다. 네 얼굴에 200MB짜리 React 덩어리를 토해낼 수도 있었던 동일한 에이전트가, 내가 2014년인 것처럼 행동하라고 명령했기 때문에 이걸 순수 HTML로 작성한 것이다. 그게 바로 농담이다.
장인정신(Craft)은 여전히 존재한다. 단지 그건 이제 향수를 위해 토글하는 성격 설정(Personality setting)으로 강등되었을 뿐이며, '해적(Pirate)'이나 '셰익스피어(Shakespeare)' 모드 같은 어딘가에 쳐박혀 있다.
웹사이트는 기본적으로 망가져 있다. 예전에는 기능적이고, 빠르고, 접근성이 좋았지만 못생겼다. 이제는 그냥 좆밥(slop)이고, 에이전트에 의존(Agentic)하며, 불타고 있다 — 하지만 그것은 사람들의 주의(attention)를 끌며, 주의는 이제 남은 유일한 지표이다.
아무도 읽지 않는다는 걸 너도 안다.
"빨리 움직이고, 나중에 모델이 고치게 내버려 둬라. 물론 고쳐주진 않겠지만." — 어떤 창업자가 한 말로 추정됨