PHP/쇼핑몰 만들기

🏬 PHP로 쇼핑몰(B2B/B2C) 제작하기 (프롤로그)

ethanjoh 2026. 9. 6. 01:05

제작동기

쇼핑몰 제작의 시작은 20여년 전 근무하던 도매업체의 홈페이지를 만들면서 시작되었습니다.

처음엔 단순 판매제품을 소개하는 홈페이지였는데, 하다보니 아예 온라인 쇼핑몰을 만들면 어떨까 해서 PHP를 공부하기 시작했고, 서점에서 구입한 책을 보며 만들기 시작했습니다.

당시에도 아마 카페24에서 제공하던 무료 쇼핑몰이 있지 않았나 싶기도 한데, 왜 만들려고 했는지는 기억이 잘 나지는 않지만 도매라는 특성이 있었습니다.

B2B다 보니 보여지는 소비자가와 고객인 업체들에게 제공하는 도매가가 달라야 했고, 외부로 노출이 되면 안되니 회원가입을 반드시 해야하고, 로그인 해야만 도매가가 보이고, 또 업체마다 마진율을 차등을 줄 수 있어야 했습니다.


직접 제작과 무료 호스팅의 장단점

쇼핑몰을 직접 제작했을 때의 가장 큰 장점은 내 입맛대로 내게 필요한 기능을 그 때 그 때 추가할 수 있었다는 것이었습니다.

그렇게 실제로 운영하면서 제작 노하우랄까 그런 것들이 쌓이게 되었고, 지인들에게 소정의 제작비만을 받고 소스 그대로 유사한 쇼핑몰을 몇 개 더 제작해서 운영할 수 있도록 도와주기도 했습니다.

직접 제작했을 때와 무료제공 쇼핑몰의 장단점을 비교하자면, 초기 비용과 시간입니다.
당장 운영을 시작해야 하는데, 몇 달씩 걸려 제작을 해야한다면 충분한 여유자금없이는 힘듭니다.
(그래서, 맨땅에 헤딩하기 보단 기성 소스가 필요합니다.)

비교 항목 직접 제작 (자체 개발/구축형) 무료 호스팅 솔루션 (카페24 등)
초기 구축 비용 수백만 ~ 수천만 원 이상 발생 무료 (도메인, 유료 테마 등 일부 제외)
제작 기간 보통 1~3개월 이상 소요 빠르면 수 시간 ~ 며칠 내 개설
필요 기술 수준 프론트엔드/백엔드 개발, 서버 지식 필요 웹 브라우저 조작 및 기초 디자인 감각
자유도 / 커스텀 기획한 모든 기능을 100% 구현 가능 플랫폼이 제공하는 규격 내에서만 수정 가능
유지보수 및 보안 서버 증설, 보안 패치, 장애 대응 직접 전담 플랫폼 본사에서 서버 관리 및 자동 업데이트
결제(PG) 및 부가기능 PG사 연동 API를 직접 코딩·연결 원클릭 신청 및 연동 플러그인 제공
데이터 및 코드 소유권 서버, 소스코드, 회원 DB를 100% 보유 플랫폼에 종속되어 이전 시 데이터 이관 까다로움

이 중에서 제가 제일 좋았던 것은 바로 자유도/커스터마이징 입니다.
뭐든 내가 원할 때 원하는 기능을 마음대로 붙일 수 있다는 것이었고, 그러면서 실력도 많이 쌓였습니다.

반대로 가장 어려웠던 부분은 PG사 연동 부분이었습니다.
기본 제공되는 샘플 소스가 있다고는 하지만 막상 내 앞에 주어지더라도 이걸 보고 어떻게 하라는걸까? 라는 생각에 앞이 막막했지만 어떻게든 꾸역꾸역 연동시켰습니다.


설계도를 가지고 직접 집을 만드는 과정

만약 여러분 앞에 건물 설계도가 있다고 칩시다.
그렇다고 이제 집을 만들어 보세요 하면 만들 수 있을까요?
도면을 읽을 줄 알아야 하고 자재는 어떤 걸 얼마나 쓰면 되고, 실제 시공은 어떻게 하면 되는지 알아야 합니다.

