[Loop:PAK] 5주차 회고

2025. 8. 17. 23:57·Project/회고

이번 주는 상품 목록 조회 API의 읽기 성능 개선 작업을 진행했다. 단순히 애플리케이션 로직만 손보는 것만이 아니라 DB 인덱스와 캐시까지 적용하며 병목 지점을 단계별로 확인하고 개선하는 데 집중했다.

먼저 불필요하다고 생각한 로직을 제거해봤지만 응답 속도나 TPS 개선 폭은 미미해서 놀랐었다. 구조 개선도 어느정도 영향을 줄 수 있을줄 알았는데 거의 없다니.. 그래도 이 작업을 통해 병목의 주된 원인이 애플리케이션 로직이 아니라 DB 쿼리 처리 과정에 있음을 확인할 수 있었다. 이후 검색 조건과 정렬 조건을 조합한 복합 인덱스를 적용하자 filesort가 제거되고 쿼리 실행 시간이 약 500ms에서 3ms까지 단축되었다. TPS도 약 2배 상승하고 에러율도 70% 이상 줄었지만, 부하 테스트에서 응답 시간이 여전히 초 단위라는 한계는 남아 있었다.

마지막으로 Redis 캐시를 도입하면서 큰 변화가 있었다. 평균 응답 시간이 7초대에서 20ms대로 줄었고, TPS도 수천 단위까지 증가하며 안정성이 확보됐다. 특히 캐시워밍까지 적용했을 때 초기 요청부터 안정화된 점이 인상적이었다.

이번 과정을 통해 단순 로직 개선만으로는 병목을 해소하기 어렵고 DB 최적화와 캐시가 중요한 해결책이라는 걸 다시금 느꼈다. 또 캐시는 단순히 넣고 끝나는 것이 아니라 TTL, 쓰기 전략, 무효화 정책까지 운영 전략이 뒤따라야 정합성과 성능을 함께 챙길 수 있다는 점도 배웠다.

앞으로는 쓰기 전략을 보완해 조회 성능뿐만 아니라 데이터 정합성까지 만족시키는 구조로 발전시켜 볼 계획이다. 추가로 캐시 스탬피드 현상에 대한 대책도 고민해 적용해보고자 한다.

반응형

'Project > 회고' 카테고리의 다른 글

[Loop:PAK] 마지막 회고  (0) 2025.09.19
[Loop:PAK] 4주차 회고  (4) 2025.08.09
[Loop:PAK] 3주차 회고  (0) 2025.08.01
[Loop:PAK] 2주차 회고  (0) 2025.07.25
[Loop:PAK] 1주차 회고  (0) 2025.07.18
'Project/회고' 카테고리의 다른 글
  • [Loop:PAK] 마지막 회고
  • [Loop:PAK] 4주차 회고
  • [Loop:PAK] 3주차 회고
  • [Loop:PAK] 2주차 회고
haylee
haylee
개발하면서 보고 듣고 느낀 것들을 정리하는중
  • haylee
    haylee
    haylee
    • 홈
    • GitHub
    • LinkedId
    • 분류 전체보기 (19)
      • Project (6)
        • 회고 (6)
      • Study (13)
        • Database (3)
        • Test (1)
        • Architecture (9)
  • hELLO· Designed By정상우.v4.10.1
haylee
[Loop:PAK] 5주차 회고
상단으로

티스토리툴바