Skip to content

Releases: boostcampwm-2024/refactor-web21-TICLE

v1.1.0

17 Jan 07:28
74d958b
Compare
Choose a tag to compare

도커 네트워크 모드 변경

  • 최적화 대상: 많은 포트 포워딩 시 서버가 터지는 문제
  • 변경사항: Docker의 네트워크 모드를 host로 변경 하였습니다
  • 기대 효과:
    • bridge network → host network 변경으로 인하여 네트워크 속도 향상이 기대됩니다.
    • 포트포워딩 프로세스(docker-proxy)가 실행되지 않아 하드웨어 자원이 절약됩니다.
    • 포트포워딩 갯수 제한이 사라져 많은 사용자들을 수용할 수 있습니다.
  • 산출물:

배포 시간 단축: Docker 빌드 최적화

  • 최적화 대상: Docker 이미지를 빌드할 때 Mediasoup 네이티브 모듈의 빌드 및 의존성 설치 과정이 매번 반복적으로 수행되어 리소스가 낭비되는 문제
  • 변경 사항:
    • 캐싱 적용: Mediasoup 네이티브 모듈의 다운로드 및 컴파일 결과를 캐싱하여 반복적인 빌드 시에도 해당 작업이 재실행되지 않도록 최적화했습니다.
    • 이미지 빌드 구조 개선: Dockerfile 내 빌드 단계를 재구성하여 의존성 빌드와 애플리케이션 코드 업데이트를 분리하여 캐시 활용을 최적화했습니다.
  • 기대 효과:
    • Docker 이미지 빌드 시간을 약 7분에서 약 1분으로 단축하였습니다.
    • 배포 프로세스의 효율성 증가로 개발 및 운영 속도 개선할 수 있습니다.
  • 산출물:

쿼리 최적화: getTicleList() 메서드

  • 최적화 대상: getTicleList() 메서드는 티클 목록을 조회하는 API
  • 변경 사항:
    • 인덱스 추가: created_at 컬럼에 인덱스를 추가하여 기존 Full-Scan 방식에서 B-Tree 기반 조회로 변경하여 조회 성능을 향상했습니다.
    • 커서 기반 페이지네이션: 기존 오프셋 기반 페이지네이션을 커서 기반으로 전환하여 대량의 데이터를 처리할 때 성능을 유지하도록 개선했습니다.
    • 서브쿼리 최적화: 전체 테이블에 JOIN을 적용하던 방식을 개선하여 조회된 ticle에만 join이 수행되도록 서브쿼리를 이용하여 개선하였습니다.
  • 기대 효과:
    • 데이터가 많은 환경에서도 API의 성능 저하를 방지하였습니다.
    • 최적화 이후 쿼리 실행 시간은 쿼리 플랜을 기준으로 약 7초에서 약 0.1초로 개선되었습니다.
  • 산출물:

성능 측정 : Artillery 사용

  • 최적화 대상: DB에 접근하는 API들의 성능을 측정하고, 부하 테스트 후 개선
  • 변경 사항: YML 스크립트 작성
  • 기대 효과:
    • 현재 6600개 이하의 부하테스트는 돌아가고 있습니다.
    • 슬로우 쿼리가 일어나는 부분을 찾아 쿼리 최적화 후에 성능 개선을 이뤄내 수치화 할 수 있습니다.
  • 산출물:

What's Changed

  • [Feat] dockerfile 캐싱을 통한 빌드 시간 단축 by @Fixtar in #2
  • [Fix] 티클 리스트 조회 쿼리 최적화 by @Fixtar in #6
  • [Fix] 포트 포워딩 갯수가 많아지면 서버가 터지던 문제 수정 by @begong313 in #4

Full Changelog: https://github.com/boostcampwm-2024/refactor-web21-TICLE/commits/v1.1.0