https://deathnote.gg/summoner/name=hide%20on%20bush
https://www.kaggle.com/ryoopatrick/deathnote-gg-get-feature-importance
https://www.kaggle.com/ryoopatrick/deathnote-gg-get-feature-importance
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋์๋ ๊ณ ์ง์ ์ผ๋ก ์ฌ์ฉ์ Report ์์คํ
์ ๋ถ์์ ์ฑ์ ๋ฌธ์ ๊ฐ
์กด์ฌํด์์ต๋๋ค.
์ฌ๊ธฐ์ Report ์์คํ
์ด๋, ์ฌ์ฉ์๋ฅผ ์ ๊ณ ํ๋ ๊ธฐ๋ฅ์ ์๋ฏธํฉ๋๋ค.
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋๋ ํ ๊ฒ์ ํ๊ท ์๊ฐ์ด 20~30๋ถ์
๋๋ค.
ํธ๋กค(๊ฒ์์ ๋ง์น๋ ์ ์ )๋ ๊ฐ์ ํ์ธ ๋๋จธ์ง 4๋ช
๋ฟ์๋๋ผ, ์๋ ํ 5๋ช
์๊ฒ๊น์ง ๊ฒ์์
์ฌ๋ฏธ๋ฅผ ๋จ์ด์ง๊ฒ ๋ง๋ค๊ธฐ ๋๋ฌธ์, ํธ๋กค ํ ๋ช
์ด ๊ฐ์ ธ์ค๋ ์๊ฐ์ ์์ค์ ๋๋ต 200~300๋ถ์ ๋ฌํ ์ ์์ต๋๋ค.
Report ์์คํ
์ ๋ฌธ์ ๋ ๊ฐ๋ฐ์ฌ์ธ Riot๊ณผ ํ๋ก๊ฒ์ด๋จธ๋ค ๋ํ ์ง์ ํด์จ ๋ฌธ์ ์
๋๋ค.
Deathnote.gg ์๋น์ค์์๋ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋
ธ๋ ฅํ๋ ์๋น์ค์
๋๋ค.
์ ์ ๊ฐ ๊ฒ์์ ๋ฏธ์น๋ ์ํฅ์ 100์ ๋ง์ ์ผ๋ก ํ์ฐํ์ฌ ์ง๊ด์ ์ผ๋ก ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
-
Riot API๋ก๋ถํฐ Match Data๋ค์ ์์งํ๋ค. Summoner API - Get EncryptedSummonerID
MatchList API - Get MatchListID
Match API - Get MatchInfoRiot API์๊ฒ ์ฌ๋ฌ ๋ฒ์ ์์ฒญ์ ์ฐ์์ ์ผ๋ก ์งํํด์ผ ํฉ๋๋ค. ๊ฐ๊ฐ์ ์์ฒญ ๋จ๊ณ์์ ์ด์ ๋จ๊ณ์ ๋ฐ์ดํฐ๋ค์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
-
๋ฐ์ดํฐ๋ค์ ์ ์ฒ๋ฆฌํฉ๋๋ค. ๊ฐ ์งํ๋ค (ex. Kills, Deaths, TowerKills .. )์ ์ด 10๋ช ์ ํ๋ ์ด์ด๋ค ์ค์์ ๋ช ๋ฑ์ ๊ธฐ๋กํ๋์ง ์ ๋ฆฌํฉ๋๋ค. ์ด ๊ณผ์ ์ด ํ์ํ ์ด์ ๋ ๋งค๊ฒ์๋ง๋ค ํ๋ ์ด์ด๊ฐ ํธ๋กค์ธ์ง ์๋์ง๋ ์๋์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
-
์ฌ๋ฌ ์งํ๋ค์ ๊ฐ์ค์น๋ฅผ ๋ค์ํ๊ฒ ๋งค๊ฒจ๋ด ๋๋ค.
-
์ค์ ์ ์ ๋ค์ ์ต๊ทผ 20๊ฒ์์ ๋ฐ์ดํฐ๋ฅผ ํตํด ๊ฐ์ค์น๊ฐ ์ ๋๋ก ๋งค๊ฒจ์ก๋์ง ํ์ธํฉ๋๋ค.
-
Troller Score ๋ก์ง์ ๊ตฌ์ฒดํํฉ๋๋ค.
Report๋ฅผ ์์ฑ ๊ฐ๋ฅํฉ๋๋ค. Report์๋ ์นญ์ฐฌ๊ณผ ๋ฆฌํฟ ๋ ๊ฐ์ง ์ค์ ์ ํ์ ํ์ฌ ์งํํ ์ ์์ต๋๋ค. ์ด๋ ๋ฐ์ค๋
ธํธ ์ ์์ ๋ฐ์๋ฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ์ฌ์ฉ์์ ์์ ๋น๋กํ์ฌ ๊ธฐ๋ฅ์ ์ ์ฉ์ฑ์ด ๋์์ง๋๋ค.
ํธ๋กค๋ฌ ์ ์ ๊ธฐ๋ฅ์ ์ฌ์ฉ์ ์๋ฅผ ์ฆ๊ฐ์ํค๊ธฐ ์ํด์ ์ถ๊ฐํ๋ ค ํ๋ ๊ธฐ๋ฅ์
๋๋ค.
-
์๋ฒ๋จ์์, CRUD ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
-
๋ธ๋ผ์ฐ์ ์บ์๋ฅผ ํตํด์ ์ฌ์ฉ์๋ ์์ ์ด Reportํ ๋ถ๋ถ์ ๋ํด์ U,D ๊ธฐ๋ฅ์ด ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
-
์ ์๋ฏธํ ๋ฐ์ดํฐ๊ฐ ์์์ ๋๋ถํฐ ์ค์ ํธ๋กค๋ฌ ์ ์ ์ฐ์ฐ ์๊ณ ๋ฆฌ์ฆ์ ํด๋น ์งํ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
-
์๋ฒ ๋จ์์, Report ๋ด์ฉ์ ๋ถ์ ์ ํ ๋ง์ด ๋ค์ด๊ฐ๋์ง, ํน์ ์ด๋ทฐ์ง์ด ์๋์ง๋ฅผ ์ฒดํฌํฉ๋๋ค.
์ด ๊ธฐ๋ฅ ๋ํ, ๊ฒฐ๊ตญ์ Report ์์คํ ์ ์ฌ์ฉ์ฑ์ ์ฆ๊ฐ์ํค๊ธฐ ์ํ ๊ณผ์ ์ ๋๋ค. ๋ณดํต์ ์ ์ ๊ฒ์ ์ฌ์ดํธ์ ๊ฒฝ์ฐ ๋ชจ๋ ์ ์ ๊ทธ๋ฆฌ๊ณ , ํจ๊ป ํ๋ ์ดํ ๋ค๋ฅธ ์ ์ ์ ์ ๋ณด๊น์ง ๋ชจ๋ ๊ฐ์ ธ์ค์ง๋ง, ๋ฐ์ค๋ ธํธ ์๋น์ค์ ๊ฒฝ์ฐ๋ ๊ฐ ๊ฒ์ ๋น์ ์ฌ๋ฌ ์งํ์ ์์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ค ํฉ๋๋ค. ( ์ด๋, ์ค์ ๋ก ํธ๋กค๋ฌ ์ ์ ์ฐ์ฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ์ ๊ณตํ๋ ๊ฒ์ด ์ด๋ ต์ง ์์ต๋๋ค.
ํ์ฌ ๋์์ธ ๋ฆฌ๋ด์ผ ์์ ์ค์ ์์ด, ๋ณด์ฌ์ง์ง๋ ์๊ณ ์์ต๋๋ค.
- DB๋ฅผ ์กฐํํ์ ๋, ์ด์ ์ ๋ณด๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด Riot API์ ์ฌ์์ฒญํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์จ ์ดํ์, ๊ฐ ์งํ๋ณ Rank๋ฅผ Return ํ๋ ํจ์๋ฅผ ์ด์ฉํฉ๋๋ค.
- Client์ Response ํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ์๋น์ค์ ์ฌ๋ฏธ ์์๋ฅผ ์ํด์ ์ถ๊ฐํ ๊ธฐ๋ฅ์ผ๋ก, ์ ์๊ฐ ๋ฎ์์๋ก ํธ๋กค๋ฌ๋ผ๊ณ ํ๋จํ ์ ์๊ธฐ ๋๋ฌธ์, ์ค๋ฆ์ฐจ์์ผ๋ก ์์๋ฅผ ์ ๋ ฌํ์ฌ ๋ณด์ฌ์ค๋๋ค.
ํด๋น ๊ธฐ๋ฅ์, ์ํ์ฌ์ ๋ํ ๋ฆฌ๋ทฐ๋ฅผ ๋์ด ์ ๊ณ ํ ์ ์๋ ๊ธฐ๋ฅ์
๋๋ค.
์ ๊ณ ๊ฐ ๋์ ๋ ์ํ์ฌ์ ๋ํด์๋ ์ํ์ฌ ์ ๋ณด ์กฐํ ํ์ด์ง์ ๋ฐ๋ก ํ์๋ฅผ ํ๋ ๋ฑ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์์ ์ ๋๋ค.
Riot์ธก์์ ์ด๋ ์ ๋์ Publicํจ์ ์ฆ๋ช
ํ๊ธฐ ์ ๊น์ง๋ API์ ์์ฒญ์ ์ ํํ๊ณ , ๋จ๊ณ์ ์ผ๋ก ์ ํ์ ํ์ด์ค๋๋ค. ์ด์ ๋ฐ๋ผ, ์์ฒญ์ ์ต์ํํ๊ธฐ ์ํด์ ์์ฒญํ ๋ฐ์ดํฐ์ ๊ดํด์ ์์ฒด DB์ ์ ์ฅํด๋๋ ์์
์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ , ์ฌ์ฉ์๊ฐ ์ ์ ์
๋ฐ์ดํธ๋ฅผ ์งํํ๋ฉด ๋ค์ Riot API์ ์ ๋ณด๋ฅผ ์๋กญ๊ฒ ์์ฒญํฉ๋๋ค.
์ด ๋, ์ฌ์์ฒญํ ๋๋ ๋ช๋ช ์ค์ ์ ๋ณด๋ฅผ DB์ ์ ์ฅํด๋๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ API๋ฅผ ์ฐ์์ ์ผ๋ก ์์ฒญํ์ง ์์ API ์์ฒญ ํ์๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
๋ฟ๋ง ์๋๋ผ, Ehcache๋ฅผ ์ ์ฉํ์ฌ ๊ณตํต๋ ์์ฒญ์ด ๋ง์ ๊ฒฝ์ฐ์๋ API ์์ฒญ์ ํ์ง ์๋๋ก ์งํํ์์ต๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ๋์ถํด๋ด๋๋ฐ ๊น์ง, Riot API๋ฅผ ๋๋ถ์ด ์์ฒด์ ์ผ๋ก ๊ตฌํํ ๋ก์ง๋ค๊น์ง ์ํํด์ผ ํ๊ธฐ์ ์๋ต ์๊ฐ์ด 10์ด ์ด์์ด ์์๋๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
๊ฐ์ฅ ์๋ต ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๋ถ๋ถ์ Riot API์์ ์์ฒญํ๋ Match API ์๋๋ฐ, ์ด๋ ์ ๋ณด๋ฅผ ์
๋ฐ์ดํธ ํ ๋, 10๋ฒ~20๋ฒ ์ ๋์ฉ ์์ฒญ์ ํด์ผํ๊ธฐ ๋๋ฌธ์ด์์ต๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋ฉํฐ ์ค๋ ๋ ๊ธฐ๋ฅ์ ํ์ฉํ์์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก๋ 10์ด๋์์ 2์ด๋๋ก ์ฐ์ฐ ์๊ฐ์ ์ค์ผ ์ ์์์ต๋๋ค.
ํธ๋กค๋ฌ ์ ์๊ฐ ์ ์๋ฏธํ๊ธฐ ์ํด์๋ ์ฌ์ฉ์๊ฐ ์ ๋ขฐํ ์ ์๋ ๊ธฐ์ค์ ๊ฐ์ง๊ณ ์ฐ์ฐ์ ์งํํ๊ณ , ์ด๋ฐ ๊ณผ์ ์ ์๋น์ค ๋ด์์ ์ฌ์ฉ์๋ค์ด ์ด๋ ๊ฐ๋ฅํ๊ฒ๋ ํด์ฃผ์ด์ผ ํ๋ค๊ณ ํ๋จ์ด ๋ค์์ต๋๋ค.
๋ฐ๋ผ์ ์์๋ก ๊ธฐ์ค์ ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ์ค์น๋ฅผ ๊ตฌํ๋ ์์
์ ์งํํด์ผ ํ์ต๋๋ค.
ํด๋น ์์ ์ ์ด๋ ๊ฒ ์งํํ์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ RIOT API์ ์ผ์ ์๊ฐ ๊ฐ๊ฒฉ์ ๋๊ณ ์์ฒญํ์ฌ ์์งํฉ๋๋ค.
- ์์งํ ๋ฐ์ดํฐ๋ฅผ 10๋ช ์ค์ ๋ช ๋ฑ์ ์งํ์ธ์ง๋ฅผ ์์๋ด๊ธฐ ์ํด์ Rank๋ฅผ ๊ตฌํ๋ ํจ์์ ๋ฃ์ด์ค๋๋ค. ( 16000 ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. )
- ์์งํ ๋ฐ์ดํฐ๋ฅผ CSV ํ์ผ๋ก Export ํฉ๋๋ค. ( OpenCSV ์ฌ์ฉ )
- Lightgbm ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ Feature ๋ค์ Importance๋ฅผ ์ถ์ถํฉ๋๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ํด๋น ์งํ๋ค์ ๋ฐ์ํฉ๋๋ค. ( ๋ฐ์ ์๋ฃ )
https://www.kaggle.com/ryoopatrick/deathnote-gg-get-feature-importance
- Spring Boot
- Spring MVC
- Spring JPA
- AWS EC2
- AWS RDS
https://donghoon.site/swagger-ui.html
- feat: A new feature
- fix: A bug fix
- docs: Changes to documentation
- style: Formatting, missing semi colons, etc; no code change
- refactor: Refactoring production code
- test: Adding tests, refactoring test; no production code change
- chore: Updating build tasks, package manager configs, etc; no production code change
-
Commit Convention
https://udacity.github.io/git-styleguide/ -
Riot API
Riot API weel