본문 바로가기

mysql6

파이널 프로젝트_ShedLock을 이용한 스케쥴 중복실행 방지 참고한 블로그https://blog.naver.com/hohomax/223380841680 Spring 스케쥴 중복실행 방지하기! (ShedLock)Spring 스케쥴 중복실행 방지하기! (ShedLock) 요즘은 단일서버 구성을 하지않고 트래픽이나 사용량에 ...blog.naver.com  내가 담당한 파트에서도 @Scheduled 을 사용하는 코드가 있다보니 적용해보기로 했다  ShedLock을 사용하면 좋은점 ShedLock은 스케줄된 작업을 관리 및 중복 실행을 방지하는 데 사용된다 중복 실행방지 ShedLock을 사용하면 동일한 스케줄된 작업이 여러 서버에서 중복해서 실행되는 것을 방지할 수 있다(시스템 리소스의 낭비를 줄이고, 데이터 일관성을 유지하는데 도움이 된다) 데이터베이스 락을 통한 안.. 2024. 5. 9.
파이널 프로젝트_ MySQL 데이터베이스 이중화 - 읽기 분리 전략 적용하기 참고한 블로그https://velog.io/@skyjoon34/MySQL-RDS-%EC%9D%BD%EA%B8%B0%EC%A0%84%EC%9A%A9-replica-%EC%A0%81%EC%9A%A9 MySQL RDS 읽기전용 replica 적용간단한 읽기 전용 replicavelog.io   DB 생성부분은 빼고 Spring 적용부분부터 진행  Spring 프로젝트에 적용  DataSourceConfiguration@Slf4j@Configurationpublic class DataSourceConfiguration { private static final String MASTER_SERVER = "MASTER"; // 마스터 서버를 나타내는 상수 문자열입니다. private static final.. 2024. 5. 7.
파이널 프로젝트_Chart.Js를 활용한 대시보드 DashBoardController    DashBoardController -  getTotalYesterday 메소드는 @RedpondrBody 어노테이션을 사용해서 List 객체가 JSON 형식으로 반환하게 한다 ( Service나 Mapper 클래스에서는 서로를 리턴하는 코드뿐이어서 따로 넣진 않겠다 ) SELECT * FROM ( SELECT DAY_TOTAL_DATE AS dayTotalDate, DAY_TOTAL_PRICE AS dayTotalPrice FROM BookHub.DAY_TOTAL ORDER BY DAY_TOTAL_DATE DESC LIMIT 7 ) AS recent_data ORDER BY dayTotalDate ASC  getTotalYesterday 메소드에서 실행하.. 2024. 5. 1.
파이널 프로젝트_ @Scheduler를 활용한 통계 저장 기능 @Scheduler 어노테이션을 사용하려면실행되면 프로젝트 Application 클래스에 @EnableScheduling 을 붙여주어야 한다  DashBoardScheduleService   DashBoardScheduleService 는 예약 작업을 설정하는 @Scheduler 애노테이션을 사용하여특정 시간마다 자동으로 수행될 작업을 정의해놓았다 정의해놓은 작업은매일 오전10시에 실행되는 saveTotalYesterday( ) 메소드와 매주 월요일 오전 10시에 실행되는 saveTotalLastWeek( ) 메소드다 saveTotalYesterday( ) 메소드는   BUY 테이블에서오늘기준으로 어제날자의 판매 데이터를 조회해서 합산하고통계테이블인 DAY_TOTAL 테이블에 저장한다   saveTota.. 2024. 5. 1.