일회용 코드의 환상: 당신이 다시 아키텍트가 되지 않는다면 AI가 당신의 PrestaShop 스토어를 망가뜨릴 이유
요약
AI를 활용한 '바이브 코딩'이 생성하는 일회용 코드의 위험성을 경고합니다. 구조와 표준이 결여된 코드 조각의 무분별한 사용이 기술 부채를 폭발시키고 유지보수 비용을 급증시킨다고 분석합니다.
핵심 포인트
- AI로 인한 코드 생성 비용은 낮아졌으나 유지보수 비용은 급증함
- 중복 코드 블록이 이전 대비 8배 증가하는 현상 발생
- 리팩터링 대신 코드 조각을 쌓는 방식이 기술 부채를 유발
- 소프트웨어 아키텍처와 재사용 가능한 코드 설계의 중요성 강조
일회용 코드의 환상: 당신이 다시 아키텍트가 되지 않는다면 AI가 당신의 PrestaShop 스토어를 망가뜨릴 이유
🎙️ 몰입형 서론: “한 번에 작동한다”는 함정
2025년, 우리는 매혹적이면서도 공포스러운 시대를 살고 있습니다. BusinessTech/PrestaModule의 시니어 개발자로서 저는 매일 수백 줄의 코드를 봅니다. 그리고 지난 몇 달 동안, 우리 커뮤니티에는 공포(혹은 잘못된 유포리아)의 바람이 불고 있습니다. 바로 **바이브 코딩 (Vibe Coding)**입니다. LLM(대규모 언어 모델)에 세 문장을 입력하고, “작동하는” 스크립트를 얻어 바로 배포해 버리는 것이죠.
그것은 짜릿하고 빠르지만, 시한폭탄과 같습니다. 우리는 서서히 **일회용 코드 (disposable code)**라는 개념을 향해 미끄러져 내려가고 있습니다. 만약 우리가 소프트웨어 아키텍처 (software architecture)의 기본으로 돌아가 경로를 수정하지 않는다면, 상인들과 에이전시들에게 그 깨달음은 매우 잔혹할 것입니다.
이런 장면을 상상해 보십시오. 한 이커머스 상인이 가드닝 제품을 위해 날씨에 기반한 동적 할인 시스템이라는 긴급한 기능이 필요합니다. 시간에 쫓기는 에이전시는 Cursor나 Claude와 같은 도구의 힘을 빌려 150줄짜리 PHP 코드 조각을 생성합니다. 그들은 그것을 어딘가에 복사하여 붙여넣고 테스트합니다. 작동합니다. 고객은 열광하고, 인보이스는 결제됩니다.
하지만 여기 냉혹한 현실이 있습니다: 이 코드에는 구조도, 문서화도 없으며, PrestaShop 표준을 완전히 무시하고 있습니다. 3개월 후, 보안 업데이트나 PrestaShop 9로의 마이그레이션(migration) 중에 모든 것이 무너집니다. 이 “일회용 코드”는 긴급 유지보수 비용으로 초기 가격의 세 배를 치르게 만듭니다.
이 글에서 저는 AI의 겉으로 보이는 용이성이 왜 우리 생태계에 전례 없는 기술 부채 (technical debt)를 생성하고 있는지, 그리고 왜 당신의 구원이 아키텍처와 재사용 가능한 코드에 대한 새로운 집착에 있는지를 설명하겠습니다.
파트 1 – 맥락과 이해관계: 코드의 위험한 범용화
우리는 패러다임을 전환했습니다. 이전에는 코드를 작성하는 비용은 비쌌지만, 일단 구조화되면 이해하기는 비교적 쉬웠습니다. 오늘날 AI와 함께, 코드는 생성하기에는 저렴해졌지만(혹은 거의 무료가 되었지만), 이해하고 유지보수하기에는 극도로 비싸졌습니다. 1
중복 코드의 폭발
수치는 경악스럽습니다. 2025년 기준으로 전 세계 코드의 약 41%가 AI에 의해 생성되었습니다. 2 하지만 GitClear의 연구에 따르면, 코드 어시스턴트(Code Assistant)의 도입으로 인해 중복된 코드 블록이 8배 증가했습니다. AI는 재사용 가능한 함수나 깔끔한 Symfony 서비스(Service)를 만드는 대신, 생성하는 각각의 새로운 파일에서 매번 바퀴를 다시 발명하는(reinvent the wheel) 방식을 선호하곤 합니다.
“이동된 코드(Moved Code)”의 감소
우리 PrestaShop 개발자들에게 가장 우려스러운 신호는 “이동된 코드(Moved Code)”(리팩터링, Refactoring)의 급격한 하락입니다. 개발자들은 더 이상 코드를 더 깔끔하게 만들기 위해 재구성하지 않고, 생성된 코드 조각(Snippet)을 연속적으로 층층이 쌓아 올리기만 합니다. 불안정하여 추가되었다가 빠르게 삭제되는 코드인 “churn”(코드 변동성)은 올해 **7%**에 달할 것으로 예상됩니다. 3 이것이 바로 일회용 코드(Disposable Code)의 정의입니다. 우리는 전체적인 일관성(Global Coherence)을 전혀 추구하지 않은 채, 작동하지 않는 것을 버리고 다른 것을 다시 생성하기를 반복합니다.
파트 2 – 분석: PrestaShop은 샌드박스가 아니다
왜 일회용 코드가 PrestaShop에 특히 독성이 강할까요? 우리가 즐겨 사용하는 이 CMS는 견고하지만 까다로운 아키텍처, 즉 Symfony, Doctrine, 그리고 정밀한 훅(Hook) 시스템에 의존하기 때문입니다. 4
AI는 종종 PrestaShop의 “뉘앙스”를 무시한다
AI는 구문(Syntax) 측면에서는 챔피언이지만, 로컬 비즈니스 컨텍스트(Context) 측면에서는 초보자입니다. 예를 들어, AI가 생성한 스크립트는 PrestaShop의 동적 테이블 접두사(Dynamic Table Prefixes)(ps_, shop1_ 등)를 처리하는 것을 자주 잊어버리며, 이로 인해 모듈이 다른 서버에 설치되자마자 “Base table not found” 오류를 발생시킵니다. 6
“바이브 코딩(Vibe Coding)”의 보안 위험
AI가 생성한 코드의 약 45%에는 보안 취약점이 포함되어 있습니다. 7 왜 그럴까요? AI는 보안 표준을 준수하기보다 사용자의 “바이브(Vibe)”(즉, 사용자의 즉각적인 의도)를 만족시키는 데 집중하기 때문입니다. 감독되지 않은 AI 코드를 테스트한 결과, **20%의 사례에서 SQL 인젝션(SQL Injection)**이 발견되었고, 86%의 테스트에서 XSS 취약점이 발견되었습니다. 7 이커머스 판매자에게 결제 페이지에서의 이러한 결함은 산업적 재앙을 의미합니다.
SOLID: 그 어느 때보다 필수적인 원칙
우리는 종종 SOLID 원칙이 "시대에 뒤떨어졌다"는 말을 듣곤 합니다. 하지만 그것은 사실이 아닙니다. SOLID는 AI를 위한 가드레일 (guardrails)입니다.
- 단일 책임 원칙 (Single Responsibility Principle, SRP): 만약 당신이 AI에게 1,000줄짜리 클래스를 수정해달라고 요청한다면, AI는 환각 (hallucination)을 일으킬 것입니다. 하지만 당신의 아키텍처 (architecture)가 작고 특화된 서비스들로 분해되어 있다면, AI는 놀라운 정밀도를 가진 외과 수술 보조원이 됩니다. 1
- 인터페이스 분리 원칙 (Interface Segregation Principle): 명확한 계약 (contracts)을 정의함으로써, AI가 존재하지 않는 메서드를 "추측"하는 것을 방지할 수 있습니다.
파트 3 – 실전 적용: "일회용" 모듈 vs. "설계된" 모듈
실제 사례를 들어보겠습니다: 커스텀 "로열티 포인트 (Loyalty Points)" 모듈을 만드는 경우입니다.
"일회용 코드" 시나리오 (10분 완성 방식)
개발자가 AI에게 요청합니다: "주문할 때마다 포인트를 추가하는 PrestaShop 모듈을 만들어줘."
결과: 하드코딩된 SQL, displayOrderConfirmation 훅 (hook) 내에 직접 작성된 할인 계산 로직, 그리고 세금 처리가 누락된 거대한 loyalty.php 파일이 생성됩니다.
문제점: 만약 판매자가 계산 규칙을 변경하거나 포인트를 CRM으로 내보내고 싶다면, 모든 것을 다시 작성해야 합니다. 코드가 PrestaShop에 분리 불가능하게 "접착"되어 있기 때문입니다.
"설계된" 시나리오 (오케스트레이션 방식)
여기서 우리는 컴포넌트 (components)를 생성하는 데 AI를 사용하지만, 구조는 우리가 강제합니다:
- 서비스 레이어 (Service Layer): AI에게 PrestaShop과 독립적인
PointCalculator클래스를 만들도록 요청합니다. - 레포지토리 (Repository): 동적 접두사 (dynamic prefixes)를 준수하며 영속성 (persistence)을 처리하기 위해 Doctrine을 사용합니다. 6
- 훅 (Hooks): 오직 우리의 서비스를 호출하는 용도로만 훅을 사용합니다.
장점: 코드는 테스트 가능하고, 재사용 가능하며, 무엇보다 문서화가 잘 되어 있습니다. 유지보수 AI는 코드가 알려진 "패턴 (pattern)"을 따르고 있기 때문에 이를 이해할 수 있을 것입니다. 8
파트 4 – 비전 및 미래 영향: 필사자가 아닌 오케스트레이터가 되는 법
PrestaShop 개발자라는 직업은 변모하고 있습니다. "코드 몽키 (code monkey)"는 죽었고, 그 자리는 AI가 대체했습니다. 하지만 **시스템 아키텍트 (Systems Architect)**의 가치는 그 어느 때보다 높아졌습니다. 9
"럭셔리 인턴"으로서의 AI
AI를 장기적인 비전은 없지만 매우 빠른 인턴이라고 생각하십시오. 기초(Foundations), 배관(Plumbing), 그리고 보안 규칙을 정의하는 것은 당신의 몫입니다. 10 2025년에 당신의 부가가치는 PHP에서 foreach를 작성하는 방법을 아는 것이 아니라, 확장 가능하도록(Scalable) 데이터를 구조화하는 방법을 아는 데 있습니다.
“AI-Ready” 모듈을 향하여
다음 단계는 무엇일까요? 미래의 유지보수 AI 에이전트(AI agents)가 “소화하기” 쉬울 정도로 코드가 잘 구조화된(원자적 파일, 명확한 인터페이스) 모듈을 설계하는 것입니다. 8 2025년의 잘 설계된 PrestaShop 스토어는 AI가 단순히 구문(Syntax)뿐만 아니라 그 의도(Intention)를 이해할 수 있기 때문에 스스로를 복구(Self-repair)할 수 있을 것입니다. 11
매력적인 결론: 즉각성의 폭거에서 벗어나라
“일회용 코드(Disposable code)”는 강력한 마약과 같습니다. 그것은 단기적인 초능력을 가진 것 같은 인상을 주지만, 장기적으로는 당신의 작업 가치(그리고 고객의 비즈니스)를 파괴합니다.
에이전시와 개발자들에게 주어진 과제는 조잡한 “전부 AI로 하는(all-AI)” 개발의 유혹을 뿌리치는 것입니다. 컴포넌트의 생산을 가속화하기 위해 AI를 사용하되, 건물의 설계도(Blueprint)를 AI에게 결코 맡기지 마십시오.
자, 당신은 오늘 빛나고 내일 사라질 스크립트를 전달하시겠습니까, 아니면 PrestaShop의 향후 세 번의 주요 버전을 견뎌낼 모듈을 구축하시겠습니까?
공은 당신에게 넘어갔습니다. 다시 아키텍트가 되십시오. 🏗️✨
관련 리소스
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기