
솔직히 고백하겠습니다. 저는 소위 말하는 '클린 코드' 병에 걸린 환자였습니다. 청주에서 서울로 올라와 구로의 등대라 불리는 SI 업체에 처음 들어갔을 때, 제 책상 위에는 늘 두꺼운 리팩토링 서적이 놓여 있었습니다. 월급은 밀리고 마감은 코앞인데, 변수명 하나, 함수 분리 하나에 집착했습니다. 그게 '진짜 개발자'가 되는 길이라고 믿었거든요.
하지만 결과는 참혹했습니다. 돌아가는 쓰레기 코드를 짠 동료는 칼퇴근하고 인센티브를 챙겼지만, 우아한 아키텍처를 고민하던 저는 주말마다 서버실에 남아 스파게티 코드를 헤집으며 자괴감에 빠져야 했습니다. 그때는 몰랐습니다. 제가 지키려던 그 '장기적인 유지보수성'이라는 가치가, 생존이 급한 비즈니스 현장에서는 얼마나 사치스러운 이야기였는지 말입니다.
최근 흥미로운 아키텍처 이론을 접했습니다. 바로 '폐기형 시스템(Disposable Systems)'입니다. 이 개념을 보고 뒤통수를 세게 얻어맞은 기분이었습니다. 제가 과거에 했던 삽질이 왜 실패했는지, 그리고 지금 시대에 우리가 어떤 전략을 취해야 하는지 명확하게 보여주었기 때문입니다.
우리는 흔히 소프트웨어를 '건물'처럼 생각합니다. 한 번 기초를 다지고 올리면, 수십 년간 닦고 조이고 기름칠하며 유지해야 한다고 배웠죠. 개발 비용이 비쌌으니까요. 프로젝트 예산의 80%를 유지보수에 쏟아붓는 걸 당연하게 여겼습니다. 그래서 처음부터 완벽하게 짜야 했고, 레거시가 두려워 리팩토링에 목숨을 걸었습니다.
그런데 세상이 바뀌었습니다. Cursor나 Claude 같은 AI 코딩 에이전트들이 등장하면서 코드를 '생성'하는 비용이 0에 수렴하고 있습니다.
이제는 코드가 마음에 안 들면 고쳐 쓰는 게 아니라, 그냥 버리고 새로 만드는 게 더 싼 시대가 온 겁니다. 소위 '바이브 코딩(Vibe Coding)'의 시대죠. 당장 필요한 데이터 파서나 일회성 대시보드가 필요하다면, 프롬프트 몇 줄로 5분 만에 만들어냅니다. 그 내부 코드가 얼마나 지저분한지는 중요하지 않습니다. 작동만 하면 되니까요. 망가지면요? 지우고 다시 생성하면 그만입니다.
그렇다면 우리는 이제 막개발을 해도 되는 걸까요? 아닙니다. 여기서 중요한 건 '어디를 버리고 어디를 지킬 것인가'를 결정하는 아키텍처 능력입니다.

이 새로운 흐름에서 살아남기 위한 구조는 크게 세 가지 계층으로 나뉩니다.
첫째, 핵심(Core)입니다. 이건 절대 타협하면 안 됩니다. 비즈니스의 영혼이 담긴 로직, 데이터 모델, 핵심 알고리즘 같은 '진실의 근원(Source of Truth)'이죠. 이 부분만큼은 사람이 꼼꼼하게 설계하고, AI가 함부로 건드리지 못하게 방어해야 합니다.
둘째, 커넥터(Connectors)입니다. 쉽게 말해 API 계약(Contract)입니다. 여기가 제일 중요합니다. 시스템의 각 부품이 소통하는 규칙은 불변이어야 합니다. OpenAPI나 gRPC 같은 스키마를 엄격하게 정의해야 하죠. 이 계약만 완벽하다면, 그 뒤에 연결된 구현체가 사람이 짠 명품 코드든, AI가 짠 난잡한 코드든 상관없이 시스템은 돌아갑니다.
셋째, 폐기형 계층(Disposable Layer)입니다. UI 컴포넌트, 단순 데이터 변환 스크립트, 각종 글루 코드들이 여기 속합니다. 이곳은 AI의 놀이터입니다. 내부 구현이 얼마나 더러운지 신경 쓰지 마십시오. '계약'만 준수한다면, 쓰고 버리는 일회용품처럼 다루면 됩니다.
제가 과거에 실패했던 이유는 모든 코드를 '핵심'처럼 다루려 했기 때문입니다. 3개월 뒤면 사라질 프로모션 페이지의 백엔드 로직까지 장인정신으로 깎고 있었으니, 번아웃이 올 수밖에요.
이제는 '계약 우선 설계(Contract-First Design)'로 가야 합니다. 구현보다 인터페이스 정의에 더 많은 시간을 쏟아야 합니다. 스키마가 곧 법입니다. 법이 튼튼하면 시민(구현 코드)들이 좀 자유분방하게 살아도 사회(시스템)는 무너지지 않습니다.
"코드가 지저분해서 불안해요."라고 말하는 주니어들에게 저는 이제 이렇게 말해줍니다. "그 코드가 핵심 로직이니? 아니면 그냥 데이터를 퍼 나르는 파이프니? 파이프라면 뚫려만 있으면 돼. 예쁜 파이프를 만들려다가 물 공급 끊기게 하지 마라."
명문대 출신들이 말하는 클린 코드, 물론 중요합니다. 하지만 비즈니스의 속도를 맞추지 못하는 클린 코드는 죽은 코드나 다름없습니다. AI가 코드를 쏟아내는 지금, 우리의 역할은 한 땀 한 땀 코드를 짜는 장인이 아니라, 어떤 코드를 살려두고 어떤 코드를 쓰고 버릴지 결정하는 냉철한 설계자가 되어야 합니다.
여러분의 코드가 좀 더러워도 괜찮습니다. 중요한 건 그 코드가 비즈니스를 살리고 있느냐, 그리고 언제든 버릴 준비가 되어 있느냐입니다. 부디 저처럼 보이지 않는 완벽함을 좇다가 소중한 주말과 건강을 잃지 않으시길 바랍니다. 시스템은 버려도, 여러분 자신은 버려지면 안 되니까요.

![[내부 공유용] 코딩 못하는 '웹 덕후'가 AI로 혼자 런칭한 서비스 기술 스택 공개](/_next/image?url=https%3A%2F%2Fstorage.googleapis.com%2Fpoooling-blog%2Fblog-images%2F2026%2F02%2F01%2F2617_bb52ddb9.png&w=3840&q=75)