그래서, 건설사가 만들어놓은 아파트에 입주할 수도 있지만 전원에 내가 직접 주택을 만들어 살 수도 있습니다.
지금부터 하는 과정은 바로 전원주택을 만드는 것이라고 보면 됩니다.

그렇다면 못과 망치만 가지고 만들 수는 없기에 본 프로젝트에서 제공하는 소스를 가지고 만들어가는 과정을 하나하나 학습해 보면 됩니다.


무엇을 어떻게 만들 것인가?

시작은 B2B 쇼핑몰이었지만 설정에 따라 B2C로도 운영이 가능하기 때문에 크게 문제는 없습니다.
처음 만들었을 때는 오픈마켓처럼 입점업체도 받아서 운영할 수 있도록 만들었지만, 실제로 운영해본 적이 없어 이번 프로젝트에서는 삭제하기로 했습니다.

🛠️ 기술 스택 (Tech Stack)

  • Backend: PHP 8.x+ (mysqli 확장을 활용한 데이터베이스 핸들링)
  • Database: MySQL / MariaDB
  • Frontend: HTML5, CSS3, JavaScript
  • Libraries & Modules:

🌟 핵심 기능 (Key Features)

  1. 상품 및 브랜드 관리
    • 다중 서브 카테고리를 활용한 정교한 상품 전시 구조
    • 브랜드별 전용 상품 필터링 및 관리자 제어 기능
  2. 정밀한 옵션/재고 시스템
    • 다중 옵션 적용 상품에 대한 실시간 재고 차감 및 주문 정합성 검증
    • 장바구니 적재 및 주문 시점의 초과 주문 차단 정책 반영
  3. 통합 결제 시스템 (PG)
    • 토스페이먼츠 API 연동을 통한 웹/모바일 결제 지원
    • 가상계좌 발급 통보 콜백 처리 및 현금영수증 발행 기능
    • 카드 매출전표 즉시 출력 및 부분 취소, 자동 에스크로 연동
  4. 회원 서비스 및 보안 정책
    • 일반 회원 및 개인 사업자 회원 체계 분리
    • 우편번호/주소 API 연동 및 세션 기반의 페이지 접근 제어 (auth.php)

📂 디렉토리 구조 (Directory Structure)

SOHO-market/
├── admin/          # 쇼핑몰 관리자 전용 제어 페이지 및 데이터 처리 (PHPExcel 포함)
├── bbs/            # 공통 게시판 모듈 및 CKEditor 엔진
├── css/ / fonts/   # 프론트엔드 스타일 및 레이아웃 웹폰트
├── db_backup/      # 데이터베이스 백업 덤프 저장 경로 (.gitignore 적용)
├── images/ / img/  # 공통 레이아웃용 정적 이미지 리소스
├── include/        # 헤더, 푸터 등 반복 레이아웃 조각 템플릿
├── js/             # 공통 스크립트 및 UI 제어 라이브러리
├── lib/            # 부가적인 프론트엔드/백엔드 공통 라이브러리
├── member/         # 회원가입, 로그인, 아이디/비밀번호 찾기 기능
├── pay/            # 일반 PC 결제 요청 및 응답(결제완료/취소) 처리 페이지
├── shop/           # 상품 전시, 장바구니, 주문 결제 정보 매칭 비즈니스 로직
├── smartpay/       # 모바일 최적화 결제 처리 모듈
├── upload/         # 상품 대표/상세 이미지 및 데이터 업로드 경로 (.gitignore 적용)
└── util/           # DB 커넥터 및 공통 헬퍼 함수 라이브러리 (config.ini 포함)

최종결과물

무엇보다 그간 만들어 오면서 최적화가 되어 있지 않아 이번 프로젝트에서는 바이브코딩을 통해 기존의 소스를 리팩토링하는 수순이 되지 않을까 싶습니다.

최종적으로 프로젝트가 끝날 때면 초기에 셋팅을 제외하고는 거의 큰 수정없이 포팅하는 것만으로 운영이 가능할 정도의 수준이 되도록 노력할 예정입니다.

반응형

최근 댓글

Total

  • Today :
  • Yesterday :