← 목록으로

3개월 만에 프로덕션급 이커머스 플랫폼을? GitHub Copilot, 너 없었으면 큰일 날 뻔!

2026. 5. 25.

3개월 만에 프로덕션급 이커머스 플랫폼을? GitHub Copilot, 너 없었으면 큰일 날 뻔!

이 글은 GitHub Finish-Up-A-Thon Challenge 제출작을 재구성한 것입니다.

제가 만든 것은요

솔직히 말씀드리자면, 처음 Commerza 개발을 시작했을 때 이걸 과연 끝낼 수 있을까 하는 의문이 더 컸습니다.

저는 파키스탄에서 온 19세 소프트웨어 공학 학생입니다. 번듯한 재정 지원을 받는 대학 출신도 아니고, 샌프란시스코 부트캠프에서 온 것도 아니죠. HITMS에서 4년제 BSE 과정을 밟으면서 동시에 Aptech Pakistan에서 3년제 소프트웨어 공학 고급 디플로마 과정을 병행하고 있습니다. 튜토리얼만 따라 하는 근육 기억이 아니라, 진정한 실력을 갖춘 풀스택 개발자가 되기 위해 발버둥 치는 중입니다.

Commerza는 프로덕션급 PHP + MySQL 이커머스 플랫폼입니다. 완벽한 상점 프론트엔드와 관리자 패널을 갖추고 있어요. 현금 결제(COD)와 Stripe를 통한 실제 결제 기능도 구현했죠. CSRF 보호, Google reCAPTCHA v2 v3, 요청 제한(rate limiting), 감사 로그, 재고 잠금(stock locking), SMTP 페일오버, Argon2id 비밀번호 해싱, 모든 사용자 대면 데이터 변경 경로에 대한 SQL 인젝션 방어까지, 엔터프라이즈 수준의 보안을 자랑합니다.

이 정도는 보통 팀 단위로 작업해야 기대할 수 있는 수준이죠. 새벽 2시에 코딩하는 주머니 가벼운 학생 혼자가 해낼 만한 일이 아닙니다.

그리고 이건 절대 "주말 프로젝트"가 아니었습니다. 이 프로젝트는:

  • PHP 파일 80개
  • 총 추적 파일 339개
  • 136개의 커밋
  • 코드 비율: PHP 62.6% | JavaScript 20.8% | CSS 15.0% | PowerShell 1.6%

주요 스택: HTML · CSS · JavaScript · jQuery · Bootstrap · PHP · MySQL · JSON · XML · SEO

다크 모드(OrangeRed + Black)와 라이트 모드(NavyBlue + White)를 지원하고, Cloudinary 연동, Redis/APCu 캐싱 레이어, ClamAV 업로드 스캔, 서브 관리자 역할 관리, 제품 휴지통, 쿠폰 캠페인, 리뷰 작성 자격 검증, Google 및 Facebook을 통한 OAuth, 고객 블랙리스트, 그리고 푸시마다 실행되는 CI 보안 게이트까지 갖추고 있습니다.

이게 바로 Commerza 입니다.

그리고 이 모든 것 중, 특히 백엔드의 약 **78%**는 GitHub Copilot이 Claude Sonnet 4.6, Claude Opus 4.6, 그리고 GPT-5.2-Codex와 함께 저의 "공동 창업자" 역할을 하며 만들어냈습니다.


데모

🔗 GitHub: github.com/ahmershahdev/commerza

(스크린샷은 아래에 있습니다)

Commerza storefront homepage displaying a minimalist, high-end hero slider for premium products with clean navigation links and light mode active. Commerza 상점 프론트엔드 홈페이지: 프리미엄 제품을 위한 미니멀하고 고급스러운 히어로 슬라이더, 깔끔한 내비게이션 링크, 라이트 모드 활성화 상태.

Commerza custom checkout system in dark mode showing form fields and a dynamic math security question fallback panel triggered on localhost when Google reCAPTCHA is inactive. Commerza 맞춤형 결제 시스템(다크 모드): 폼 필드와 Google reCAPTCHA 비활성화 시 로컬호스트에서 트리거되는 동적 수학 보안 질문 대체 패널.

Customer order history dashboard within the Commerza user account profile showing order details, order IDs, and real-time high-value COD email verification status updates. Commerza 사용자 계정 프로필 내 고객 주문 내역 대시보드: 주문 상세 정보, 주문 ID, 그리고 고액 현금 결제(COD) 이메일 인증 상태 업데이트가 실시간으로 표시됨.

