셀러들의 비밀무기 셀러허브 (SellerHub) 개발 상세 계획

내부 개발용 문서 – 아키텍처, 네이밍 전략, 일정, 구현 범위를 정리한 기술 기획안입니다.

프로젝트명: 셀러들의 비밀무기 셀러허브 (SellerHub) 예상 개발기간: 약 3주 개발환경: Ubuntu VPS · Apache · PHP · MariaDB · jQuery

1. 시스템 개요 및 목적

1-1. 시스템 목적 및 홈페이지 제작 이유

여러 명품/패션 플랫폼(네이버가격비교/머스트잇/필웨이/트렌비/리본즈/구구스/크림/캉카스) 8개 플랫폼의 데이터를 수집·분석해서 "잘 팔리는 상품(브랜드/모델)"을 빠르게 찾아주는 도매/사입용 소싱 인텔리전스 사이트.

각 플랫폼별로:

등을 필터로 찾을 수 있게 하는 것이 핵심 목적입니다.

홈페이지를 만드는 이유:

  • 여러 플랫폼의 데이터를 한 곳에서 통합 조회하여 소싱 시간 단축.
  • 판매량, 찜 수, 가격 등 다양한 기준으로 소팅하여 사입할만한 제품을 빠르게 발견.
  • AI 기반 트렌드 분석으로 최신 인기 상품을 선제적으로 파악.
  • 각 플랫폼별 평균가격, 최근 판매량 등 상세한 분석 데이터 제공으로 의사결정 지원.
  • 회원제 폐쇄형 시스템으로 경쟁사에게 노출되지 않는 내부 소싱 도구로 활용.
  • 크림의 일반판매/보관판매 가격, 네이버가격비교 해외직구 제외 등 플랫폼별 특수 정보를 통합 제공.

1-2. 개발 철학 및 원칙

데이터/품질 방향:

  • 정확도 및 퀄리티 최우선: DB 수집, 가격분석, 트렌드분석, 상세정보 등 모든 데이터는 100% 정확한 정보만 제공.
  • 검증된 정보만 제공: 2025년 하반기부터 오늘까지의 키워드 검색량, 관련정보들을 상세 분석 후 100% 검증된 결과만 제공.

UX/구조 설계:

  • 사용자 편의성: 사용자가 쓰기 편하게 모든 구조/화면을 직관적으로 맞춤.
  • 한 화면 통합 제공: 상품 1개(브랜드명 또는 모델명) 검색 시 각 플랫폼별 평균가격, 최근 판매량, 관련 인기상품(비슷한 카테고리/모델명) 추천까지 한 화면에서 제공.

1-3. 주요 기능

1-4. 플랫폼별 특수 처리

1-5. 한 줄 요약

"여러 명품/패션 플랫폼의 판매·가격·트렌드 데이터를 모아서,
잘 팔리는 상품과 뜨는 브랜드를 AI로 분석해 보여주는
'도매/사입용 소싱 인텔리전스 사이트'를 만든다."

2. 시스템 아키텍처

2-1. 계층 구조

  • 프론트엔드: HTML, CSS, jQuery, Vanilla JS
  • 백엔드: PHP (MVC 강제 X, 모듈 분리 중심)
  • 데이터베이스: MariaDB (정규화 + 집계용 테이블 병행)
  • 서버: Ubuntu VPS + Apache, 실시간 검색 처리

2-2. 주요 모듈

3. 기술 스택 및 규칙

3-1. 공통 스택

Ubuntu Apache PHP 7.4+ MariaDB Bootstrap jQuery 3.x Vanilla JS

3-2. 폴더/파일/함수 네이밍 정책

사용자 페이지 파일명: 의미있는 이름 사용 (예: home.php, search.php, mypage.php 등). 디렉터리 최상단에 직접 배치.

나머지 요소들은 난수화: 외부에서 구조 파악을 어렵게 하기 위해, 다음 요소들은 모두 의미 없는 난수형 이름을 사용한다.

개발 편의를 위해, 논리 이름과 실제 난수 이름의 대응 관계는 내부 전용 맵핑 파일/문서에서 관리한다.

3-3. 맵핑 설계 (논리 이름 ↔ 실제 이름)

