카테고리 없음

[코드 리뷰] 배운 점 (게임 전적 데이터 업데이트를 통해 추천 서비스 설계)

yongyongcoding 2025. 9. 5. 15:03

" 내가 리뷰한 코드는 Lol 게임의 상위 티어의 전적을 업데이트하여 

상위 티어의 [추천템트리, 추천 시작템,  추천 룬, 추천스킬트리, 추천 신발 등]의 정보를 db에 일괄 저장하여

일반 사용자 즉, 저티어 사용자에게  추천해주는 서비스를 구성하는 코드였다. "

 

우선 코드의 Refactoring과정을 이야기해보겠다.

 

[이전의 코드]

Spring Batch를 활용해 배치 서버로 일정 시간(일일 2회, 새벽 시간)에 

상위 티어 전적을 업데이트해주는 요청을 보낸다.

 

[이전 코드의 문제점]

Spring Scheduler를 사용하면 서버에 대한 부화가 커질 수 있어 안정성에 위험이 있었다.

 

※Spring Batch는 대량의 데이터를 일괄적으로 처리하는 데 특화되어 있고,

※ MQ는 분산 및 비동기 처리를 통해 시스템의 안정성과 유연성을 높이는 데 강점이 있다. 

 

[MQ 확장 설계]

1. 이전의 Spring Batch코드 대신 MQ를 새롭게 설계.

2. 전적 업데이트 화는 과정을 Consumer에서 진행.

3. 인프라는 GitHub의 안정적인 인프라를 활용하고, 기존의 Spring 서버가 아닌 파이썬 서버를 새로 열어서

파이썬 서버에서 상위 티어 사용자의 소환사Id값을 조회한 후 Spring서버의 MQ 요청을 보내 전적 업데이트를 진행.

 

[내가 생각한 설계 장점]

우선 Spring Batch가 아닌 MQ를 통해 서버 부화를 줄였다는 것에 큰 의미가 있다고 생각한다.

또한 기존의 Spring Batch가 아닌 GitHub Actions + Python/MQ 방식을 사용하면

별도의 배치 서버를 구축하거나 관리할 필요가 없기 때문에 배포가 편리하며 인프라 비용을 줄여준다는 장점이 있다.

 

[배운 점]

성능 향상을 위해 이러한 확장 설계를 할 수 있는 시각을 갖고 싶다는 생각을 했다.

내가 가진 spring 서버에서만 시각이 몰두되어 있었는데 이런식으로 파이썬과 git action을 활용해 batch 서버를 구현할 수 

있다는 것을 새롭게 알게 되었다.