본문 바로가기

분류 전체보기131

파이널 프로젝트_Caffeine Cache(로컬 캐시) 적용하기 적용하게 된 계기 프로젝트 마무리 하는 중 대시보드를 띄우는 관리자 홈페이지 로딩이 너무 느려졌다고 생각되었다값이 자주 변경 되지 않는 쿼리문을 계속 실행시킬 필요가 없다고 판단해서 캐시 기능을 적용하기로 했다 로컬 캐시 VS 글로벌 캐시 캐시 전략은 크게 로컬 캐시와 글로벌 캐시 2가지가 있다 글로벌 캐시 : 여러 대의 서버가 있고, 캐시용 서버를 마련하여 사용하는 캐시.네트워크 오버헤드와 관리 비용이 더 많이 들 수 있지만, 분산된 환경에서 데이터의 일관성을 보장할 수 있다 로컬 캐시 : 해당 기기에서만 사용되는 캐시.구현하기 쉽고, 하나의 서버로 운영할 경우 네트워크 비용이 없다그리고 글로벌 캐시 방법보다는 빠르다는 장점이 있다  로컬 캐시는 단일 애플리케이션 내에서 데이터를 효율적으로 관리할 때 .. 2024. 5. 14.
파이널 프로젝트_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.