논리 이름 예시
실제 사용 예시
SEARCH_MAIN
home.php (의미있는 파일명), /t3n7v/p7w1s/home.css (난수 폴더/파일명), /j8f2h/p7w1s/home.js (난수 폴더/파일명)
SEARCH_RESULT
search.php (의미있는 파일명), /t3n7v/p7w1s/search.css (난수 폴더/파일명), /j8f2h/p7w1s/search.js (난수 폴더/파일명)
GET_USER_APPROVAL_STATUS
/p7q3w/auth/fn_q7m3a.php (난수 폴더/파일명/함수명)

실제 구현 시에는 Git/내부 위키에 별도 표 형태로 정리하여, 신규 투입 인원이 전체 구조를 빠르게 파악할 수 있도록 한다.

4. 디렉터리 구조 (개념)

실제 디렉터리는 다음과 같은 역할 구조로 설계한다. 사용자 페이지 파일만 의미있는 이름을 사용하고, 나머지는 난수화한다.

/root
 ├── home.php                # 메인 페이지 (의미있는 파일명)
 ├── search.php              # 검색 결과 페이지 (의미있는 파일명)
 ├── brand.php               # 브랜드 인기상품 페이지 (의미있는 파일명)
 ├── trend.php               # 트렌드 분석 페이지 (의미있는 파일명)
 ├── mypage.php              # 마이페이지 (의미있는 파일명)
 ├── register.php            # 회원가입 페이지 (의미있는 파일명)
 ├── login.php               # 로그인 페이지 (의미있는 파일명)
 ├── /m4p8q                 # 사이드바 전용 PHP (난수 폴더명)
 ├── /t3n7v                 # CSS 파일들 (난수 폴더명)
 │     ├── /x9k2m          # 공통 CSS (난수 파일명)
 │     ├── /p7w1s          # 페이지별 PC용 CSS (난수 폴더명)
 │     ├── /k5m9r          # 페이지별 모바일 CSS (난수 폴더명)
 │     ├── /m4p8q          # 사이드바 CSS (난수 폴더명)
 │     └── ...
 ├── /j8f2h                 # JS 파일들 (난수 폴더명)
 │     ├── /x9k2m          # 공통 JS (난수 파일명)
 │     ├── /p7w1s          # 페이지별 JS (난수 폴더명)
 │     ├── /m4p8q          # 사이드바 전용 JS (난수 폴더명)
 │     └── ...
 ├── /p7q3w                 # PHP 모듈 파일들 (난수 폴더명)
 │     ├── /db             # DB 연결 (난수 파일명)
 │     ├── /util           # 공통 유틸 함수 (난수 파일명)
 │     ├── /auth           # 로그인/회원 승인 (난수 파일명)
 │     ├── /search         # 검색 통합 처리 (난수 파일명)
 │     ├── /platform       # 플랫폼별 검색 모듈 (난수 폴더명)
 │     │     ├── /naver    # 네이버가격비교 모듈 (난수 파일명)
 │     │     ├── /mustit   # 머스트잇 모듈 (난수 파일명)
 │     │     ├── /philway  # 필웨이 모듈 (난수 파일명)
 │     │     ├── /trendy   # 트렌비 모듈 (난수 파일명)
 │     │     ├── /ribbons  # 리본즈 모듈 (난수 파일명)
 │     │     ├── /gugus    # 구구스 모듈 (난수 파일명)
 │     │     ├── /kream    # 크림 모듈 (난수 파일명)
 │     │     └── /kangkas  # 캉카스 모듈 (난수 파일명)
 │     ├── /brand          # 브랜드 인기상품 모듈 (난수 파일명)
 │     └── ...
 ├── /a5d9k                 # 관리자 페이지 전용 폴더 (난수 폴더명)
 │     ├── /x9k2m          # 관리자 페이지 PHP (난수 파일명)
 │     ├── /m4p8q          # 관리자 사이드바 전용 PHP (난수 파일명)
 │     ├── /t3n7v          # 관리자 페이지 CSS (난수 파일명)
 │     ├── /m4p8q          # 관리자 사이드바 CSS (난수 파일명)
 │     ├── /j8f2h          # 관리자 페이지 JS (난수 파일명)
 │     ├── /m4p8q          # 관리자 사이드바 JS (난수 파일명)
 │     └── /p7q3w          # 관리자 기능 PHP 모듈 (난수 파일명)
 │           ├── /ai       # AI 설정 모듈 (난수 파일명)
 │           └── /telegram # 텔레그램 알림 모듈 (난수 파일명)
 └── /l2r6t                 # 로그 파일들 (난수 폴더명)

