LoL 트롤 신고 커뮤니티 + 전적 통계 서비스를 직접 만들어보는 과정을 기록합니다.
whofeeding.gg는 League of Legends 전적 통계와 트롤 신고 커뮤니티를 결합한 웹 서비스입니다.
서비스 이름은 LoL 게임 중 채팅에서 자주 사용되는 문구나 단어를 사용하고 싶었는데 클로드가 알려줘서 북미 서버 기준일지 모르겠지만 알려주어 "who feeding?"(누가 킬을 내주고 있냐?)에서 착안했습니다.
op.gg와 같은 전적 조회 서비스는 다양하게 존재하지만, 트롤 유저를 커뮤니티 기반으로 신고하고 기록할 수 있는 서비스는 찾기 어려웠습니다. 이 간극을 직접 채워보고자 프로젝트를 시작하게 되었습니다.
| 영역 | 기술 | 선택 이유 |
|---|---|---|
| Language | Java 21 | 실무 환경 대응 및 최신 LTS 버전 |
| Backend Framework | Spring Boot 3.3 | 생산성과 확장성을 모두 갖춘 표준 프레임워크 |
| ORM | Spring Data JPA | 객체 중심 설계 및 반복 쿼리 최소화 |
| Database | MySQL 8 | 관계형 데이터 처리 및 JSON 컬럼 지원 |
| Build Tool | Gradle (Groovy) | Maven 대비 빠른 빌드 속도 |
| Frontend | React | 컴포넌트 기반 UI 구성 및 생태계 |
| 외부 API | Riot Games API | 소환사/매치 데이터 수집 |
추후 추가 예정: Redis (캐싱), Docker, AWS EC2, GitHub Actions CI/CD
whofeeding.gg의 전적 기능은 op.gg를 레퍼런스로 삼아 설계했습니다.
op.gg가 제공하는 핵심 기능은 크게 네 가지입니다.
이를 기반으로 whofeeding.gg만의 기능을 추가했습니다.
op.gg에 없는 whofeeding.gg만의 핵심 기능입니다.
Riot Games API는 계정 정지 이력을 외부에 제공하지 않습니다. whofeeding.gg는 커뮤니티가 직접 트롤 이력을 기록하고 공유하는 방식으로 이 공백을 채웁니다.
도메인 중심으로 패키지를 구성했습니다.
com.whofeeding
├── domain
│ ├── summoner # 소환사
│ ├── match # 매치 / 전적
│ ├── champion # 챔피언 통계
│ └── report # 트롤 신고
├── api # Controller, DTO
├── client # Riot API 연동
└── global # 공통 예외처리, 설정
| 단계 | 내용 | 상태 |
|---|---|---|
| 1 | 프로젝트 기획 & 기능 정의 | ✅ 완료 |
| 2 | ERD 설계 | 🔄 진행 중 |
| 3 | Riot API 연동 | ⬜ 예정 |
| 4 | 도메인 엔티티 구현 (JPA) | ⬜ 예정 |
| 5 | 서비스 레이어 구현 | ⬜ 예정 |
| 6 | REST API 구현 | ⬜ 예정 |
| 7 | Redis 캐싱 적용 | ⬜ 예정 |
| 8 | React 프론트엔드 구현 | ⬜ 예정 |
| 9 | 테스트 코드 작성 | ⬜ 예정 |
| 10 | 배포 (Docker + AWS EC2 + GitHub Actions) | ⬜ 예정 |
다음 편에서는 ERD 설계를 다룹니다. 소환사, 매치, 챔피언, 신고 도메인의 테이블을 어떻게 설계했는지, 그 과정에서 어떤 고민을 했는지 정리할 예정입니다.
2편 — ERD 설계로 이어집니다.