|
|
4 meses atrás | |
|---|---|---|
| .. | ||
| app | 4 meses atrás | |
| README.md | 4 meses atrás | |
인플루언서-벤더사 플랫폼의 백엔드 아키텍처를 역할별로 분리하여 코드의 가독성, 유지보수성, 확장성을 대폭 개선했습니다.
backend/app/Controllers/
├── InfluencerController.php # 인플루언서 전용 컨트롤러
├── VendorController.php # 벤더사 전용 컨트롤러
├── Auth.php # 인증 관련 (기존 유지)
├── Roulette.php # 기타 기능 (기존 유지)
└── DebugController.php # 디버그 기능 (기존 유지)
backend/app/Models/
├── InfluencerModel.php # 인플루언서 프로필 관리
├── InfluencerPartnershipModel.php # 인플루언서 파트너십 관리
├── VendorModel.php # 벤더사 정보 관리 (기존 유지)
└── VendorPartnershipModel.php # 벤더사 파트너십 관리
| 파일명 | 라인 수 | 문제점 |
|---|---|---|
VendorInfluencerController.php |
923줄 | 인플루언서/벤더사 기능 혼재 |
UserModel.php |
223줄 | 일반 사용자와 인플루언서 기능 혼재 |
VendorInfluencerMappingModel.php |
152줄 | 양방향 파트너십 로직 혼재 |
| 파일명 | 라인 수 | 특징 |
|---|---|---|
InfluencerController.php |
484줄 | 인플루언서 전용 기능만 포함 |
VendorController.php |
316줄 | 벤더사 전용 기능만 포함 |
InfluencerModel.php |
300줄 | 인플루언서 프로필 관리 특화 |
InfluencerPartnershipModel.php |
353줄 | 인플루언서 관점 파트너십 관리 |
VendorPartnershipModel.php |
456줄 | 벤더사 관점 파트너십 관리 |
searchVendors() - 벤더사 검색createApprovalRequest() - 승인 요청 생성createReapplyRequest() - 재승인 요청getMyPartnerships() - 본인 파트너십 목록terminatePartnership() - 파트너십 해지getInfluencerRequests() - 인플루언서 요청 목록 조회processInfluencerRequest() - 요청 승인/거부terminatePartnership() - 파트너십 해지getInfluencers() - 인플루언서 목록 (필터링)getProfile() - 프로필 조회verifyLogin() - 로그인 검증getTopInfluencers() - 랭킹 조회updateVerificationStatus() - 검증 상태 업데이트getInfluencerPartnerships() - 파트너십 목록createApprovalRequest() - 승인 요청 생성createReapplyRequest() - 재승인 요청 생성terminateByInfluencer() - 인플루언서 해지getInfluencerStats() - 통계 조회getReapplyableVendors() - 재승인 가능 벤더사getVendorRequests() - 벤더사 요청 목록processRequest() - 요청 승인/거부 처리terminateByVendor() - 벤더사 해지getVendorStats() - 벤더사 통계createVendorProposal() - 벤더사 제안 생성getInfluencerRecommendationScore() - 추천 점수 계산POST /api/influencer/search-vendors # 벤더사 검색
POST /api/influencer/create-request # 승인 요청
POST /api/influencer/reapply-request # 재승인 요청
POST /api/influencer/my-partnerships # 파트너십 목록
POST /api/influencer/terminate # 파트너십 해지
POST /api/vendor/influencer-requests # 인플루언서 요청 목록
POST /api/vendor/process-request # 요청 승인/거부
POST /api/vendor/terminate # 파트너십 해지
POST /api/vendor-influencer/* # 기존 API 엔드포인트 호환성 유지
VendorInfluencerController.php (923줄) → 기능 분리 완료UserModel.php (223줄) → InfluencerModel.php로 대체VendorInfluencerMappingModel.php (152줄) → Partnership 모델들로 대체// 비활성화된 라우트들 (삭제된 컨트롤러 참조)
// $routes->post('detail', 'VendorInfluencerController::getDetail');
// $routes->post('cancel', 'VendorInfluencerController::cancelRequest');
// $routes->post('stats', 'VendorInfluencerController::getStats');
// $routes->post('history/(:num)', 'VendorInfluencerController::getHistory/$1');
ProductModel - 상품 관리OrderModel - 주문 관리SettlementModel - 정산 관리NotificationModel - 알림 관리Services/
├── InfluencerService.php
├── VendorService.php
├── PartnershipService.php
└── NotificationService.php
이번 백엔드 아키텍처 분리를 통해 단일 책임 원칙(SRP) 을 준수하고, 개방-폐쇄 원칙(OCP) 을 적용하여 확장 가능한 구조를 구축했습니다.
각 컨트롤러와 모델이 명확한 역할을 가지게 되어 개발 생산성이 향상되고, 신규 기능 추가 시 기존 코드에 미치는 영향을 최소화할 수 있게 되었습니다.
최종 업데이트: 2024년 12월
작성자: AI 개발팀
버전: v2.0.0