사용자 페이지 파일명 규칙:

예: 논리명 "SEARCH_MAIN" → 실제 파일 "home.php", 논리명 "SEARCH_RESULT" → 실제 파일 "search.php"

5. 권한 및 플로우 설계

5-1. 사용자 유형

5-2. 기본 플로우

  • 회원가입 요청 → 관리자 페이지에서 목록 확인.
  • 관리자가 승인/거절/정지 상태 변경.
  • 승인된 계정만 로그인 후 검색 기능 사용 가능.
  • 승인 대기/거절 계정은 안내용 전용 페이지로 분기.

6. 검색 처리 설계

6-1. 검색 처리 방식

6-2. 처리 파이프라인

  1. 사용자 검색 키워드 입력 (브랜드명, 모델명, 일반 키워드).
  2. 키워드 전처리 (공백 제거, 특수문자 처리, 인코딩).
  3. 각 플랫폼별 검색 모듈 병렬 호출 (네이버가격비교, 머스트잇, 필웨이, 트렌비, 리본즈, 구구스, 크림, 캉카스).
  4. 플랫폼별 검색 결과 수신 및 파싱 (상품명, 가격, 이미지, 링크, 브랜드명 등).
  5. 결과 통합 및 정렬 (가격순, 플랫폼별, 인기순 등).
  6. 각 플랫폼별 평균가격 계산 및 표시 (동일 상품이 여러 플랫폼에 있을 경우 평균가격 산출).
  7. 검색 결과 화면에 표시 (상품 정보, 플랫폼별 가격, 평균가격, 플랫폼별 링크) 및 검색 이력 저장 (선택).

6-3. 지원 플랫폼 목록

  • 네이버가격비교 (Naver Price Comparison)
  • 머스트잇 (Mustit)
  • 필웨이 (Philway)
  • 트렌비 (Trendy)
  • 리본즈 (Ribbons)
  • 구구스 (Gugus)
  • 크림 (Kream)
  • 캉카스 (Kangkas)

6-4. 검색 결과 표시 정보

6-5. 브랜드 인기상품 기능

6-6. AI 연동 기능

AI 기반 분석 기능:

6-7. 필터 및 소팅 기능

"판매가 잘 되는 데이터"를 찾기 위한 다양한 필터 제공:

6-8. 유사 상품 추천 기능

7. 화면 및 컴포넌트 구조

7-1. 공통 레이아웃

7-2. 주요 페이지 논리 목록 및 실제 파일명

논리 이름
실제 파일명
설명
SEARCH_MAIN
home.php
검색 메인 페이지 (검색 입력창, 최근 검색어, 인기 검색어, AI 추천 브랜드/모델명)
SEARCH_RESULT
search.php
검색 결과 페이지 (통합 결과 표시, 플랫폼별 필터, 정렬 옵션, 평균가격 표시, 판매량 정보, 유사 상품 추천)
BRAND_POPULAR
brand.php
브랜드 인기상품 페이지 (플랫폼별 브랜드 인기상품 조회 및 통합 표시, 잘 판매되는/최근 뜨는/꾸준한 스테디셀러 필터)
TREND_ANALYSIS
trend.php
트렌드 분석 페이지 (AI 기반 최신 뜨는 브랜드, 검색량 증가 분석, 트렌드 예측)
MY_PAGE
mypage.php
마이페이지 (회원정보 조회/변경, 결제 플랜 정보, 이용 기간, 최근 분석 내역)
REGISTER
register.php
회원가입 페이지 (아이디 중복체크, 비밀번호 입력, 전화번호, 이메일, 가입경로)
LOGIN
login.php
로그인 페이지
ADMIN_PANEL
/a5d9k/ (난수 폴더 내 난수 파일명)
관리자 페이지 (회원 관리, 유료회원 승인/기간 설정, 검색 통계, 플랫폼 연동 상태, AI 모델 설정, 텔레그램 알림 설정) - 별도 폴더에서 관리, 사이드바+메인 구조