Commerza central admin dashboard UI displaying real-time e-commerce key performance indicators, total revenue, order metrics, customer counts, and a recent orders log table. Commerza 중앙 관리자 대시보드 UI: 실시간 이커머스 핵심 성과 지표, 총 수익, 주문 지표, 고객 수, 그리고 최근 주문 로그 테이블 표시.

Commerza administrative management dashboard showing the custom sub-admin account creation wizard with modular role profiling options like Operations Manager and Customer Support. Commerza 관리 대시보드: 운영 관리자 및 고객 지원과 같은 모듈식 역할 프로파일링 옵션을 제공하는 맞춤형 서브 관리자 계정 생성 마법사.


역전극의 시작

어디서 시작되었나

2026년 1월, 저에게 아이디어가 떠올랐습니다. 할 일 목록 앱이나 블로그 엔진 같은 튜토리얼용 프로젝트가 아니라, 실제로 클라이언트나 고용주에게 보여줄 수 있는 '진짜' 무언가를 만들고 싶었어요. 밑바닥부터 만드는 이커머스 플랫폼이었죠. Laravel 같은 프레임워크의 도움 없이, 순수 PHP로 말이죠. 모든 레이어를 직접 이해하고 싶었기 때문입니다.

첫 달은 대부분 프론트엔드 작업에 매달렸습니다. HTML 구조, CSS 디자인 시스템, Bootstrap 그리드, jQuery 인터랙션까지. 모두 손으로 직접 코드를 짰습니다. 깔끔하고 체계적이었지만, 느린 작업이었죠. 제품 카드, 내비게이션 바, 장바구니 페이지, 관리자 사이드바 등 모든 컴포넌트를 수작업으로 만들었습니다.

제 커밋 기록을 보면 초반에는 느리고 작은 프론트엔드 커밋들만 가득합니다. 한 번에 파일 하나씩 처리했으니까요.

그러다 백엔드라는 거대한 벽에 부딪혔습니다.

PHP 폴더를 사흘 내내 쳐다만 봤습니다. PHP 기본은 알았지만, '프로덕션' 수준의 PHP는 완전히 다른 동물이더군요. PDO와 mysqli 중 무엇을 써야 할지, "필요할 때만"이 아니라 모든 곳에 준비된 구문(prepared statements)을 써야 한다는 것, CSRF 토큰은 대체 무엇이며 어디에 들어가야 하는지, Argon2id와 bcrypt 중 학생 프로젝트에 어떤 것을 써야 할지(네, 중요합니다).

"며칠이면 되겠지" 싶었던 작업들이 순식간에 몇 달짜리 일처럼 느껴지기 시작했습니다. 이메일 자동화는요? 백업 전송 기능까지 포함된 SMTP 페일오버는 어떻게 구현하죠? 일반 사용자에게 불편을 주지 않으면서 요청 제한(rate limiting)을 거는 방법은? 점수 임계값과 액션 검증을 포함한 reCAPTCHA v3는 또 어떻고요?

혼자였다면 아마 6~8개월은 걸렸을 겁니다. 어쩌면 그 이상이요.

Copilot의 등장

저는 그동안 GitHub Copilot을 코드 자동 완성 용도로만 가볍게 사용하고 있었습니다. 그러다 2026년 2월 초쯤부터는 아예 Copilot과 '대화'하기 시작했습니다. 에이전트 모드를 활용해서 컨텍스트를 제공하고, 제가 필요한 것을 설명하면 시스템 전체를 작성하도록 맡겼죠.

변화는 정말 극적이었습니다.

가장 처음 "와!" 하고 감탄했던 순간 중 하나는 SMTP 페일오버가 필요할 때였습니다. 제 원래 계획은: 주 SMTP를 시도하고 실패하면 이메일 전송을 실패 처리하는 것이었죠. 하지만 Copilot은 제가 전혀 생각하지 못했던 것을 제안했습니다. 주 서버와 보조 서버가 모두 응답할 경우 동일한 이메일이 두 번 전송되는 것을 방지하기 위한 '중복 억제 확인(duplicate-suppression check)'을 공유하는 이중 라우트 아키텍처였습니다.

솔직히 저도 실무에서 이메일 전송 시스템을 구축할 때 이런 섬세한 부분까지 고려하기 쉽지 않았는데, Copilot이 제안하는 코드를 보면서 한 수 배웠다고 느꼈습니다. 이런 고급 패턴을 YouTube 튜토리얼이나 Stack Overflow가 아닌, 코파일럿이 코드를 작성하는 것을 보고 '왜?'라고 물어보면서 배운 겁니다.

