본문 바로가기
728x90

전체 글69

StyleLab의 여덟 번째 노트: 상품 목록 조회 성능 테스트 카테고리별 상품 목록 조회 API의 성능을 테스트하기 위한 목적입니다. 모든 테스트는 10분 동안 500명의 가상 유저를 사용하여 성능 테스트를 진행하였습니다. 목차 2C, 4G single instance 2C, 4G two instance L7 Load Balance 4C, 8G single instance 앞으로 해야 할 일 테스트를 위해 사용된 application server, pinpoint server, nGrinder server, L7 Load Balance는 Naver Cloud Platform을 사용하였으며, 코드는 아래 깃헙 링크에서 보실 수 있습니다. https://github.com/rbsks/StyleLab GitHub - rbsks/StyleLab Contribute to r.. 2024. 2. 9.
StyleLab의 일곱 번째 노트: 상품 목록 조회 최적화를 위한 파티셔닝 - 2 이전 포스팅에 이어서 애플리케이션에서 각 파티셔닝 테이블의 데이터를 조회하는 코드는 어떻게 구현하였는지 공유해 보도록 하겠습니다. 목차 상품 목록 조회 API의 Controller ProductCategoriesFacade의 findAllProductCategoryConditions() 메서드 ProductCategotryType의 역할 ProductCategoriesService의 findAllProductCategoryConditions() 메서드 ProductCategoryQueryDslRepositoryStrategyMap과 ProductCategoryQueryDslRepository interface 몇 가지의 문제점 문제점 개선 느낀점 1. 상품 목록 조회 API Controller 밑의 Co.. 2024. 1. 30.
StyleLab의 여섯 번째 노트: 상품 목록 조회 최적화를 위한 파티셔닝 - 1 상품 목록 조회 성능 개선을 위해 파티셔닝을 도입한 경험을 공유해 보도록 하겠습니다. 목차 offset paging의 문제점 cursor paging을 사용하여 조회 성능 개선 극복하지 못한 한계 Partitioning 도입 느낀점 1. offset paging의 문제점 상품 테이블에 많은 데이터가 쌓이기 전에는 offset paging 방식을 사용하여 상품 목록을 조회하고 있었습니다. 적은 양의 데이터가 있는 테이블에서는 offset paging의 성능 저하는 발생하지 않습니다. 하지만 많은 양의 데이터가 있는 테이블에서는 성능 저하가 발생하게 됩니다. 현재 상품 테이블에 카테고리가 상의(001001)인 상품 개수는 2,323,428개이며, offset paging을 사용하여 2,300,00번째 부터 .. 2024. 1. 28.
StyleLab의 다섯 번째 노트: Ehcache 적용 이번 프로젝트를 진행하면서 카테고리 목록 조회에 cache를 적용한 경험을 공유해 보도록 하겠습니다. 목차 상품 카테고리 테이블 구조 cache를 도입한 이유 Ehcache Ehcache 적용 APM Pinpoint로 monitoring reference 1. 상품 카테고리 테이블 구조 상품 카테고리 테이블은 계층형 데이터 모델인 경로 열거 테이블 구조 방식을 사용하여 데이터를 저장하고 있습니다. 상품 카테고리 테이블을 경로 열거 테이블 구조로 결정한 이유는 다음과 같습니다. 계층 구조가 크게 변하지 않을 거라 예측되며, 구현이 쉽습니다. 계층의 깊이가 깊지 않고 상대적으로 고정된 구조를 갖기 때문에 계층 구조를 직관적으로 이해하기 쉽습니다. 쿠팡, 무신사, 네이버, 오늘의 집 모두 경로 열거형 방식의 .. 2024. 1. 18.
StyleLab의 네 번째 노트: APM Pinpoint 개발자는 애플리케이션 성능을 모니터링하고 분석하여 사용자에게 더 나은 서비스를 제공해야 하며, 문제가 발생했을 때 빠르게 대응할 수 있어야 합니다. 이러한 작업을 도와주는 도구를 Application Performance Management라고 합니다. 이번 글에서는 Pinpoint를 적용한 경험을 공유해 보도록 하겠습니다. 목차 Pinpoint란? Pinpoint architecture HBase 설치 Pinpoint collector, Pinpoint Web UI 설치 Pinpoint Agent 설치 reference 1. Pinpoint란? java/php로 작성된 대규모 분산 시스템의 트랜잭션을 추적하여 시스템의 전체 구조와 서로 어떻게 연결되어 있는지 실시간으로 분석하는 데 도움이 되는 APM(.. 2023. 12. 21.
StyleLab의 세 번째 노트: Github Actions CI/CD 구축 개발자는 프로젝트를 진행하면서 테스트 코드를 실행하고 빌드 하여 배포하는 과정을 반복하게 됩니다. 하지만 위와 같은 과정이 반복되면 생산성이 떨어지게 되는데, 이러한 문제를 해결하기 위해 프로젝트를 진행하기 전에 빌드와 테스트 그리고 배포를 자동화할 수 있도록 CI/CD를 구축하도록 하겠습니다. 목차 GitHub Actions를 선택한 이유 GitHub Actions의 작업 구성 요성 GitHub Actions로 CI 구축하기 GitHub Actions로 CD 구축하기 reference 1. GitHub Actions를 선택한 이유 CI/CD를 구축할 수 있는 제가 아는 대표적인 도구로는 Jenkins와 GitHub Actions가 있습니다. 저는 이번 프로젝트에서 GitHub Actions를 사용하기로.. 2023. 12. 17.
728x90