Repository files navigation
"League of Leagend"게임에서 유저의 전적검색 및 트롤검색 기능을 제공합니다.
머신러닝을 이용하여 유저의 트롤확률을 알아낼 수 있습니다.
일반적인 전적검색/멀티서치가 제공됩니다.
5*5 랭크게임포인트를 기준으로 랭킹을 제공합니다.
트롤확률을 기반으로 랭킹을 제공합니다.
카카오를 통한 로그인 서비스를 제공합니다.
회원유저 한정하여 듀오를 찾을 수 있으며 서비스 내에서 채팅기능을 제공합니다.
https://www.youtube.com/watch?v=vtUlxVK2w5E (프로젝트 소개영상 링크)
front
swagger
jenkins
http://3.37.22.89:8090
CI/CD 파이프라인 구성 용도
WebHook을 걸어 자동화 설정 완료
front, backend, dataflow 세개의 APPLICATION에대해서 CI/CD를 관리
Docker를 활용한 APPLICATION을 컨테이너화 하여 관리
Front
유저에게 입력을 받고 데이터를 back단으로 전달해주는 역할을 한다.
유저에게 화면을 제공한다.
Request에 대한 Response를 가공하여 유저가 요청한 데이터값을 표시한다.
Back(비지니스 로직처리)
Front로부터 받은 Reqeust에대해 알맞음 Response를 보낸다.
회원가입/로그인/전적검색등 위에서 제공되는 서비스에 대한 Response를 관리한다.
Back(DataFlow)
RiotAPI 호출량 문제로인해 백단에서 주기적으로 RiotAPI 호출하여 유저의 전적을 DB에 저장한다.
RiotAPI
랭킹조회시 사용된다.
유저의 이름을 이용하여 해당 API를 호출하여 유저의 전적을 저장한다.(DataFlow에서 처리)
DB
회원가입을한 유저의 정보
머신러닝을 위해 필요한 데이터 저장 및 제공
유저의 게임 전적저장
ML+FLASK API SERVER
DB를 통해 얻어온 데이터를 가공 및 분석하여 '회기분석'을 사용해 트롤점수를 구현한다.
DB를 통해 얻어온 트롤점수를 이용하여 'KMEANS 알고리즘'을 사용해 cluster 분포 현황를 반환한다.
FLASK는 머신러닝을 이용하기 위한 Python API SERVER이다.(회기분석, KMEANS에 대한 API 제공)
Spring Scheduler
롤 API 는 API 호출에 있어 시간제약 조건이 있다
그렇기에 schduler를이용하여 API 호출 제약에 효율적으로 대응한다
또한 mysql에서 오래된 데이터를 자동으로 삭제한다 및 업데이트 한다.
KafKa(Streams)
Scheduler는 kafka의 producer 역할을 한다. 롤 전적과 관련된 json파일을 produce 한다.
Scheduler로 얻은 롤 전적정보를 mysql이 consumer역할을 하여 롤 유저의 최신정 보를 반영한다
NIFI
Data flow pipeline의 역할을 맡는다.
Spring scheduler에서 얻은 json 데이터를 mysql db에 저장하는데 까지의 data flow 를 효율적으로 활용하기 위해 사용한다.
Docker
Docker를 사용하여 react, springboot(비지니스 Server,DataFlow Server)를 컨테이너화 하여 관리한다
Jenkins
•React, spring application(비지니스 APISERVER+DATAFLOW API SERVER)에서 ci/cd 자동화 역할을 한다
비회원 사용자
전적검색: 일반적인 유저의 전적을 검색한다. 추가로 머신러닝을 사용한 유저의 트롤점수 및 트롤점수를 기반으로한 듀오추천기능을 사용할 수 있다.
멀티서치: 게임을 시작하면 자신을 포함한 팀원의 전적을 한번에 검 색 할 수 있다.
랭킹: 5*5 솔로랭크 기준으로 상위 10명의 간단한 전적을 보여준다. 일반 리그 포인트와 트롤점수를 기반으로 한 두개의 랭킹을 볼 수 있다.
회원사용자
마이페이지: 회원가입시 입력받은 롤 닉네임을 사용해 유저의 게임 정보 및 머신러닝을 이용한 트롤확률/듀오추천을 보여준다.(전적검색 기능과 동일)
듀오찾기: 글 등록기능이 있으며, 회원유저끼리 해당 글을 통해 1:1 채팅이 가능하다. 채팅을 이용해 최종으로 두명의 유저가 듀오가 성사된다.
jenkinsg를 통한 CI/CD
Docker 사용
directory : 소문자로만 작성합니다.
ClassName : 각 단어의 첫번째 문자는 대문자로 시작합니다.
변수 및 함수명 : 첫 단어는 소문자, 두번째 단어부터는 대문자로 시작합니다. camelCase
feat: 새로운 기능 추가
fix: 버그 수정
docs: 문서 수정
style: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
refactor: 코드 리팩토링
test: 테스트 코드, 리팩토링 테스트 코드 추가
chore: 빌드 업무 수정, 패키지 매니징
2022 한이음 공모전 제작설계서_응용SW 수정본
2022 한이음 공모전 개발보고서 수정본
(uploadfile 참고)
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.