backend/mailer/mailer.php의 최종 아키텍처는 다음과 같습니다:

// Copilot이 도입한 SMTP 페일오버 로직의 간소화된 예시
function send_mail(string $to, string $subject, string $html_body): bool {
    $primary   = smtp_transport('primary');
    $secondary = smtp_transport('fallback');

    // 중복 라우트 억제 — 둘 다 동일한 호스트/계정을 가리키면 대체 경로를 건너뛴다.
    if (same_transport($primary, $secondary)) {
        return attempt_send($primary, $to, $subject, $html_body);
    }

    if (attempt_send($primary, $to, $subject, $html_body)) {
        return true;
    }

    // 주 서버 실패 — 대체 서버 시도
    return attempt_send($secondary, $to, $subject, $html_body);
}

작은 부분이었지만, 저는 중복 억제 확인을 생각하지 못했을 겁니다. 그 작은 디테일 하나가 실제 프로덕션에서 심각한 버그를 유발할 수 있었죠.

Copilot이 만들어낸 것들

좀 더 구체적으로, GitHub Copilot이 저와 함께 검토, 테스트, 반복 작업을 거쳐 생성하거나 핵심 뼈대를 잡아준 목록입니다.

이메일 자동화 시스템

  • SMTP 주 서버 + 대체 라우팅 (mailer.php)
  • 보안 코드 생성 + 2FA 및 비밀번호 재설정을 위한 15분 만료 OTP
  • 장바구니 만료 알림 이메일 (send_engagement_reminders.php)
  • 위시리스트 만료 알림 이메일
  • 월별 수익 보고서 이메일 (monthly_profit_report.php)
  • 주간 분석 보고서 이메일 (weekly_analytics_report.php)

관리자 패널 시스템

  • 쿠폰 관리 (생성, 활성화, 유효성 검사, 캠페인 제어)
  • 제품 리뷰 관리 (배송 상태 자격 검증 포함)
  • 제품 휴지통 (복원 워크플로 및 상점 제외 로직 포함)
  • 서브 관리자 라이프사이클 (초대, 이메일 인증, 역할, 정지/재활성화, 삭제 + 즉시 세션 취소)
  • 보안 이벤트 모니터링 UI

보안 인프라

  • 엄격한 점수 임계값(기본값 0.65)을 가진 Google reCAPTCHA v3 검증, 액션 검증, 호스트명 확인, challenge_ts 신선도 검사
  • 특정 흐름에서 v3가 비활성화될 경우를 위한 reCAPTCHA v2 대체 기능
  • CAPTCHA 위젯에 내장된 허니팟(Honeypot) 필드
  • 대체 CAPTCHA 챌린지 (산수 + 지식 기반, 논스당 해싱된 답변, 시도 잠금)
  • 모든 민감한 엔드포인트에 대한 요청 제한(Rate limiting)
  • mysqli 준비된 구문에서 PDO로의 점진적 마이그레이션을 위한 PDO 헬퍼 레이어
  • security_helpers.php — 중앙 집중식 Argon2id/bcrypt 해싱, 비밀번호 정책 적용, 재해싱 로직
  • .github/workflows/security-gate.yml을 통한 CI 보안 게이트 — 푸시마다 정적 검사 + SECURITY_BASE_URL이 구성되면 동적 프로브 실행

결제 시스템 강화

  • 주문 시 SELECT ... FOR UPDATE를 사용한 재고 잠금
  • 중복 폼 제출을 차단하는 멱등성 키(Idempotency key) 소비
  • 고액 현금 결제(COD) OTP 임계값 (구성 가능한 한도를 초과하는 주문에 대한 이메일 OTP)
  • 모든 사용자 대면 데이터 변경 경로에 대한 환불 및 리뷰 블랙리스트 적용

Copilot 사용 전후 비교

구분Copilot 사용 전Copilot 사용 후
작성된 PHP 파일~8개 (기본 CRUD)추적된 PHP 파일 80개
보안 수준기본적인 입력 이스케이핑3단계 보안 모델 (기준 → 민감한 폼 → 중요한 결제 경로)
이메일 시스템단일 PHP mail() 호출SMTP 페일오버 + 6개의 자동화 스크립트
예상 완료 시간6–8개월3–4개월
내가 알던 미지PDO vs mysqli재고 잠금, CSP 논스, Argon2id, 멱등성 키
내가 몰랐던 미지SMTP 중복 억제, COD OTP 임계값 패턴, APCu/Redis 캐시 계층Copilot이 생성한 코드를 통해 발견