파일명 규칙: 사용자 페이지 파일명만 의미있는 이름을 사용하고, 나머지(사이드바, CSS, JS, PHP 모듈, 관리자 페이지 등)는 난수화한다.

7-3. HTML/CSS 구조 설계 원칙

파일 구조:

  • 각 페이지는 PHP 파일에 전체 로직 포함 (비즈니스 로직, DB 접근, 권한 체크 등).
  • HTML은 껍데기(마크업)만 담당 (레이아웃, 구조만).
  • PHP 파일 내에서 HTML 마크업을 직접 작성하거나, 별도 HTML 템플릿을 include하여 사용.

HTML 클래스 네이밍 규칙:

  • 각 페이지별로 고유한 클래스명 사용 (페이지 간 클래스명 충돌 방지).
  • 각 섹션(section), 컨테이너(container)별로 고유한 클래스명 사용.
  • 예시: search-main-header, search-main-input-section, search-result-item-container 등.
  • 같은 기능이라도 페이지가 다르면 다른 클래스명 사용 (예: 검색 메인 페이지의 버튼과 결과 페이지의 버튼은 다른 클래스명).

CSS 구조 원칙:

  • 각 클래스를 별도의 개별 스타일로 구성.
  • 1개 섹션이나 1개 컨테이너에 대한 스타일은 해당 클래스에만 적용되도록 작성.
  • 공통 스타일은 공통 CSS 파일에, 페이지별 스타일은 페이지 전용 CSS 파일에 분리.
  • 인라인 스타일 사용 금지 (CSS 파일에만 정의).
  • 클래스명은 의미 있는 이름 사용 (난수화는 파일명에만 적용, 클래스명은 개발 편의를 위해 의미 있는 이름 사용).

JavaScript 규칙:

  • 주석 절대 금지: JS 파일 내에 주석(개발용 주석 포함)을 달지 않음.
  • 변수명, 함수명은 난독화 스타일로 작성 (의미 없는 이름 사용).

7-4. 디자인 규칙 및 반응형 설계

아이콘 및 UI 라이브러리:

  • 아이콘 대신 부스트트랩(Bootstrap) 활용.
  • 부스트트랩의 아이콘, 컴포넌트, 유틸리티 클래스를 적극 활용.

반응형 브레이크포인트:

  • PC 버전: 1200px 이상
  • 태블릿: 992px ~ 1199px
  • 큰 폰: 768px ~ 991px
  • 중간 폰: 576px ~ 767px
  • 작은 폰: 575px 이하

모바일 디자인 원칙:

  • 모바일에서는 한 화면에 최대한 많은 정보가 담기도록 설계.
  • 상품 카드:
    • 무조건 1열 2그리드 또는 3그리드로 가로 배치.
    • 세로 스크롤 방식이 아닌 가로 그리드 배치.
  • 텍스트 및 섹션:
    • 텍스트나 섹션도 가로로 배치하여 공간 효율성 극대화.
    • 가능한 한 세로 스크롤을 최소화하고 가로 레이아웃 활용.

디자인 스타일 제한:

  • AI 같은 컬러 금지: 과도하게 밝거나 눈에 띄는 AI 스타일 컬러 사용 금지.
  • 애니메이션 스타일 금지: 과도한 애니메이션, 트랜지션 효과 사용 금지.
  • 심플하고 실용적인 디자인을 지향.

7-4-1. 디자인 테마: 고급 화이트 부티크 미래지향 스타일

참고 디자인: 구구스 디자인 참고용 폴더의 스타일을 분석하여, 다크 테마를 화이트톤으로 변환한 고급 부티크 미래지향 테마 적용.

컬러 팔레트 (화이트톤 변환):

  • 배경색:
    • 메인 배경: #ffffff (순수 화이트)
    • 섹션 배경: #fafafa, #f5f5f5 (미묘한 그레이 톤)
    • 카드/컨테이너 배경: #ffffff (화이트)
    • 사이드바 배경: #f8f9fa (연한 그레이)
  • 텍스트 색상:
    • 주요 텍스트: #1a1a1a, #2c2c2c (다크 그레이)
    • 보조 텍스트: #666666, #808080 (미디엄 그레이)
    • 약한 텍스트: #999999, #b3b3b3 (라이트 그레이)
  • 보더 색상:
    • 주요 보더: rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.12) (미묘한 검은색)
    • 호버 보더: rgba(0, 0, 0, 0.2) (약간 진한 검은색)
    • 액센트 보더: rgba(0, 0, 0, 0.15) (중간 톤)
  • 액센트 컬러:
    • 주요 액센트: #525252, #737373 (다크 그레이 계열)
    • 강조 색상: #1a1a1a (검은색)
    • 성공/에러: 미묘한 그린/레드 톤 (과도하지 않게)

