- โ Riot API๋ฅผ ์ธ์ฆ
- โXMLHttpRequest์ ์ด์ฉํด์ Riot API ๋ฐ์ดํฐ ํ์ฑ
- โExpress๋ฅผ ์ด์ฉํด์ Front์ ๋ฐ์ดํฐ ๋๊ธฐ๊ธฐ
- ๐DB์ค๊ณ ๋ฐ ๊ตฌ์ถ
- ๋ด๋ชจํผ์ฆ์ ์ด์ฉํ์ฌ ์ฌ์ดํธ ๊พธ๋ฏธ๊ธฐ
DB๋ฅผ ์ ์ํ๊ธฐ ์์ ERD๋ก ์ค๊ณ๋๋ฅผ ๋ง๋ค๊ธฐ๋ก ํ์๋ค.
์ด๊ฒ์ ๋ด๊ฐ ๋ง๋ ERD์ด๋ค
์๋ ์ฌ์ดํธ ๊ท๋ชจ๊ฐ ์๊ธฐ๋๋ฌธ์ ํ
์ด๋ธ๊ณ์๊ฐ ์ ์ง๋ง ํ๋ช
์ ์ ์ ๊ฐ ์ฌ๋ฌ๊ฐ์ ๊ฒ์์ ์ ์ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๊ด๋ฆฌํด์ผํ๋์ง ๊ณจ๋จธ๋ฆฌ๋ฅผ ์ฉํ๋ค
๊ฒฐ๊ตญ์๋ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฐ๊ฐํ
์ด๋ธ์ pk๋ฅผ ์ฐธ์กฐํ๋ ๋ฐ์ดํฐ๋ง ์๋ ํ
์ด๋ธ์ ๋ง๋ค์ด Join๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ค๊ธฐ๋ก ํ์๋ค.
connection.query(`SELECT *
FROM summonertbl AS J_summonertbl
JOIN matchtbl AS J_match
ON J_summonertbl.summonerID = J_match.summonerID
WHERE J_summonertbl.summonerName = ?
ORDER BY J_match.matchID DESC`,queryData.id,function(err,summonerSelect,fields){
...
if(summonerSelect[0] === undefined){
console.log('DB์ ๊ฐ ์์ INSERT ๋ฌธ ์คํ');
...
}else if(summonerSelect[0].timestamp < new Date().getTime()){
console.log('DB์ ๊ฐ์ ์์ง๋ง ์ ์ฅ๋ timestamp๊ฐ ์ต์ ๊ฐ์ด ์๋๋');
let matchURL_Key ="https://asia.api.riotgames.com/lol/match/v5/matches/by-puuid/"
+NameObject.puuid+"/ids
?startTime="+summonerSelect[0].timestamp
+"&start=0&count=5&api_key=APIKEY";
console.log('์ต์ ๋ฐ์ดํฐ๋ง API๋ก ํธ์ถ');
ํ ์ด๋ธ์ ๊ฒ์ํ ์ ์ ID๊ฐ ์๋์ง ์ฒดํฌํ๊ณ ๊ฐ์ด ์์ผ๋ฉด ๊ทธ๋๋ถํฐ ๊ฐ์ Insertํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋ฉํ๊ธฐ๋ก ํ์๋ค.
๋ง์ฝ ๊ฐ์ด์๋๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐฑ์ ์ํค๊ธฐ์ํด DB์ ์ ์ฅ๋ timestamp๋ฅผ ๊ธฐ์ค์ผ๋ก timestamp์ดํ์ ๋ฐ์ดํฐ๋ง API๋ก ๊ธ์ด์ค๋๋ก ํ์๋ค.
๊ฐ์ด ์์๋ Insertํ๋ ค๋ฉด api๋ฅผ ํธ์ถํ๊ธฐ๋๋ฌธ์ ์ฌ์ ํ ์๋๊ฐ ๋๋ฆฌ์ง๋ง
๊ฐ์ด ํ๋ฒ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ๋๋ ์๋นํ ์๋๊ฐ ๋จ์ถ๋์๋ค๋ ๊ฒ์ ์ ์ ์์๋ค.