Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor#7: 스케쥴링 모듈 분리 #9

Merged
merged 5 commits into from
Dec 30, 2024
Merged

refactor#7: 스케쥴링 모듈 분리 #9

merged 5 commits into from
Dec 30, 2024

Conversation

HyeonJun0530
Copy link
Contributor

📄 작업 설명

api-server 모듈에 있던 스케쥴링 로직을 schedule-server 모듈로 분리했어요 !
테스트 및 core 모듈에 약간의 도메인 로직들이 들어가게 되었는데 추후에 core 모듈에 대해 리팩터링을 진행하는게 좋아보여요 !

그리고 서버를 분리하면서 서버간의 통신 방법을 고려해봤을 때 kafka 같은 메시징큐가 적합해보였는데 redis를 세션 저장소 및 인메모리 캐시로 사용하고 있기 때문에 redis stream을 이용해 구현할 생각입니다 !
또한 재시도 로직, 현재 서버 다운 시 지나간 스케줄링 시간에 대한 벌크 쿼리를 날리는 것에 대한 성능 이슈를 고려해봤을 때 Spring Quartz를 도입하는 게 좋아 보여 리팩터링 중입니다 !

🚨 관련 이슈

closes #7

🌈 작업 상황

  • api-server 스케줄링 모듈 -> schedule 모듈로 분리
  • core 모듈로 공통 엔티티, 도메인 이동
  • 테스트 코드를 위해 util 추가

📌 기타

- core build.gradle JPA, MySQL 추가 및 api-server build.gradle에서 삭제
- settings.gradle schedule-server 모듈 추가
- schedule-server 모듈 생성
- Ticket, Member, Purchase, Festival 엔티티 api 모듈 -> core 모듈로 이동
- Auditing config core 모듈로 이동
- 테스트 및 비즈니스 로직 코드 이동
- JPA Repository 생성 및 테스트용 JPA Repository 생성
- FestivalService 스케쥴링 코드 주석 처리
- FestivalsApplication @EnableScheduling 삭제
@HyeonJun0530 HyeonJun0530 added the refactor 리팩토링 label Dec 24, 2024
@HyeonJun0530 HyeonJun0530 self-assigned this Dec 24, 2024
Copy link

Code Coverage Report

Overall Project 86.08% 🍏
Module Coverage
api-server 84.58% 🍏
Files
Module File Coverage
api-server FestivalService.java 100% 🍏
TicketService.java 95.78% 🍏

Copy link
Contributor

@minnim1010 minnim1010 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@minnim1010 minnim1010 merged commit 4bb4d50 into develop Dec 30, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor 리팩토링
Projects
None yet
Development

Successfully merging this pull request may close these issues.

refactor: 스케쥴링 모듈 분리
2 participants