마지막 행이 정말 중요합니다. 제가 몰랐던 미지(Things I didn't know I didn't know)를 깨닫게 해주었다는 점이죠.


GitHub Copilot과 함께한 나의 경험

모델 선택의 중요성

저는 이 프로젝트 전반에 걸쳐 세 가지 모델을 사용했습니다.

Claude Sonnet 4.6 — 제 일상적인 작업량이었습니다. PHP 코드에 빠르고 정확했으며, 여러 파일에 걸친 컨텍스트를 잘 따라갔습니다. 상점 로직이나 관리자 UI를 빠르게 반복 작업할 때 Sonnet은 최고의 파트너였습니다. 매번 다시 설명할 필요 없이 제 기존 코드베이스 구조를 이해했죠.

Claude Opus 4.6 — 정말 어려운 부분에 사용했습니다. CAPTCHA 하이브리드 시스템을 설계해야 할 때나, 결제 보안 모델(트랜잭션 경계, 행 잠금, 멱등성)을 파악하려 할 때 Opus를 선택했습니다. 느리긴 했지만, 제가 미처 파악하지 못했을 엣지 케이스까지 논리적으로 추론해냈습니다. 제 README에 있는 "레벨 1, 레벨 2, 레벨 3 보안 심각도 모델"이라는 프레임워크도 Opus 세션에서 나온 것입니다.

GPT-5.2-Codex — 주로 브레이크포인트 테스트, 논리적 결함 발견, SQL 인젝션 벡터 확인, 보안 헬퍼 유효성 검사에 사용했습니다. 다른 모델은 코드를 읽는 관점이 달라서 마치 다른 시각을 가진 두 번째 눈을 가진 것 같았습니다. Copilot의 멀티 모델 아키텍처 덕분에 동일한 워크플로 내에서 모델을 원활하게 전환할 수 있었죠.

2026년 4월 현재, GitHub Copilot은 Claude 및 Codex 에이전트 모두에 대해 모델 선택을 지원하며, Anthropic 작업에는 Claude Sonnet 4.6 및 Claude Opus 4.6을, OpenAI Codex 작업에는 GPT-5.2-Codex, GPT-5.3-Codex, GPT-5.4를 사용할 수 있습니다.

실제로 어떤 일이 일어났나

마법은 아니었습니다. 분명히 말해두겠습니다.

저는 모든 프론트엔드 파일을 손으로 직접 작성했습니다. HTML/CSS 작업 중에 Copilot이 제안하는 것들은 대부분 불필요한 노이즈여서 무시했습니다. jQuery 인터랙션, Bootstrap 그리드, 상점 레이아웃 — 이건 모두 제가 수동으로 타이핑한 저의 결과물입니다.

Copilot의 가치가 폭발적으로 빛난 곳은 PHP 시스템 로직이었습니다. 엣지 케이스 하나를 놓치면 보안 허점이나 결제 과정의 경쟁 조건(race condition)으로 이어질 수 있는 코드, 배우지 못한 패턴을 알아야 하는 종류의 코드에서 말이죠.

실제 예를 들자면 이렇습니다. "CSRF 보호"가 필요하다는 건 알았죠. 하지만 토큰을 정확히 어디서 검증해야 하는지(데이터베이스 작업 이전에, 이후가 아니라), 그리고 유효성이 검증된 요청마다 토큰을 재생성하는 것이 의미 있는 강화 단계라는 것은 몰랐습니다. Copilot이 올바른 방식으로 코드를 작성해 주었고, 저는 코드를 읽고 왜 그런지 물어봤으며, Copilot이 설명해주었습니다. 이것은 단순한 자동 완성이 아니라, 도구에 내재된 멘토링과 같았습니다.

제가 반려했던 부분들

Copilot이 항상 옳았던 것은 아닙니다. 몇 가지는 제가 거부하거나 상당 부분 수정했습니다.

  • 초기에는 몇몇 헬퍼 쿼리에서 문자열 연결을 사용한 SQL을 생성했습니다. 저는 이에 반대하고 모든 곳에서 준비된 구문(prepared statements)을 사용하도록 강제했습니다.
  • reCAPTCHA 로직의 한 버전은 호스트명이나 challenge_ts를 검증하지 않았습니다. 저는 강화를 요청했고 더 엄격한 구현을 얻어냈죠.
  • 요청 제한(rate limiter)의 첫 버전은 버스트 허용(burst tolerance) 기능이 없었습니다. 빠르게 타이핑하는 정당한 사용자를 차단했을 겁니다. 저는 테스트 중에 이를 발견했습니다.