타이포그래피:

  • 폰트 패밀리: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif
  • 폰트 웨이트: 300 (Light), 400 (Regular), 500 (Medium), 600 (Semi-bold)
  • 레터 스페이싱: 0.2px ~ 0.5px (미묘한 간격)
  • 라인 하이트: 1.4 ~ 1.7 (여유 있는 간격)
  • 폰트 사이즈: 11px ~ 18px (작은 사이즈부터 큰 사이즈까지)

레이아웃 및 간격:

  • 패딩: 16px ~ 32px (섹션별 적절한 여백)
  • 마진: 20px ~ 32px (요소 간 간격)
  • 보더 라디우스: 4px, 6px, 8px (작은 값으로 미니멀한 느낌)
  • 그리드 갭: 16px ~ 24px (카드 간 간격)

부티크 스타일 요소:

  • 미묘한 그림자: box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) ~ 0 4px 12px rgba(0, 0, 0, 0.1)
  • 은은한 보더: 1px solid rgba(0, 0, 0, 0.08) ~ rgba(0, 0, 0, 0.12)
  • 부드러운 호버 효과: transition: all 0.2s ~ 0.3s ease
  • 미묘한 그라데이션: linear-gradient (과도하지 않게)
  • backdrop-filter: blur (필요한 경우만, 과도하지 않게)

컴포넌트 스타일:

  • 카드/컨테이너:
    • 배경: #ffffff
    • 보더: 1px solid rgba(0, 0, 0, 0.08)
    • 보더 라디우스: 4px ~ 8px
    • 패딩: 24px ~ 32px
    • 호버 시: 보더 색상 약간 진하게, 미묘한 그림자 추가
  • 버튼:
    • 배경: #f5f5f5 또는 #ffffff
    • 보더: 1px solid rgba(0, 0, 0, 0.12)
    • 텍스트: #1a1a1a
    • 호버: 배경 #fafafa, 보더 rgba(0, 0, 0, 0.2)
  • 입력 필드:
    • 배경: #ffffff
    • 보더: 1px solid rgba(0, 0, 0, 0.12)
    • 포커스: 보더 rgba(0, 0, 0, 0.2), 미묘한 그림자
  • 사이드바:
    • 배경: #f8f9fa
    • 보더: 1px solid rgba(0, 0, 0, 0.08)
    • 네비게이션 링크: #666666, 호버 시 #1a1a1a
    • 액티브: #1a1a1a, 왼쪽 보더 강조

미래지향적 요소 (과도하지 않게):

  • 미묘한 그라데이션 효과 (배경이나 텍스트에만, 과도하지 않게)
  • 부드러운 transition 효과 (0.2s ~ 0.3s)
  • backdrop-filter: blur (필요한 경우만, 성능 고려)
  • 미묘한 그림자 효과 (깊이감 표현)
  • 과도한 애니메이션 금지 (구구스 스타일의 애니메이션은 제외)

구구스 스타일에서 제외할 요소:

  • 과도한 그라데이션 애니메이션 (dashboardTitleGlow 등)
  • 펄스 애니메이션 (subtlePulse 등)
  • 플로우 애니메이션 (sidebarTitleFlow 등)
  • 과도한 색상 변화 애니메이션
  • 다크 테마 관련 모든 스타일 (화이트톤으로 변환)

적용 원칙:

  • 구구스 디자인 참고용 폴더의 레이아웃 구조와 간격, 타이포그래피 스타일을 참고.
  • 다크 테마를 화이트톤으로 변환하되, 고급스러운 부티크 느낌 유지.
  • 미래지향적 요소는 미묘하게만 적용 (과도한 애니메이션 제외).
  • 전체적으로 깔끔하고 미니멀하면서도 고급스러운 느낌을 추구.

7-5. 마이페이지 상세 기능

7-6. 회원가입 페이지 상세 스펙

