๐Ÿšจ RIOT API๋ฅผ ์ด์šฉํ•ด์„œ ๋กค ์ „์  ๊ฒ€์ƒ‰ ์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ (4) - ์ฝ”๋”ฉ & ํ™”๋ฉด ํ…Œ์ŠคํŠธ

๊น€์ค€ํ˜ธยท2020๋…„ 6์›” 9์ผ
4
post-thumbnail

์ด๋ฒˆ ํฌ์ŠคํŠธ๋Š” ํ”„๋กœ์ ํŠธ ๋„ค๋ฒˆ์งธ ์ด์Šˆ์—์„œ ํ™”๋ฉดํ…Œ์Šค๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. ๋‚˜๋Š” ๋ผ๋ฒจ์„ ํ†ตํ•ด ๋ฏธ๋ฆฌ ์ค€๋น„ํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„์„ Preparations๋กœ ๊ฐœ๋ฐœ๋ถ€๋ถ„์„ feature๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ ์žˆ๋‹ค.


์œ ๋ช…ํ•œ ๋ฆฌ๊ทธ์˜ค๋ธŒ๋ ˆ์ „๋“œ ์ „์  ์‚ฌ์ดํŠธ๋ฅผ ํด๋ก ์ฝ”๋”ฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ํ˜ผ์ž์„œ ์ง„ํ–‰ํ•˜๋Š”๋งŒํผ 1์ฐจ์ ์ธ ๋ชฉํ‘œ๋Š” ๊ฐ„๋‹จํžˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์น˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๐Ÿšจ RESTFUL Project ๐Ÿšจ โ‡ข RIOT API + Spring Boot + AWS EC2 & RDS


ํ™”๋ฉด ํ…Œ์ŠคํŠธํ•˜๊ธฐ

ํ…Œ์ŠคํŠธํ•˜๊ธฐ์ „์— ์ง€๋‚œ RIOT API๋ฅผ ์ด์šฉํ•ด์„œ ๋กค ์ „์  ๊ฒ€์ƒ‰ ์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ (3)์—์„œ ํ™”๋ฉด์— ๋“ค์–ด๊ฐ€์•ผํ•˜๋Š” ์š”์†Œ๋“ค์„ ๋ฝ‘์•„๋ณด์•˜๋‹ค. ์ผ๋‹จ ์ฒ˜์Œ์—๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด๋˜๋Š” ๋‹ค์Œ ์‚ฌํ•ญ๋“ค์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ๋กœํ–ˆ๋‹ค.

  1. ์†Œํ™˜์‚ฌ ์ด๋ฆ„์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ
  2. ๊ฒ€์ƒ‰ ํ›„ ์ด๋ฆ„, ์†Œํ™˜์‚ฌ ์•„์ด์ฝ˜, ์†Œํ™˜์‚ฌ ํ‹ฐ์–ด ๋„์šฐ๊ธฐ

์†Œํ™˜์‚ฌ ์ด๋ฆ„์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ

๊ฐ„๋‹จํ•œ ๊ฒ€์ƒ‰์ฐฝ์„ ๋งŒ๋“ค์–ด์„œ ํ…Œ์ŠคํŠธํ•ด๋ณด์•˜๋‹ค. ์šฐ์„  REST ํ†ต์‹ ์ด๊ธฐ ๋•Œ๋ฌธ์— ajax๋ฅผ ์ด์šฉํ–ˆ๋‹ค. ์†Œํ™˜์‚ฌ ์ด๋ฆ„์œผ๋กœ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ์ผ์€ ๊ทธ์ € GET์œผ๋กœ ๋ฐ›์•„์˜ค๋ฉด ๋˜๊ธฐ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ์™„๋ฃŒํ–ˆ๋‹ค.

๊ฒ€์ƒ‰ ํ›„ ๊ด€๋ จ ์ •๋ณด ๋„์šฐ๊ธฐ

์†Œํ™˜์‚ฌ ์ด๋ฆ„์œผ๋กœ ๊ฒ€์ƒ‰ํ›„์— ๋„์–ด์•ผํ•  ์ •๋ณด๋“ค์ด ์—ฌ๋Ÿฌ ์žˆ๋‹ค. ๊ทธ์ค‘์— ๋จผ์ € ์ด๋ฆ„, ์†Œํ™˜์‚ฌ ์•„์ด์ฝ˜, ์†Œํ™˜์‚ฌ ํ‹ฐ์–ด๋ฅผ ๋„์–ด๋ณด๊ธฐ๋กœํ–ˆ๋‹ค.

์ด๋ฆ„

