-
7주차 회고노트항해 플러스 백엔드 5기 2024. 8. 3. 16:14
1. 이번 과제
주제: 적은 부하로 트래픽 처리하기
Step13
- 조회가 오래 걸리는 쿼리에 대한 캐싱, 혹은 Redis 를 이용한 로직 이관을 통해 성능 개선할 수 있는 로직을 분석하고 이를 합리적인 이유와 함께 정리한 문서 제출
Step14
- Caching을 활용하여 부하를 최소화할 수 있는 비즈니스 로직을 파악해보고, 적절한 Caching Strategy를 적용하는 코드를 작성하여 제출
2. 회고
✏️ 문제
과제, 프로젝트를 진행하면서 부딪혔던 기술적인 문제
이번 주차를 지나며 겪었던 문제가 무엇이었나요?
- 인기 상품 목록 조회의 경우 Redis 데이터 최신화를 어떤 방식, 주기로 가져갈 것 인지에 대한 고민
- 여러 Redis 전략 중 적용하려는 기능과 가장 적합한 전략이 어떤 것 인지에 대한 고민
✏️ 시도
문제를 해결하기 위해 어떤 시도를 하셨나요?
- Redis에 캐싱된 데이터를 최신화를 가져가는 방법에 대한 여러가지 샘플 코드 및 방식들에 대해서 찾아보았다.
- Redis 전략은 방식들이 존재하는지, 해당 방식들은 어떤 상황에 주로 적용하여 어떤식으로 사용되는지에 대해서 찾아보았다.
✏️ 해결
문제를 어떻게 해결하셨나요?
- Redis ttl 설정을 통해 캐시 데이터의 수명을 1시간으로 설정하여 1시간 마다 캐싱 데이터가 제거되고 이후 인기 상품 목록 조회 요청이 들어오는 시점에 다시 캐싱 데이터가 적재되도록 해결
- 인기 상품 목록 조회의 경우 주문 내역을 통해 3일간 가장 많이 판매된 상품의 정보를 조회하는 읽기가 많은 워크로드로 Read Through 전략이 적합하다고 생각하여 해당 전략을 적용하여 해결
✏️ 알게된 것
문제를 해결하기 위해 시도하며 새롭게 알게된 것은 무엇인가요?
- 상품 목록 조회 기능의 케이스에도 Redis를 활용한 캐싱을 적용이 적절할 수 있다.
- 캐싱을 적용한 부분에 대한 통합, 단위 테스트를 작성하고 테스트 해볼 수 있다.
- 하이브리드 캐싱 방식이 존재하고 어떠한 경우에 사용하면 좋을지 공부해보면 좋겠다.
- DB만으로 사용하여 부하 테스트, Redis를 적용 후 부하 테스트를한 두가지 지표를 비교하여 캐싱 적용에 대한 지표로 활용한다.
- DB 인덱싱에 대해서도 좀 더 상세하게 퀴리를 개선하고 캐싱을 적용한다면 성능이 더욱 좋아진다, 그러니 인덱스도 자세하게 공부하기
✏️ Keep : 현재 만족하고 계속 유지할 부분
이번 주를 마무리 하며 나에게 만족했던 부분은 무엇인가요?
- 성능 향상을 위해 기술을 도입할 때 어떤 기능들에 적용해 볼 수 있을지 비즈니스 로직을 파악하고 그에 대한 이점을 시각적인 자료를 통해 타당한 근거를 제시하는 보고서를 작성해보았다는 점.
- DB 인덱스라는 개념에 대해서 좀 더 상세하게 공부하여 데이터베이스 관련된 성능을 핸들링 할 수 있는 능력을 향상시켜보자!
✏️ Problem : 개선이 필요하다고 생각하는 문제점
이번 주를 마무리 하며 개선이 필요하다고 생각했던 문제점은 무엇인가요?
- 캐싱이 제거되는 이후 요청을 하는 특정 사용자에게는 시간이 오래걸릴 수 있다.
- 캐싱에 대한 테스트 케이스를 어떤식으로 작성해야 하는지 좀 더 고민이 필요하다.
- 과제 진행 중 사소한 부분들을 하나씩 누락하는 부분들에 대해서 개선이 필요하다.
✏️ Try : 문제점을 해결하기 위해 시도해야 할 것
이 문제점을 해결하기 위해 다음 한 주간 시도 할 것은 무엇인가요?
- 스케줄러를 통해 캐싱 데이터를 업데이트하여 사용자는 캐싱된 데이터만 조회하도록 수정한다면 좋을 것 같다.
- DB에 쿼리를 호출하는 메소드가 수행된 횟수 또는 캐싱을 통해 조회된 데이터의 정합성에 대한 테스트 코드를 추가해보자!
- 과제를 진행하기전 어떤 작업들을 해야하는지 Todo list를 먼저 작성하여 누락하는 부분들이 없도록 관리해보자!
'항해 플러스 백엔드 5기' 카테고리의 다른 글
부하를 적절하게 축소하기 (2) (0) 2024.08.04 부하를 적절하게 축소하기 (1) (0) 2024.08.04 적은 부하로 트래픽 처리하기 (0) 2024.07.29 6주차 회고노토 (0) 2024.07.27 e-커머스 서비스 동시성 문제와 극복 (0) 2024.07.22