입력 필드:

  • 아이디:
    • 중복체크 기능 무조건 필수 (실시간 또는 버튼 클릭).
    • 중복체크 완료 전에는 가입 불가.
    • 플레이스홀더: "아이디를 입력하세요"
  • 비밀번호:
    • 비밀번호 입력 텍스트박스 1개만 사용 (비밀번호 확인 컨펌 텍스트박스 사용하지 않음).
    • 텍스트박스 오른쪽 끝에 눈 모양 버튼 추가.
    • 눈 모양 버튼 클릭 시 비밀번호 마스킹 해제/적용 토글.
    • 플레이스홀더: "비밀번호를 입력하세요"
  • 전화번호:
    • 필수 입력 항목.
    • 플레이스홀더: "전화번호를 입력하세요 (예: 010-1234-5678)"
  • 이메일:
    • 선택 입력 항목.
    • 플레이스홀더: "이메일을 입력하세요 (선택)"
  • 가입경로:
    • 무조건 입력 필수 항목.
    • 텍스트로 직접 입력 (드롭다운 X).
    • 플레이스홀더: "가입경로를 입력하세요"

플레이스홀더 규칙:

  • 모든 텍스트박스는 플레이스홀더 방식으로 텍스트박스 안에서 내용이 나오도록 구현.
  • 라벨은 사용하지 않고 플레이스홀더만 사용.

7-7. 보안 및 통신 규칙

7-8. 전역 UI 컴포넌트 (모달/토스팅)

모달 팝업 및 토스팅 메시지:

  • 모든 관리자/사용자 페이지에서 일반 팝업(alert, confirm 등) 사용 금지.
  • 모든 알림/확인은 모달 팝업 또는 토스팅 메시지로 처리.
  • 전역 인스턴스로 선언하여 모든 페이지에서 동일한 방식으로 사용.
  • 예시:
    • 성공 메시지: 토스팅 메시지 (하단 또는 상단에 일정 시간 표시 후 자동 사라짐).
    • 확인 필요 메시지: 모달 팝업 (확인/취소 버튼 포함).
    • 에러 메시지: 토스팅 메시지 또는 모달 팝업.
  • 사용자 편의성을 최우선으로 하여 직관적이고 일관된 UI 제공.

7-9. 관리자 페이지 상세 기능

레이아웃 구조:

  • 관리자 페이지도 사이드바 + 메인 컨텐츠 구조로 구성.
  • 관리자 사이드바는 별도 PHP 파일로 구성 (일반 사용자 사이드바와 완전 분리).
  • 관리자 사이드바 전용 CSS/JS 파일 사용.

주요 기능:

  • 회원 관리 (회원 목록, 승인/거절/정지, 유료회원 승인/기간 설정).
  • 검색 통계 (검색 빈도, 인기 키워드, 플랫폼별 통계).
  • 플랫폼 연동 상태 확인.

7-10. AI 모델 설정 기능

관리자 페이지에서 AI 모델 설정:

  • AI 모델 선택:
    • GPT (OpenAI) 또는 제미나이 (Google Gemini) 중 하나 선택 가능.
    • 라디오 버튼 또는 드롭다운으로 선택.
    • 선택한 모델이 시스템 전역에서 사용됨.
  • API 키 관리:
    • 선택한 AI 모델의 API 키를 입력/수정/저장 가능.
    • API 키는 암호화하여 저장.
    • 저장 후 즉시 적용.
  • 설정 페이지: AI 설정과 텔레그램 설정을 한 페이지에서 처리.

7-11. 텔레그램 알림 기능

회원 신규가입 알림:

  • 회원이 신규가입하면 관리자에게 텔레그램 알림 자동 발송.
  • 알림 내용: 가입자 아이디, 전화번호, 이메일, 가입경로, 가입일시 등.

관리자 페이지에서 텔레그램 설정:

  • 텔레그램 봇 토큰 입력/수정/저장.
  • 챗ID 추출 기능:
    • 관리자가 텔레그램 봇과 대화를 시작하면 챗ID를 자동으로 추출.
    • 추출된 챗ID를 저장하여 알림 발송 대상으로 설정.
  • 테스트 메시지 발송 기능:
    • 설정한 텔레그램 봇 토큰과 챗ID로 테스트 메시지 발송.
    • 알림 기능이 정상 작동하는지 확인 가능.
  • 설정 페이지: AI 설정과 텔레그램 설정을 한 페이지에서 처리.