가장 올바른 모델은 이겁니다: 당신이 아키텍트이고, Copilot은 때로는 지름길을 택하는 매우 빠른 계약자라는 점을 잊지 마세요. 모든 것을 검토해야 합니다. 제가 실무에서 여러 AI 코딩 도구를 테스트해 봤을 때, AI는 분명 뛰어난 '하도급자' 역할을 하지만, 전체 시스템의 '아키텍트'는 결국 개발자 자신이라는 걸 잊어선 안 됩니다. Copilot의 제안을 맹신하기보다, 왜 그렇게 동작하는지 끊임없이 질문하고 검증하는 과정이 중요하죠.

AI를 사용하면서 배우는 것

사람들이 충분히 말하지 않는 것이 있습니다. AI 기반 개발은 제가 무언가를 대체하기보다는, 오히려 더 많은 것을 가르쳐주었습니다. 저는 PDO, Argon2id, CSP 논스, 멱등성 키, 재고 잠금, Cloudinary 서버 측 서명, APCu 캐싱, Redis 연결 풀링 — 이 모든 것을 Copilot이 생성한 코드를 읽고, 테스트하고, 질문하는 과정을 통해 배웠습니다. 만약 혼자였다면 훨씬 더 간단한 코드를 작성했을 것이고, 이런 패턴들을 전혀 접하지 못했을 겁니다.

여기서의 대안은 "이걸 밑바닥부터 배웠을 것이다"가 아니었습니다. 대안은 "덜 안전하고 덜 완성된 무언가를 출시했을 것이다"였습니다.

GitHub Copilot agent mode in VS Code: active code generation session, PHP security helpers file open


마치며

Commerza는 이제 아카이브되었습니다. 2026년 5월 5일, 이 프로젝트를 포기해서가 아니라, 제가 정말 만족할 만한 상태에 도달했기 때문에 아카이브한 것입니다. 339개의 파일, 80개의 PHP 파일, 136개의 커밋. CI 보안 게이트, 이중 SMTP 메일러, 실제로 사용할 만한 관리자 패널까지.

완벽하냐고요? 아닙니다. 바꾸고 싶은 부분도 있습니다. PDO 마이그레이션은 아직 미완성이며, README에도 솔직하게 명시되어 있습니다. 일부 관리자 UI 페이지는 다른 페이지보다 거친 부분도 있고요. 성장할 여지는 충분합니다.

하지만 존재하고, 실행되며, 대부분의 튜토리얼 기반 PHP 프로젝트가 완전히 무시하는 실제 보안 문제들을 처리합니다.

이것이 바로 3개월이라는 시간과 GitHub Copilot이 만들어낸 차이입니다.

저는 '감성 코더'가 아닙니다. 그저 프롬프트만 입력하고 결과물을 내놓는 사람도 아니죠. Copilot은 저의 가속기이자, 패턴 라이브러리였으며, 진정으로 백엔드 개발의 '선생님'이었습니다. 프론트엔드는 제 몫이었고, 아키텍처 결정도 제 몫이었습니다. 테스트하고, 디버깅하고, "잠깐, 이게 말이 안 되는데, 새벽 1시에 다시 생성된 코드를 읽어보자"라고 했던 순간들 — 이 모든 것이 저의 몫이었습니다.

AI 도구를 '속임수'라고 생각하는 학생 개발자들에게 말하고 싶습니다. 절대 그렇지 않습니다. 이 도구들은 우리가 가장 쉽게 접할 수 있는, 무료로 사용할 수 있는, 시니어 개발자와 페어 프로그래밍을 하는 것과 가장 가까운 경험을 제공합니다. 현명하게 사용하세요. 생성된 모든 코드를 읽고, 잘못된 부분은 지적하고, '왜' 그렇게 되었는지 질문하세요.

그것이 8개월이 걸릴 프로젝트를 3개월 만에 프로덕션급 이커머스 플랫폼으로 만들어내는 방법입니다.


링크:


Syed Ahmer Shah 제작 — HITMS BSE, Aptech ADSE 소프트웨어 공학 학생, 파키스탄. 2026.


웹에서 저를 찾아보세요


원문: https://dev.to/syedahmershah/i-built-a-production-grade-e-commerce-platform-in-3-months-github-copilot-was-my-co-founder-11m4 수집일: 2026-05-25 02:04:11