๋ฐ์—”์œผ๋กœ ์„ฑ์žฅ์ค‘ ๐ŸŒฑ

๊ฐœ๋ฐœ ์ผ์ง€/[LOL Data Pipeline ๊ตฌ์ถ•ํ•˜๊ธฐ]

1. Riot API ์‹ ์ฒญ & Spring Boot ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

์จ๋ฐ 2023. 10. 17. 22:34

 

0. ํ”„๋กœ์ ํŠธ ์ฃผ์ œ ๋ญํ•˜์ง€?

 

 

์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌด๋ฃŒ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ ์–‘๋„ ๋งŽ์€ ๊ณณ์„ ๊ฝค ์ฐพ๊ธฐ ์–ด๋ ค์› ๋‹ค.

 

์‹ค์‹œ๊ฐ„ ์ง€์ง„ ๋ฐ์ดํ„ฐ, ํ•ญ๊ณต ๋ฐ ์„ ๋ฐ• ๋ฐ์ดํ„ฐ ๊ฐ™์ด ์žฌ๋ฏธ๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™๊ณ  ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ค„์„œ ์ด๊ฒƒ ์ €๊ฒƒ ๋‹ค์–‘ํ•œ ๊ฒฐ๊ณผ๋„ ๋งŒ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ฐพ์•„๋ณด๋‹ค ํ•ด์™ธ ์‚ฌ์ดํŠธ๊นŒ์ง€ ๊ฐ€์ž…ํ•ด์„œ ์‹ ์ฒญ๋„ ํ•ด๋ดค์ง€๋งŒ ๊ฒฐ๊ตญ Fail...

 

์–ด๋–ค ํ”„๋กœ์ ํŠธ ์ฃผ์ œ๋ฅผ ํ•ด๋ณผ์ง€ ์ด๊ฒƒ์ €๊ฒƒ ์ฐพ์•„๋ณด๊ณ  ์‹œ๋„ํ•˜๋‹ค๊ฐ€, ์ฆ๊ฒจํ•˜๋Š” ๊ฒŒ์ž„์ธ ๋กค(League of Legends, LOL) ๋ฐ์ดํ„ฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.

๋งˆ์นจ ๊ด€๋ จ ํ”„๋กœ์ ํŠธ๋ฅผ ์ด๋ฏธ ์ง„ํ–‰ํ•˜์‹  ์„ ๋ก€์˜ ๋ธ”๋กœ๊ทธ๊ฐ€ ์žˆ์–ด, ๋งŽ์ด ์ฐธ๊ณ ํ•˜๊ณ  ์‘์šฉํ•ด๋ณด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค ใ…Žใ…Ž

 

๊ฑฐ์ฐฝํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋Š” ์—†๊ฒ ์ง€๋งŒ, ๊ทธ๋™์•ˆ ๋‹ค๋ค„๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๊ธฐ์ˆ  ์Šคํƒ๋“ค(ํŠนํžˆ Kafka๋ž‘ Spark ๋“ฑ๋“ฑ)์„ ๋‹ค๋ค„๋ณด๋Š” ๊ฒƒ์— ํฐ ์˜๋ฏธ๋ฅผ ๋‘๊ณ  ๋„์ „ ํ•ด๋ณด๊ธฐ๋กœ!

 

 

 

1. Riot API Key ์‹ ์ฒญํ•˜๊ธฐ

 

 

https://developer.riotgames.com/apis ํ•ด๋‹น URL์— ์ ‘์† ํ›„, ๋ผ์ด์—‡ ๊ณ„์ •์— ๋กœ๊ทธ์ธ ํ•˜์—ฌ REGISTER PRODUCT๋ฅผ ํด๋ฆญํ•˜๊ณ  ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์„ ๋‹ด์•„ ์‹ ์ฒญํ•˜์˜€๋‹ค. ์•ฝ 2์ฃผ ํ›„ Approved๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 

 

 

 

 

์‹ ์ฒญํ•œ API Key๋กœ ์ž˜ ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, API ์‚ฌ์ดํŠธ ๋‚ด์—์„œ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ์€ API๋ฅผ ์„ ํƒํ•œ ํ›„, ์•„๋ž˜ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์Šน์ธ๋œ api key๋ฅผ  ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

2. Java Spring Boot ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

 

 

 

๊ทธ๋™์•ˆ ๋ฐฑ์—”๋“œ ๋ถ€๋ถ„์€ Django ๊ฒฝํ—˜๋ฐ–์— ์—†์—ˆ์–ด์„œ, ์ด๋ฒˆ์—๋Š” java spring boot๋ฅผ ์‚ฌ์šฉํ•ด์„œ API๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