8. 개발 시작 전 준비 작업 (Pre-Development)

8-1. 추천 작업 순서

1단계: 플랫폼별 엔드포인트 및 데이터 수집 방식 조사 (최우선)

  • 각 플랫폼(네이버가격비교, 머스트잇, 필웨이, 트렌비, 리본즈, 구구스, 크림, 캉카스)의 검색 API 엔드포인트 확인.
  • 공식 API 제공 여부 확인 (API 키 필요 여부, 사용 제한 등).
  • 크롤링이 필요한 경우: 검색 URL 패턴, 파라미터 구조, 응답 형식 분석.
  • 각 플랫폼별 수집 가능한 데이터 범위 확인:
    • 상품명, 브랜드명, 모델명
    • 가격 정보 (일반판매가, 보관판매가 등)
    • 판매량, 찜 수, 관심 상품 수
    • 상품 이미지 URL
    • 상품 상세 링크
  • 네이버가격비교: 해외직구 제외 필터링 방법 확인.
  • 크림: 일반판매 가격과 보관판매 평균 가격 수집 방법 확인.

2단계: 법적 리스크 및 이용약관 확인

  • 각 플랫폼의 이용약관 확인 (자동 수집 허용 여부).
  • robots.txt 확인.
  • API 사용 정책 확인 (사용 제한, 비용 등).
  • 법적 리스크 평가 및 대응 방안 수립.

3단계: DB 스키마 설계

  • 회원 테이블 (아이디, 비밀번호, 전화번호, 이메일, 가입경로, 승인상태, 유료회원 여부, 이용기간 등).
  • 검색 이력 테이블 (회원ID, 검색 키워드, 검색일시, 결과 수 등).
  • 플랫폼별 상품 데이터 테이블 (상품명, 브랜드, 가격, 판매량, 찜 수, 수집일시 등).
  • 집계 테이블 (일별/기간별 통계, 평균가격 등).
  • 관리자 설정 테이블 (AI 모델 설정, API 키, 텔레그램 설정 등).

4단계: 기본 인프라 구축

  • 서버 환경 세팅 (Ubuntu, Apache, PHP, MariaDB).
  • 기본 디렉터리 구조 생성 (난수화된 폴더명).
  • Git 리포지토리 구성.
  • 기본 보안 설정 (방화벽, SSH 키 등).

5단계: 프로토타입 개발 (1개 플랫폼)

  • 가장 수집이 쉬운 플랫폼 1개 선택하여 프로토타입 개발.
  • 검색 → 데이터 수집 → 파싱 → DB 저장 → 화면 표시 전체 플로우 테스트.
  • 프로토타입을 통해 기술적 난이도와 소요 시간 파악.

8-2. 플랫폼별 엔드포인트 조사 체크리스트

※ 상세 조사 내용은 별도 파일 플랫폼별_엔드포인트_조사표.html을 참조하세요. 아래는 각 플랫폼별로 확인해야 할 주요 항목입니다.

플랫폼
조사 항목
네이버가격비교
검색 API 엔드포인트, API 키 필요 여부, 해외직구 필터링 방법, 응답 형식, 사용 제한
머스트잇
검색 API/URL 패턴, 인증 필요 여부, 데이터 수집 가능 범위, 판매량/찜 수 수집 방법
필웨이
검색 API/URL 패턴, 인증 필요 여부, 데이터 수집 가능 범위, 판매량/찜 수 수집 방법
트렌비
검색 API/URL 패턴, 인증 필요 여부, 데이터 수집 가능 범위, 판매량/찜 수 수집 방법
리본즈
검색 API/URL 패턴, 인증 필요 여부, 데이터 수집 가능 범위, 판매량/찜 수 수집 방법
구구스
검색 API/URL 패턴, 인증 필요 여부, 데이터 수집 가능 범위, 판매량/찜 수 수집 방법
크림
검색 API/URL 패턴, 일반판매가/보관판매 평균가 수집 방법, 판매량/찜 수 수집 방법, 인증 필요 여부
캉카스
검색 API/URL 패턴, 인증 필요 여부, 데이터 수집 가능 범위, 판매량/찜 수 수집 방법

