whofeeding.gg 개발기 1편

Do Hyun ·2026년 6월 7일

lol

목록 보기
1/1

whofeeding.gg 개발기 1편 — 프로젝트 기획과 기능 정의

LoL 트롤 신고 커뮤니티 + 전적 통계 서비스를 직접 만들어보는 과정을 기록합니다.


프로젝트 소개

whofeeding.gg는 League of Legends 전적 통계와 트롤 신고 커뮤니티를 결합한 웹 서비스입니다.

서비스 이름은 LoL 게임 중 채팅에서 자주 사용되는 문구나 단어를 사용하고 싶었는데 클로드가 알려줘서 북미 서버 기준일지 모르겠지만 알려주어 "who feeding?"(누가 킬을 내주고 있냐?)에서 착안했습니다.

op.gg와 같은 전적 조회 서비스는 다양하게 존재하지만, 트롤 유저를 커뮤니티 기반으로 신고하고 기록할 수 있는 서비스는 찾기 어려웠습니다. 이 간극을 직접 채워보고자 프로젝트를 시작하게 되었습니다.


프로젝트 목표

  • Riot Games API 연동, Redis 캐싱, JPA 기반 통계 처리 등 백엔드 핵심 기술을 실제 서비스 수준으로 구현
  • 기획부터 배포까지 전 과정을 직접 경험하며 풀스택 개발 역량 확보
  • op.gg에 없는 커뮤니티 기반 트롤 신고 시스템으로 서비스 차별화

기술 스택

영역기술선택 이유
LanguageJava 21실무 환경 대응 및 최신 LTS 버전
Backend FrameworkSpring Boot 3.3생산성과 확장성을 모두 갖춘 표준 프레임워크
ORMSpring Data JPA객체 중심 설계 및 반복 쿼리 최소화
DatabaseMySQL 8관계형 데이터 처리 및 JSON 컬럼 지원
Build ToolGradle (Groovy)Maven 대비 빠른 빌드 속도
FrontendReact컴포넌트 기반 UI 구성 및 생태계
외부 APIRiot Games API소환사/매치 데이터 수집

추후 추가 예정: Redis (캐싱), Docker, AWS EC2, GitHub Actions CI/CD


레퍼런스 분석 — op.gg

whofeeding.gg의 전적 기능은 op.gg를 레퍼런스로 삼아 설계했습니다.

op.gg가 제공하는 핵심 기능은 크게 네 가지입니다.

  • 소환사 검색 — Riot ID(닉네임 + 태그)로 검색
  • 전적 조회 — 최근 매치 목록, KDA, CS, 딜량 등 상세 스탯
  • 챔피언 분석 — 티어 목록, 승률/픽률/밴률, 추천 빌드 및 룬
  • 랭킹 — 서버 전체 LP 순위, 챔피언 장인 랭킹

이를 기반으로 whofeeding.gg만의 기능을 추가했습니다.


4대 핵심 기능

① 소환사 검색 & 전적

  • Riot ID(닉네임 + 태그) 기반 소환사 검색
  • 프로필 요약 (레벨, 아이콘, 마지막 업데이트 시각)
  • 큐 타입별 랭크 정보 (솔로랭크 / 자유랭크 / 아레나 등 — 티어, LP, 승/패, 승률)
  • 최근 매치 목록 (챔피언, KDA, CS/분, 딜량, 게임 시간, 승패)
  • 매치 상세 페이지 (팀원 전체 스탯, 아이템 빌드 순서, 룬)
  • 챔피언별 플레이 통계 (플레이 횟수, 승률, KDA)
  • 선호 포지션 비율
  • 자주 함께 플레이한 소환사

② 챔피언 분석

  • 챔피언 티어 목록 (포지션별 필터)
  • 챔피언별 승률 / 픽률 / 밴률
  • 추천 빌드 (아이템 순서)
  • 추천 룬 세트
  • 카운터 챔피언 정보

③ 랭킹

  • 서버 전체 랭킹 (LP 기준)
  • 챔피언 장인 랭킹 (숙련도 기준)

④ 트롤 신고 커뮤니티 (차별점)

op.gg에 없는 whofeeding.gg만의 핵심 기능입니다.

  • 소환사 신고 게시글 작성 (증거 스크린샷 첨부 가능)
  • 신고 목록 및 상세 페이지
  • 공감 / 비공감
  • 댓글
  • 신고 누적 기반 자체 제재 시스템
    • 신고 10회 이상 → 요주의 소환사 배지
    • 신고 30회 이상 → 트롤 인증 배지
    • 커뮤니티 투표 기반 명예의 전당

Riot Games API는 계정 정지 이력을 외부에 제공하지 않습니다. whofeeding.gg는 커뮤니티가 직접 트롤 이력을 기록하고 공유하는 방식으로 이 공백을 채웁니다.


패키지 구조

도메인 중심으로 패키지를 구성했습니다.

com.whofeeding
├── domain
│   ├── summoner      # 소환사
│   ├── match         # 매치 / 전적
│   ├── champion      # 챔피언 통계
│   └── report        # 트롤 신고
├── api               # Controller, DTO
├── client            # Riot API 연동
└── global            # 공통 예외처리, 설정

개발 로드맵

단계내용상태
1프로젝트 기획 & 기능 정의✅ 완료
2ERD 설계🔄 진행 중
3Riot API 연동⬜ 예정
4도메인 엔티티 구현 (JPA)⬜ 예정
5서비스 레이어 구현⬜ 예정
6REST API 구현⬜ 예정
7Redis 캐싱 적용⬜ 예정
8React 프론트엔드 구현⬜ 예정
9테스트 코드 작성⬜ 예정
10배포 (Docker + AWS EC2 + GitHub Actions)⬜ 예정

마치며

다음 편에서는 ERD 설계를 다룹니다. 소환사, 매치, 챔피언, 신고 도메인의 테이블을 어떻게 설계했는지, 그 과정에서 어떤 고민을 했는지 정리할 예정입니다.

2편 — ERD 설계로 이어집니다.

profile
우당탕탕

0개의 댓글