전체 글

카테고리 없음

E-Commerce 부하 테스트 - 각 API별 테스트 분석 , 장애 대응 정리

글에 들어가기에 앞서.. 이 글은 E - Commerce 도메인의 API별 테스트 목적에 따라 부하테스트를 진행하고 결과를 분석하여 개선할 점을찾아보는 과정을 정리한 글입니다. 또한, 해당 테스트를 통해 예상할 수 있는 장애에 대한 대응책도 정리해볼 생각입니다.     각 API별 테스트 실행 및 결과 분석  1. 상품 목록 조회  ✅ 테스트 목적상품 목록 조회 API는 사용자가 가장 많이 호출하는 핵심 API 중 하나입니다. 트래픽이 몰리는 경우에도 안정적으로 응답해야 하며, 검색 필터나 정렬 옵션이 추가될 경우 성능 저하가 발생할 수 있습니다. 따라서, 일정 수준 이상의부하에서도 응답 시간이 몇초 정도 이하로 유지되는지 확인하고, 데이터베이스 부하가 증가할 때 장애 없이 견딜 수 있는지검증해볼 생각입..

카테고리 없음

E-commerce 부하 테스트 - 테스트 대상 선정 목적 및 계획

"장애는 자연재해와 같습니다. 아무리 예방해도,  예상치를 뛰어넘으면 문제가 생기죠.결국 사람은 자연재해를 완벽하게 막을 수 없습니다. 다만, 예방에 더 힘을 쓸 수 있습니다." 1. 부하 테스트 대상 선정 및 목적 1-1. 부하 테스트 대상 선정 기준부하 테스트를 진행하는 기준을 정리 하고 제 E-commerce 프로젝트에 어떤 API에 적용을 할 지 고민해 볼 생각입니다.(예시는 E-commerce의 보편적인 기능들로 적었습니다.)고객 사용 빈도가 높은 API → 예: 상품 조회, 장바구니, 결제트랜잭션이 중요한 API → 예: 주문 생성, 결제 승인, 재고 차감성능 저하 가능성이 높은 API → 예: DB JOIN이 많은 쿼리, 대량 데이터 조회동시 요청이 많이 발생하는 API → 예: 이벤트 페이..

카테고리 없음

MSA(분산환경)에서의 트랜잭션 처리 고민해보자

이 글은 모놀리식 형태인 저의 사이드 프로젝트(E-Commerce)를 MSA 형태로 도메인별 배포단위를 분리 한다고 가정하고 생기는 트랜젹선 처리 문제들을 고민해보고 해결방안을 생각해 보는 과정을 정리한 글입니다,.   1. 모놀리식 & 마이크로서비스(MSA) rancher>1-1. 모놀리식 아키텍처모놀리식 아키텍처는 보통 단일 코드 기반의 애플리케이션을 말합니다. 다른 말로는 하나의 애플리케이션이 모든 기능을 포함하고 있는 구조라고도 할 수 있습니다. 또한, 단일한 배포 단위로 관리되는 특징이 있습니다. 📌 모놀리식 아키텍처의 장점1. 개발 및 배포가 간단하다모든 기능이 하나의 애플리케이션으로 통합되어 있기 때문에 단일 코드베이스에서 개발하고 배포할 수 있습니다.별도의 서비스 간 통신을 고려할 필요가..

Database

Index로 조회 성능을 최적화 해보자(2)

