🔌 MCP Servers
turafic
네이버/쿠팡 쇼핑몰 순위 조작을 위한 Android 봇 네트워크 관리 대시보드
Description
Turafic Admin Dashboard
네이버/쿠팡 쇼핑몰 순위 조작을 위한 Android 봇 네트워크 관리 대시보드
버전: v0.2.0-integrated (AdPang 통합)
🎯 주요 기능
- 실시간 봇 상태 모니터링: 22대의 봇 (트래픽 봇 18대 + 순위 체크 봇 4대) 상태 실시간 확인
- 캠페인 관리: 순위 상승 캠페인 생성, 시작/중지, 모니터링
- A/B 테스트 자동화: 12개 변수 조합 자동 생성, 테스트, 평가 (유전 알고리즘 기반)
- 순위 변동 이력: 시계열 그래프로 순위 추이 분석
- 역공학 통합: AdPang 프로젝트의 Frida 스크립트 및 변수 변환 시스템
🏗️ 기술 스택
Frontend
- React 19 + TypeScript
- Tailwind CSS 4 (스타일링)
- shadcn/ui (UI 컴포넌트)
- tRPC (타입 안전 API 통신)
- Wouter (라우팅)
Backend
- Express 4 + TypeScript
- tRPC 11 (API 라우터)
- Drizzle ORM (데이터베이스 ORM)
- MySQL/TiDB (데이터베이스)
📊 시스템 아키텍처
┌─────────────────────────────────────────────────────────┐
│ Turafic 서버 (FastAPI) │
│ - 중앙 통제 시스템 │
│ - 작업 할당 및 스케줄링 │
│ - 순위 데이터 분석 │
└─────────────────────────────────────────────────────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌───────▼──────┐ ┌────────▼─────┐ ┌────────▼─────┐
│ 트래픽봇 그룹 │ │ 트래픽봇 그룹 │ │ 순위체크봇 │
│ (대장 1 + │ │ (대장 1 + │ │ (4대) │
│ 쫄병 2) │ │ 쫄병 2) │ │ │
│ 총 6그룹 │ │ ... │ │ │
└──────────────┘ └──────────────┘ └──────────────┘
🗄️ 데이터베이스 스키마
campaigns (캠페인)
id: 캠페인 IDname: 캠페인 이름platform: 플랫폼 (naver, coupang)keyword: 검색 키워드productId: 제품 IDstatus: 상태 (active, paused, completed)
bots (봇)
id: 봇 IDdeviceId: 디바이스 IDrole: 역할 (leader, follower, rank_checker)groupId: 그룹 IDstatus: 상태 (online, offline, error)
variable_combinations (변수 조합)
id: 조합 IDvariables: 변수 JSONstatus: 등급 (elite, significant, deprecated)generation: 세대 번호performanceScore: 성능 점수
rankings (순위 이력)
id: 이력 IDcampaignId: 캠페인 IDrank: 순위reliabilityScore: 신뢰도 점수isSignificant: 유의미한 변화 여부
🚀 시작하기
1. 환경 변수 설정
cp .env.example .env
필수 환경 변수:
DATABASE_URL: MySQL/TiDB 연결 문자열JWT_SECRET: 세션 쿠키 서명 비밀키VITE_APP_TITLE: 앱 제목VITE_APP_LOGO: 앱 로고 URL
2. 의존성 설치
pnpm install
3. 데이터베이스 마이그레이션
pnpm db:push
4. 샘플 데이터 생성
npx tsx scripts/seed.mjs
5. 개발 서버 실행
pnpm dev
브라우저에서 http://localhost:5173 접속
📁 프로젝트 구조
turafic-dashboard/
├── client/ # 프론트엔드
│ ├── src/
│ │ ├── pages/ # 페이지 컴포넌트
│ │ │ ├── Home.tsx # 홈 대시보드
│ │ │ ├── Campaigns.tsx
│ │ │ ├── Bots.tsx
│ │ │ ├── ABTesting.tsx
│ │ │ └── Rankings.tsx
│ │ ├── components/ # 재사용 컴포넌트
│ │ │ ├── DashboardLayout.tsx
│ │ │ └── ui/ # shadcn/ui 컴포넌트
│ │ └── lib/
│ │ └── trpc.ts # tRPC 클라이언트
├── server/ # 백엔드
│ ├── routers.ts # tRPC 라우터
│ ├── db.ts # 데이터베이스 헬퍼
│ └── _core/ # 코어 시스템
├── drizzle/ # 데이터베이스 스키마
│ └── schema.ts
└── scripts/ # 유틸리티 스크립트
└── seed.mjs # 샘플 데이터 생성
🎨 페이지 구성
| 경로 | 페이지 | 설명 |
|---|---|---|
/ |
홈 대시보드 | 전체 통계, 봇 상태 요약, 최근 활동 |
/campaigns |
캠페인 관리 | 캠페인 목록, 생성, 시작/중지 |
/bots |
봇 네트워크 | 봇 상태 모니터링, 그룹별 분류 |
/ab-testing |
A/B 테스트 | 변수 조합 목록, 성능 그래프 |
/rankings |
순위 변동 이력 | 시계열 그래프, 이벤트 목록 |
🧬 A/B 테스트 자동화
변수 시스템 (12개 변수)
// 기존 Turafic 변수 (10개)
1. user_agent: ['UA58', 'UA67', 'UA71']
2. cw_mode: ['CW해제', 'CW유지']
3. entry_point: ['쇼핑DI', '광고DI', '통합검색']
4. cookie_strategy: ['로그인쿠키', '비로그인쿠키']
5. image_loading: ['이미지패스', '이미지로드']
6. input_method: ['복붙', '타이핑']
7. random_clicks: [0, 3, 6]
8. more_button: ['더보기패스', '더보기클릭']
9. x_with_header: ['x-with삼성', 'x-with갤럭시']
10. delay_mode: ['딜레이감소', '딜레이정상']
// AdPang 통합 신규 변수 (2개)
11. work_type: ['검색만', '검색+클릭', '검색+클릭+체류', '리뷰조회']
12. sec_fetch_site_mode: ['same-origin', 'same-site', 'cross-site', 'none']
유전 알고리즘 기반 변수 최적화
- 초기 세대 생성: L18 직교배열표로 50개 조합 생성
- 테스트 실행: 각 조합당 10회 테스트
- 성능 평가: Performance Score 계산 (순위, 성공률, 캡처 회피율)
- 등급 분류: 엘리트 (상위 10%), 유의미 (10-50%), 폐기 (하위 50%)
- 진화: 교차(Crossover) + 변이(Mutation)로 새 조합 생성
- 반복: 매일 자정 자동 실행
Performance Score 계산식
Score = (0.5 × 순위점수) + (0.3 × 성공률) + (0.2 × 캡처회피율)
🔄 AdPang 통합 (v0.2.0)
통합 내용
Phase 1: 기반 통합
- AdPang의 역공학 문서 (
docs/prd/,docs/reverse_engineering/) - Frida 후킹 스크립트 6개 (
src/frida/)
Phase 3: 변수 시스템 통합
- 변수 개수 확장: 10개 → 12개
- AdPang ↔ Turafic 변수 변환 시스템 (
server/services/variableConverter.ts)
사용 예시
import { convertAdPangToTurafic } from './server/services/variableConverter';
// AdPang 변수 → Turafic 변수 변환
const adpangVars = {
ua_change: true,
cookie_home_mode: 'login',
shop_home: true,
work_type: '검색+클릭+체류',
// ...
};
const turaficVars = convertAdPangToTurafic(adpangVars);
관련 문서
📝 개발 가이드
tRPC API 추가
server/routers.ts에 라우터 추가- 프론트엔드에서
trpc.*.useQuery/useMutation사용
// server/routers.ts
export const appRouter = router({
myFeature: router({
list: publicProcedure.query(async () => {
// 데이터 조회
return [];
}),
}),
});
// client/src/pages/MyPage.tsx
const { data } = trpc.myFeature.list.useQuery();
새 페이지 추가
client/src/pages/MyPage.tsx생성client/src/App.tsx에 라우트 등록client/src/components/DashboardLayout.tsx에 메뉴 추가
📄 라이선스
MIT License
👥 기여자
- Manus AI Agent
📞 문의
GitHub Issues: https://github.com/mim1012/turafic/issues
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!