8-3. 작업 우선순위 권장사항

✅ 추천 순서:

  1. 플랫폼별 엔드포인트 조사 (1~2일)
    • 각 플랫폼의 검색 API/URL 패턴 확인.
    • 수집 가능한 데이터 범위 파악.
    • 이 작업을 먼저 하면 개발 방향이 명확해짐.
  2. 법적 리스크 확인 (0.5일)
    • 이용약관, robots.txt 확인.
    • 법적 문제가 있으면 수집 방식 변경 필요.
  3. DB 스키마 설계 (1일)
    • 수집할 데이터 구조를 파악한 후 스키마 설계.
    • 플랫폼별 데이터 구조 차이를 고려한 설계.
  4. 기본 인프라 구축 (1일)
    • 서버 세팅, 디렉터리 구조 생성.
  5. 프로토타입 개발 (2~3일)
    • 1개 플랫폼으로 전체 플로우 테스트.
    • 기술적 난이도 파악 후 일정 조정.

⚠️ 주의사항:

  • 플랫폼별 엔드포인트 조사를 먼저 하지 않으면, 개발 중에 수집 불가능한 데이터를 가정하고 개발할 수 있음.
  • 법적 리스크를 나중에 확인하면, 이미 개발한 코드를 수정해야 할 수 있음.
  • 프로토타입을 먼저 개발하면 실제 난이도를 파악하여 일정을 현실적으로 조정 가능.

9. 개발 일정 (3주 플랜)

구간
주요 작업
D1 ~ D3
서버 세팅(Ubuntu, Apache, PHP, MariaDB), 기본 보안/계정 설정, Git 리포지토리 구성, 기본 디렉터리 구조 생성.
D3 ~ D7
인증/권한 모듈 구현, 회원 승인 플로우, 회원가입 페이지 구현(아이디 중복체크, 비밀번호 마스킹 토글, 플레이스홀더 적용), 기초 DB 스키마 설계 및 구현, CSRF 토큰 모듈 구현, 전역 모달/토스팅 컴포넌트 구현, 플랫폼별 검색 모듈 1~2개 프로토타입.
D7 ~ D12
나머지 플랫폼 검색 모듈 구현(네이버가격비교-해외직구 제외, 머스트잇, 필웨이, 트렌비, 리본즈, 구구스, 크림-일반판매/보관판매 가격 취합, 캉카스), 검색 결과 통합/파싱 로직, 평균가격 계산 로직, 판매량 분석 모듈, 브랜드 인기상품 모듈 구현, 필터/소팅 기능, 검색 API 구현.
D10 ~ D15
프론트엔드 UI(검색 페이지, 결과 페이지, 브랜드 인기상품 페이지, 트렌드 분석 페이지, 마이페이지, 사이드바, 관리자 사이드바), PC/모바일 반응형 레이아웃, 검색 결과 표시 및 정렬 기능, 평균가격 표시 기능, 판매량 정보 표시, 필터/소팅 UI, 유사 상품 추천 기능, 마이페이지 기능(회원정보 조회/변경, 결제 플랜 정보, 최근 분석 내역), 관리자 페이지(별도 폴더, 사이드바+메인 구조, 유료회원 승인/기간 설정 기능, AI 모델 설정 페이지, 텔레그램 알림 설정 페이지).
D15 ~ D21
AI 연동 시스템 구현(최신 뜨는 브랜드, 검색량 증가 분석, GPT/제미나이 모델 연동), 텔레그램 알림 모듈 구현(회원 신규가입 알림, 챗ID 추출, 테스트 메시지 발송), 데이터 검증 로직 구현(100% 정확도 보장), 통합 테스트, 성능 최적화(병렬 처리, 캐싱), 오류 수정, 기본 로그/모니터링 설정, 1차 배포 및 운영 환경 점검.

일정은 개발 난이도, 플랫폼별 검색 구현 난이도, AI 연동 복잡도, 데이터 검증 정확도 요구사항 등에 따라 일부 조정 가능하며, 핵심 기능 우선 구현 후 단계별 고도화 방식으로 진행한다. 특히 데이터 정확도 및 퀄리티를 최우선으로 하여, 검증되지 않은 정보는 제공하지 않는다.

10. 운영 및 모니터링

11. 향후 확장 포인트