이번 글 주제는 DB 인덱스를 저의 개인 E-Commece 프로젝트에 사용하여 성능을 비교 해보고 적절한 인덱스를 적용해보는 과정을 정리한 글입니다. 1. 신뢰성 있는 인덱스 성능 테스트를 위해 데이터베이스 성능 최적화를 진행할 때, 많은 개발자들이 "인덱스를 추가하면 쿼리 성능이 향상된다"는 기본적인 개념을 떠올립니다. 하지만 단순히 인덱스를 추가하고 실행 시간을 비교하는 방식은 신뢰할 수 있는 테스트라고 볼 수 있을까?아니라면 어떻게 하면 보다 객관적이고 신뢰성 있는 성능 테스트를 진행할 수 있는 지에 대한 정리를 하고 성능 테스트에 적용해 볼 생각입니다. 1-1 실험에서 고려해야 할 변수들정확한 성능 테스트를 위해서는 실험의 변수를 명확히 정의하는 것이 중요합니다. 📌 1) 독립 변수 (Indep..

Database

Index로 조회 성능을 최적화 해보자(1)

이번 글 주제는 DB 인덱스를 저의 개인 E-Commece 프로젝트에 사용하여 성능을 비교 해보고 적절한 인덱스를 적용해보는 과정을 정리한 글이므로 인덱스에 대한 개념설명은 블로그 글과 항해플러스 과정을 학습하며 정리하는 목적으로 간단하게 작성하였습니다.   1. 인덱스란? DB의 인덱스란데이터의 저장의 성능을 희생하는 대신 검색(조회) 속도를 향상시키기 위한 자료구조인덱스 생성 시 DB 크기의 약 10% 정도되는 추가 공간이 필요할 수 있다.특정 컬럼으로 인덱스를 설정하면,해당 컬럼의 값을 정렬하여 데이터를 적재하는 형태1~100까지의 수를 랜덤하게 펼쳐두고 30보다 작은 값을 찾기1~100까지의 수를 오름차순으로 정렬하고 30보다 작은 값을 찾기인덱스는 조회 성능을 높일 수 있지만 아래 사항들을 고려..

카테고리 없음

E-commerce 프로젝트에서 Redis를 사용하여 최적화를 해보자

🌿 글 주제 간단 소개이커머스 프로젝트에서 Redis를 활용한 인기 상품 조회 & 선착순 쿠폰 발급 최적화이 글에서는 Redis를 활용하여 인기 상품 조회 및 선착순 쿠폰 발급을 최적화한 과정을 정리합니다.기존 시스템의 문제점을 분석하고, Redis를 적용한 이유 및 기대 효과를 설명합니다.  🌿기존 문제점 및 한계 📌 인기 상품 조회의 문제점  이커머스에서 최근 3일 동안 가장 많이 팔린 상품을 조회하는 API는 매 요청마다 DB에서 직접 데이터를 가져와야 했기 때문에, 다음과 같은 문제가 발생했습니다.트래픽 증가 시 DB 부하 심화인기 상품 조회는 유저들의 사용 빈도가 높은 API조회 시마다 DB에서 연산을 수행해야 하므로, 트래픽이 증가하면 DB 부하가 심각해짐데이터 변경 주기가 길지만, 캐싱..

Database

캐시(Cache)란 무엇일까?

🌿 캐시(Cache)란? 캐시(Cache)란 자주 사용되는 데이터나 연산 결과를 임시로 저장하여 빠르게 접근할 수 있도록 하는 저장소입니다.주로 CPU, 메모리, 디스크, 네트워크, 데이터베이스 등 다양한 영역에서 성능 최적화를 위해 사용됩니다.  🌿 캐시의 목적과 필요성1. 성능 향상동일한 데이터를 반복적으로 요청할 경우, 캐시에 저장된 데이터를 사용하면 처리 속도가 빨라짐.특히 CPU, RAM, 웹 브라우저, 데이터베이스에서 성능 최적화에 필수적.2. 부하 감소데이터베이스(DB) 조회나 API 호출 비용이 클 경우, 캐싱을 활용하여 시스템 부하를 줄일 수 있음.트래픽이 많은 서비스에서 서버의 부하를 줄이고 응답 속도를 개선.3. 네트워크 비용 절감캐시를 사용하면 불필요한 데이터 요청을 줄여 네트워..

[교육]항해플러스 백엔드

[항해플러스 백엔드] 4 , 5주차 회고

🌿 4 , 5주차 완료 ! 4 , 5 주차는 E-commerce , 콘서트 도메인 중 선택하여 API 서버를 구축하는 주차이다. 내가 항해에서 가장기대했던 주차이다ㅎㅎ 그 이유는 나는 확실히 이론공부도 좋지만 코드를 작성해보면서 직접 내 손으로 무언가를만들어본다는 게 나에게 큰 흥미를 준다. 내 선택은 E-commerce이다.항상 E-commerce도메인에서의 실무를 한 번쯤은 해보고 싶기도 하고 주문 , 결제 , 상품 , 사용자 , 관리자와같은 기능들이 다른 도메인에서도 공통으로 사용되는 부분들이 많다고 생각해서 선택하게 되었다.아 그리고 정말 열심히 했고 자신있던 주차인데 fail 하나..를 받은 게 개인적인 목표가 깨지다보니ㅠㅠ 아쉬운 마음이 있는 주차다. 하지만 항해에서 얻어가는 것이 all p..

기만석
DevStudy