https://start.spring.io/ ์— ์ ‘์†ํ•˜์—ฌ ์•„๋ž˜ ์„ธํŒ…์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ๋‹ค์šดํ•ด์ฃผ์—ˆ๋‹ค.

 

 

 

 

 

๋‹ค์šดํ•œ ํŒŒ์ผ์„ IntelliJ๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์—ด์–ด์ฃผ์—ˆ๋‹ค.

 

 

 

๐Ÿšจ no matching variant of org.springframework.boot

 

 

ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐ”๋กœ ๋นŒ๋“œํ–ˆ๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค.

 

 

 

 

์œ„์—์„œ ์Šคํ”„๋ง ๋ถ€ํŠธ๋กœ ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ ์ž๋ฐ” ๋ฒ„์ „๊ณผ ํ˜„์žฌ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์— ์„ค์ •๋œ ์ž๋ฐ” ๋ฒ„์ „์ด ๋‹ฌ๋ผ์„œ ์ƒ๊ธด ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ž๋ฐ” ๋ฒ„์ „์„ ๋งž์ถฐ์ฃผ๋„๋ก ํ–ˆ๋‹ค.

 

 

 

 

์Šคํ”„๋ง ๋ถ€ํŠธ ์„ค์ •๊ฐ’๊ณผ ๋™์ผํ•˜๊ฒŒ Language Level๊ณผ Gradle JVM์„ Java 17๋กœ ๋งž์ถฐ์ฃผ์—ˆ๋‹ค.

 

 

 

 

๋‹ค์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋ฉด, ์—๋Ÿฌ ์—†์ด ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

 

 

3. Git & GitHub ์‚ฌ์šฉํ•˜๊ธฐ

 

 

ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž˜ ๋นŒ๋“œ๋˜์—ˆ์œผ๋‹ˆ, ํ•ด๋‹น ํ”Œ์ ์„ ๊นƒํ—ˆ๋ธŒ์— ์˜ฌ๋ฆฌ๊ณ  ๋ธŒ๋žœ์น˜ ๋‚˜๋ˆ ์„œ develop ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

 

 

 

Add: Spring Boot project · Lee-SungMin/LOL_Data_Pipeline@6642afd

Lee-SungMin committed Oct 17, 2023

github.com

 

 

4. gitignore ์„ค์ •ํ•˜๊ธฐ

 

ํ˜„์žฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด mac์ด๊ธฐ ๋•Œ๋ฌธ์— ์ถ”์ ๋˜์ง€ ์•Š๋„๋ก ์ถ”๊ฐ€ ์„ค์ •์„ ํ•ด์ฃผ๊ณ , ๋ฐœ๊ธ‰ ๋ฐ›์€ Riot API key๋„ ์™ธ๋ถ€์—์„œ ํ™•์ธํ•  ์ˆ˜ ์—†๋„๋ก ์„ค์ •ํ–ˆ๋‹ค.

 

# for mac
*/.DS_Store
.DS_Store

# Riot API Key
application.properties

 

 

CHORE: gitignore ์„ค์ • · Lee-SungMin/LOL_Data_Pipeline@3373ccf

Lee-SungMin committed Oct 24, 2023

github.com

 

 

 

5. API Key๋Š” ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ๊นŒ?

 

 

๊ทธ๋™์•ˆ ์ž๋ฐ” ํ”„๋กœ์ ํŠธ ํ•˜๋ฉด์„œ ํ•ญ์ƒ ์ค‘์š”ํ•œ ํ‚ค๊ฐ’๋“ค์„ ๊ทธ๋ƒฅ ํ•˜๋“œ์ฝ”๋”ฉ์œผ๋กœ ๊ฐ’์„ ์ฃผ์ž…ํ•ด์„œ ์‚ฌ์šฉํ•ด์™”์—ˆ๋‹ค.

์ž๋ฐ” ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ๋Š˜ ํ‚ค๊ฐ’ ๋•Œ๋ฌธ์— ๊ณ ์ƒ์ด์—ˆ๋Š”๋ฐ...์™œ ์ด๊ฑธ ์ด์ œ ์•Œ์•˜์„๊นŒ...ใ… ใ… 

 

 

 

 

application.properties์— ๋ฐœ๊ธ‰๋ฐ›์€ api key ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ๋ฉด, @Value ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด ํ•ด๋‹น ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.