์ด๋ฆ„์€ ๊ฒ€์ƒ‰ํ•œ ๋‚ด์šฉ ๊ทธ๋Œ€๋กœ์ด๋ฉฐ, summoner DTO ๊ฐ์ฒด ์•ˆ์— ์ •๋ณด๊ฐ€ ๋“ค์–ด์žˆ๊ธฐ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด๋œ๋‹ค.

์†Œํ™˜์‚ฌ ์•„์ด์ฝ˜

์‚ฌ์‹ค ์•ž์—์„œ ์–ธ๊ธ‰ํ•  ํƒ€์ด๋ฐ์ด ์—†์–ด์„œ ๋ฏธ๋ฃจ๊ณ ์žˆ์—ˆ๋˜ ๊ฒƒ์ธ๋ฐ, RIOT์—์„œ๋Š” API๋ฟ๋งŒ์•„๋‹ˆ๋ผ Data Dragon์ด๋ผ๋Š” ์„œ๋ฒ„์—์„œ ์ผ๋ถ€ ์•„์ด์ฝ˜๋“ค์„ ์ œ๊ณตํ•ด์ค€๋‹ค.

Data Dragon์€ ์ฑ”ํ”ผ์–ธ, ์•„์ดํ…œ, ๋ฃฌ, ์†Œํ™˜์‚ฌ ์ฃผ๋ฌธ ๋ฐ ํ”„๋กœํ•„ ์•„์ด์ฝ˜์„ ํฌํ•จํ•˜์—ฌ League of Legends ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ ๋ฐ ์ž์‚ฐ์„ ์ค‘์•™ ์ง‘์ค‘ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

์œ„ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š” RIOT DATA DRAGON์—์„œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋žตํ•˜๊ฒŒ ๋ช‡๊ฐ€์ง€ ์˜ˆ์‹œ ๋ฐ ์ •๋ณด๋ฅผ ์ ์–ด๋ณด๊ฒ ๋‹ค.

์ผ๋‹จ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ •์  ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ œ๊ณตํ•ด์ค€๋‹ค. ๊ทธ๋ ‡๊ธฐ๋•Œ๋ฌธ์— ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์„œ ๋กœ์ปฌ์— ๋„ฃ์–ด๋„ ๋˜์ง€๋งŒ ๊ตณ์ด ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€์•Š๋Š” ์ด์œ ๊ฐ€ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. ์šฉ๋Ÿ‰์ด ํฌ๋ฉฐ, ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๋งˆ๋‹คํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
  2. ํŒจ์น˜๋งˆ๋‹ค ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๊ฐ€ ๋ฒˆ๊ฑฐ๋กญ๋‹ค.

๋ฐ์ดํ„ฐ ๋“œ๋ž˜๊ณค์€ URL์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ฒ„์ „๊ณผ ์„œ๋ฒ„ ๋‘๊ฐ€์ง€๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ํ˜„์žฌ ๊ธฐ์ค€์œผ๋กœ 10.11.1 ๋ฒ„์ „์ด ๊ฐ€์žฅ ์ตœ์‹ ์ด๊ณ , ํ•œ๊ตญ ์„œ๋ฒ„๋Š” ko_KR์ด๋‹ค. ์ด ๊ธฐ์ค€์œผ๋กœ ๋‚ด๊ฐ€ ๋ฝ‘์œผ๋ ค ํ–ˆ๋˜ ์†Œํ™˜์‚ฌ ์•„์ด์ฝ˜์„ ๋ฝ‘์•„๋ณด์ž.

http://ddragon.leagueoflegends.com/cdn/10.11.1/img/profileicon/{์†Œํ™˜์‚ฌ ์•„์ด์ฝ˜ ๋„˜๋ฒ„}.png

์ค‘๊ฐ„์ค‘๊ฐ„์— ๋ณธ์ธ์—๊ฒŒ ํ•ด๋‹น๋˜๋Š” ์„œ๋ฒ„์™€ ๋ฒ„์ „ ์ •๋ณด๋กœ ์น˜ํ™˜ํ•˜๊ณ , RIOT API๋ฅผ ํ†ตํ•ด ์–ป์–ด์˜จ ์ •๋ณด๋ฅผ ํ†ตํ•ด์„œ ์†Œํ™˜์‚ฌ ์•„์ด์ฝ˜ ๋„˜๋ฒ„๋ฅผ ์ฑ„์›Œ ๋„ฃ์ž. ์ด ์ด์™ธ์—๋„ ๋ช‡๊ฐ€์ง€ ์ •๋ณด๋ฅผ ์•Œ์•„๋ณด๊ฒ ๋‹ค.

  • ์•„์ดํ…œ ์ด๋ฏธ์ง€ (format + example)

