|
1 | | -# BlockGuard-server |
2 | | -BlockGuard server repository |
| 1 | +# 🌎 BlockGuard-server |
| 2 | + |
| 3 | + AI를 활용한 보이스피싱 사전예방 통합 서비스 **BlockGuard**의 Spring 서버 레포지토리입니다. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## 📌 Package Structure |
| 8 | +``` |
| 9 | +├── 📄 Dockerfile |
| 10 | +├── 📄 PULL_REQUEST_TEMPLATE.md |
| 11 | +├── 📄 README.md |
| 12 | +├── 📄 build.gradle |
| 13 | +├── 📂 gradle |
| 14 | +│ └── 📂 wrapper |
| 15 | +│ ├── 📦 gradle-wrapper.jar |
| 16 | +│ └── ⚙️ gradle-wrapper.properties |
| 17 | +├── ⚙️ gradlew |
| 18 | +├── ⚙️ gradlew.bat |
| 19 | +├── 📄 settings.gradle |
| 20 | +└── 📂 src/main/java/com/blockguard/server |
| 21 | + ├── 🚀 ServerApplication.java |
| 22 | + ├── 📂 domain |
| 23 | + │ ├── 📂 admin |
| 24 | + │ │ └── 📂 api |
| 25 | + │ ├── 📂 analysis |
| 26 | + │ │ ├── 📂 api |
| 27 | + │ │ ├── 📂 application |
| 28 | + │ │ ├── 📂 dao |
| 29 | + │ │ ├── 📂 domain |
| 30 | + │ │ └── 📂 dto |
| 31 | + │ │ ├── 📂 request |
| 32 | + │ │ └── 📂 response |
| 33 | + │ ├── 📂 auth |
| 34 | + │ │ ├── 📂 api |
| 35 | + │ │ ├── 📂 application |
| 36 | + │ │ ├── 📂 domain |
| 37 | + │ │ ├── 📂 dto |
| 38 | + │ │ ├── 📂 enhancer |
| 39 | + │ │ ├── 📂 enums |
| 40 | + │ │ ├── 📂 infra |
| 41 | + │ │ └── 📂 interceptor |
| 42 | + │ ├── 📂 fraud |
| 43 | + │ │ ├── 📂 api |
| 44 | + │ │ ├── 📂 application |
| 45 | + │ │ ├── 📂 dao |
| 46 | + │ │ ├── 📂 domain |
| 47 | + │ │ └── 📂 dto |
| 48 | + │ ├── 📂 guardian |
| 49 | + │ │ ├── 📂 api |
| 50 | + │ │ ├── 📂 application |
| 51 | + │ │ ├── 📂 dao |
| 52 | + │ │ ├── 📂 domain |
| 53 | + │ │ └── 📂 dto |
| 54 | + │ ├── 📂 news |
| 55 | + │ │ ├── 📂 api |
| 56 | + │ │ ├── 📂 application |
| 57 | + │ │ ├── 📂 dao |
| 58 | + │ │ ├── 📂 domain |
| 59 | + │ │ ├── 📂 dto |
| 60 | + │ │ └── 📂 scheduler |
| 61 | + │ ├── 📂 report |
| 62 | + │ │ ├── 📂 api |
| 63 | + │ │ ├── 📂 application |
| 64 | + │ │ ├── 📂 dao |
| 65 | + │ │ ├── 📂 domain |
| 66 | + │ │ └── 📂 dto |
| 67 | + │ └── 📂 user |
| 68 | + │ ├── 📂 api |
| 69 | + │ ├── 📂 application |
| 70 | + │ ├── 📂 dao |
| 71 | + │ ├── 📂 domain |
| 72 | + │ └── 📂 dto |
| 73 | + ├── 📂 global |
| 74 | + │ ├── 📂 common |
| 75 | + │ │ ├── 📂 codes |
| 76 | + │ │ ├── 📂 entity |
| 77 | + │ │ └── 📂 response |
| 78 | + │ ├── 📂 config |
| 79 | + │ │ ├── 📂 S3 |
| 80 | + │ │ ├── 📂 resolver |
| 81 | + │ │ └── 📂 swagger |
| 82 | + │ └── 📂 exception |
| 83 | + │ ├── 🛠️ BusinessExceptionHandler.java |
| 84 | + │ └── 🛠️ GlobalExceptionHandler.java |
| 85 | + └── 📂 infra |
| 86 | + ├── 📂 crawler |
| 87 | + ├── 📂 google |
| 88 | + ├── 📂 gpt |
| 89 | + ├── 📂 importer |
| 90 | + ├── 📂 naver |
| 91 | + │ └── 📂 ocr |
| 92 | + └── 📂 number |
| 93 | +``` |
| 94 | + |
| 95 | + |
| 96 | +## 📌 ERD (Entity Relationship Diagram) |
| 97 | +- [ERD Diagram Link](https://dbdiagram.io/d/BlockGuard_ERD-686d1997f413ba3508d99080) |
| 98 | + |
| 99 | +<details> |
| 100 | +<summary> 테이블 별 용도</summary> |
| 101 | +<div markdown="1"> |
| 102 | + |
| 103 | +- **User**: 서비스의 기본 사용자 정보를 저장 (계정, 개인정보, 상태 관리) |
| 104 | +- **Guardian**: 사용자의 보호자(연락망) 정보를 저장, 다수 가능 |
| 105 | +- **NewsArticle**: 보이스피싱/사기 관련 뉴스 기사 수집 및 조회용 데이터 |
| 106 | +- **FraudPhoneNumber**: 사기 의심 전화번호 저장 및 API 검증 기록 |
| 107 | +- **FraudUrl**: 사기 의심 URL 저장 및 감지 시각 관리 |
| 108 | +- **UserReportRecord**: 사용자가 진행 중인 신고 프로세스의 전체 레코드 |
| 109 | +- **ReportStepProgress**: 신고 프로세스 각 단계의 진행 상황 기록 |
| 110 | +- **ReportStepCheckbox**: 단계별 필수/권장 체크박스 항목의 완료 여부 기록 |
| 111 | +- **FraudAnalysisRecord**: AI 분석 결과(사기 유형, 점수, 위험도)를 저장 |
| 112 | + |
| 113 | +</div> |
| 114 | +</details> |
| 115 | + |
| 116 | +--- |
| 117 | + |
| 118 | +## 📌 API 명세서 |
| 119 | +- [API 명세서 (Swagger 링크)](https://www.blockguard.shop/swagger-ui/index.html) |
| 120 | +- [API 명세서 (Notion 링크)](https://breezy-index-18b.notion.site/API-253ec5aa3e1a8014a18dc53ee1d1c5c8) |
| 121 | + |
| 122 | +--- |
| 123 | + |
| 124 | +## 📌 Architecture Diagram |
| 125 | + |
| 126 | +- 서비스 전체 아키텍처 다이어그램 |
| 127 | + |
| 128 | + |
| 129 | +- 서버 아키텍처 다이어그램 |
| 130 | + |
0 commit comments