ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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를 먼저 작성하여 누락하는 부분들이 없도록 관리해보자!
Designed by Tistory.