https://ddragon.leagueoflegends.com/cdn/10.11.1/img/item/{์•„์ดํ…œ ์ฝ”๋“œ}.png

  • ์ฑ”ํ”ผ์–ธ ์•„์ด์ฝ˜ ์ด๋ฏธ์ง€ (format + example)

https://ddragon.leagueoflegends.com/cdn/10.11.1/img/champion/{์ฑ”ํ”ผ์–ธ ์ด๋ฆ„}.png

  • ํŠน์ • ์ฑ”ํ”ผ์–ธ ์ •๋ณด (format + example)

[http://ddragon.leagueoflegends.com/cdn/10.11.1/data/ko_KR/champion/{์ฑ”ํ”ผ์–ธ ์ด๋ฆ„}.json}(http://ddragon.leagueoflegends.com/cdn/10.11.1/data/ko_KR/champion/Aatrox.json)

๊ทธ์™ธ ๋ฐ์ดํ„ฐ๋Š” RIOT DATA DRAGON์—์„œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ https://shyunku.tistory.com/56 ๋ธ”๋กœ๊ทธ์—์„œ ์ž˜ ์ •๋ฆฌํ•ด ๋†“์•„์„œ ๋งŽ์€ ์ฐธ๊ณ ๊ฐ€ ๋˜์—ˆ๋‹ค.

์†Œํ™˜์‚ฌ ํ‹ฐ์–ด

์†Œํ™˜์‚ฌ ํ‹ฐ์–ด๋Š” Ranked Info์—์„œ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์œ„ ์ด๋ฏธ์ง€ ํŒŒ์ผ์— ๋งž๋Š” ์†Œํ™˜์‚ฌ ํ‹ฐ์–ด์™€ ๋งค์นญ์„ ์‹œ์ผœ์ค˜์•ผํ•˜๋Š”๋ฐ, ์•ž์„œ ๋‚ด๊ฐ€ ๋ฆฌ๊ทธ ์ •๋ณด์— ๋Œ€ํ•ด ํŒŒ์‹ฑ์„ ์•ˆํ•ด์„œ ์ƒˆ๋กœ DTO์™€ ๊ด€๋ จ ํŒŒ์„œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

ํŒŒ์‹ฑ์— ๊ด€ํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฒฐ๊ณผ

์ •๋ง ๋‘์„œ์—†์ด ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”์ง€๋งŒ, ํ™”๋ฉด์€ ๋‚˜์ค‘์— ๋‹ค์‹œ ๊ตฌ์„ฑํ• ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์‹ฑํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ๊นŒ์ง€ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ์ ์„ ๋งํ•˜๊ณ ์‹ถ๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŒ…์— ๋” ํ•ด์•ผํ•  ์‚ฌํ•ญ์€ ์ง€๋‚œ๋ฒˆ์—์„œ ์„ค๊ณ„ํ•œ ํ™”๋ฉด์— ๋“ค์–ด๊ฐ€๋Š” ์ •๋ณด๋“ค์„ ํ™”๋ฉด๋‹จ์— ๋ฟŒ๋ฆฌ๋Š” ๊ฒƒ๊นŒ์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ถ”๊ฐ€์ ์œผ๋กœ ์ง€๊ธˆ์€ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ž„์˜๋กœ ๋ชจ๋“  ํŒŒ์„œ๋“ค์„ ํ˜ธ์ถœํ•ด์„œ ๋ฟŒ๋ ค์ฃผ๊ณ ์žˆ๋Š”๋ฐ, ์‚ฌ์‹ค ์ด ๋ถ€๋ถ„์€ ์„œ๋น„์Šค์—์„œ ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋Š”๊ฒŒ ๋งž๋‹ค๊ณ  ํŒ๋‹จ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์†Œํ™˜์‚ฌ ์ •๋ณด ํ•˜๋‚˜์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋”ธ๋ ค์˜ค๋Š” ์ •๋ณด๋“ค์ด๊ธฐ๋•Œ๋ฌธ์— ์œ ์‚ฌ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ผ๊ณ  ์ƒ๊ฐ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ ํฌ์ŠคํŠธ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ๋ฅผ ์ด์šฉํ•ด ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฒ•์„ ๊ณต๋ถ€ํ•ด์„œ ์ ์šฉ์‹œํ‚ค๋Š” ํฌ์ŠคํŒ…์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

REF

profile
https://junhok82.github.io/

0๊ฐœ์˜ ๋Œ“๊ธ€